commit: 9384a5d432a7b246810e6c62d3f226df1239daab
parent 133c05426c2133c60bdb0b42c1dda64b3bc6bb7d
Author: Gábor Stefanik <netrolller.3d@gmail.com>
Date: Mon, 1 Jan 2024 22:55:21 +0100
Support "!=" comparisons in script-generator
Diffstat:
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/seed/script-generator.c b/seed/script-generator.c
@@ -214,11 +214,12 @@ Token *logic(Token *tok, char **val) {
/* logic = "("
* (name |
* (name "==" value) |
+ * (name "!=" value) |
* (logic "||" logic) |
* (logic "&&" logic))
* ")"
*/
-
+
char *lhs = tok->val;
char *rhs;
tok = tok->next;
@@ -235,8 +236,17 @@ Token *logic(Token *tok, char **val) {
} else {
lhs = "False";
}
- } else {
- fputs("Expected == after ", stderr);
+ } else if (strcmp(tok->val, "!=") == 0) {
+ /* Case for inequality. */
+ rhs = tok->next->val;
+ tok = tok->next->next;
+ if (strcmp(get_var(lhs), rhs) == 0) {
+ lhs = "False";
+ } else {
+ lhs = "True";
+ }
+ } else {
+ fputs("Expected == or != after ", stderr);
fputs(lhs, stderr);
fputs(" in logic\n", stderr);
exit(1);