Support "!=" comparisons in script-generator

This commit is contained in:
Gábor Stefanik 2024-01-01 22:55:21 +01:00
parent 133c05426c
commit 9384a5d432
1 changed files with 13 additions and 3 deletions

View File

@ -214,11 +214,12 @@ Token *logic(Token *tok, char **val) {
/* logic = "(" /* logic = "("
* (name | * (name |
* (name "==" value) | * (name "==" value) |
* (name "!=" value) |
* (logic "||" logic) | * (logic "||" logic) |
* (logic "&&" logic)) * (logic "&&" logic))
* ")" * ")"
*/ */
char *lhs = tok->val; char *lhs = tok->val;
char *rhs; char *rhs;
tok = tok->next; tok = tok->next;
@ -235,8 +236,17 @@ Token *logic(Token *tok, char **val) {
} else { } else {
lhs = "False"; lhs = "False";
} }
} else { } else if (strcmp(tok->val, "!=") == 0) {
fputs("Expected == after ", stderr); /* 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(lhs, stderr);
fputs(" in logic\n", stderr); fputs(" in logic\n", stderr);
exit(1); exit(1);