# HG changeset patch # User lost # Date 1230859927 0 # Node ID ec0bf61a55022d88fab83d9692fc7dd4816694f3 # Parent b704f7ffc8bab04cfcb2cf54dcb5498b195ce02b Added ^ (bitwise complement) diff -r b704f7ffc8ba -r ec0bf61a5502 src/expr.c --- a/src/expr.c Fri Jan 02 00:43:19 2009 +0000 +++ b/src/expr.c Fri Jan 02 01:32:07 2009 +0000 @@ -207,6 +207,18 @@ return 0; } + if (**p == '^') + { + // parse expression following "^" + (*p)++; + if (lwasm_expr_parse_expr(s, p, 200) < 0) + return -1; + t = lwasm_expr_term_create_oper(LWASM_OPER_COM); + lwasm_expr_stack_push(s, t); + lwasm_expr_term_free(t); + return 0; + } + /* we have an actual term here so evaluate it diff -r b704f7ffc8ba -r ec0bf61a5502 src/expr.h --- a/src/expr.h Fri Jan 02 00:43:19 2009 +0000 +++ b/src/expr.h Fri Jan 02 01:32:07 2009 +0000 @@ -50,8 +50,8 @@ #define LWASM_OPER_BWXOR 9 // bitwise XOR #define LWASM_OPER_AND 10 // boolean AND #define LWASM_OPER_OR 11 // boolean OR -#define LWASM_OPER_NEG 12 // unary negation (2's complement) -#define LWASM_OPER_COM 13 // unary 1's complement +#define LWASM_OPER_NEG 12 // - unary negation (2's complement) +#define LWASM_OPER_COM 13 // ^ unary 1's complement // term structure