diff options
| author | Josh Triplett <josh@joshtriplett.org> | 2009-08-05 17:12:10 -0400 |
|---|---|---|
| committer | Josh Triplett <josh@joshtriplett.org> | 2009-08-05 17:12:10 -0400 |
| commit | f0b0d62893a118c27cb331a33dc0b709dd9ff8cc (patch) | |
| tree | 410a521bce721b046c5304926aa120db1e4f84d1 | |
| parent | e8d399b3f11cf350ab52f31fc0fd085c1af48022 (diff) | |
Handle == and !=
Make process_op handle == and !=, and make eval_arg_num handle != (it
already handled ==).
Signed-off-by: Josh Triplett <josh@joshtriplett.org>
| -rw-r--r-- | parse-events.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/parse-events.c b/parse-events.c index 3479675..6ce3427 100644 --- a/parse-events.c +++ b/parse-events.c | |||
| @@ -1144,7 +1144,9 @@ process_op(struct event *event, struct print_arg *arg, char **tok) | |||
| 1144 | strcmp(token, "+") == 0 || | 1144 | strcmp(token, "+") == 0 || |
| 1145 | strcmp(token, "*") == 0 || | 1145 | strcmp(token, "*") == 0 || |
| 1146 | strcmp(token, "^") == 0 || | 1146 | strcmp(token, "^") == 0 || |
| 1147 | strcmp(token, "/") == 0) { | 1147 | strcmp(token, "/") == 0 || |
| 1148 | strcmp(token, "==") == 0 || | ||
| 1149 | strcmp(token, "!=") == 0) { | ||
| 1148 | 1150 | ||
| 1149 | left = malloc_or_die(sizeof(*left)); | 1151 | left = malloc_or_die(sizeof(*left)); |
| 1150 | 1152 | ||
| @@ -1288,6 +1290,18 @@ static long long arg_num_eval(struct print_arg *arg) | |||
| 1288 | 1290 | ||
| 1289 | val = left == right; | 1291 | val = left == right; |
| 1290 | break; | 1292 | break; |
| 1293 | case '!': | ||
| 1294 | left = arg_num_eval(arg->op.left); | ||
| 1295 | right = arg_num_eval(arg->op.right); | ||
| 1296 | |||
| 1297 | switch (arg->op.op[1]) { | ||
| 1298 | case '=': | ||
| 1299 | val = left != right; | ||
| 1300 | break; | ||
| 1301 | default: | ||
| 1302 | die("unknown op '%s'", arg->op.op); | ||
| 1303 | } | ||
| 1304 | break; | ||
| 1291 | default: | 1305 | default: |
| 1292 | die("unknown op '%s'", arg->op.op); | 1306 | die("unknown op '%s'", arg->op.op); |
| 1293 | } | 1307 | } |
