diff options
author | Stephen Roantree <stroantree@gmail.com> | 2012-10-07 22:34:12 +0100 |
---|---|---|
committer | Stephen Roantree <stroantree@gmail.com> | 2012-10-07 22:34:12 +0100 |
commit | 0618e61e0bd0a58cd222bb4905c51178fe332525 (patch) | |
tree | 523b2bdf785927f6f431b341662453231e5c5c02 /parser.y | |
parent | a2643cc0d564033c49bffbd0de9a8e797281e73f (diff) |
Add <,>,<=,>= binops
Diffstat (limited to 'parser.y')
-rw-r--r-- | parser.y | 23 |
1 files changed, 23 insertions, 0 deletions
@@ -59,6 +59,8 @@ %token SETMULT "*=" %token SETDIV "/=" %token SETDEFINEDOR "//=" +%token LESSEQ "<=" +%token GREATEREQ ">=" %token QQSTRING_START %token <literal> QQSTRING_TEXT @@ -77,6 +79,7 @@ %nonassoc EQ %left '+' '-' %left '*' '/' +%right '<' '>' LESSEQ GREATEREQ %type <blk> Exp Term MkDict MkDictPair ExpD ElseBody QQString FuncDef FuncDefs @@ -137,6 +140,10 @@ static block gen_binop(block a, block b, int op) { case '*': funcname = "_multiply"; break; case '/': funcname = "_divide"; break; case EQ: funcname = "_equal"; break; + case '<': funcname = "_less"; break; + case '>': funcname = "_greater"; break; + case LESSEQ: funcname = "_lesseq"; break; + case GREATEREQ: funcname = "_greatereq"; break; } assert(funcname); @@ -273,6 +280,22 @@ Exp "==" Exp { $$ = gen_binop($1, $3, EQ); } | +Exp '<' Exp { + $$ = gen_binop($1, $3, '<'); +} | + +Exp '>' Exp { + $$ = gen_binop($1, $3, '>'); +} | + +Exp "<=" Exp { + $$ = gen_binop($1, $3, LESSEQ); +} | + +Exp ">=" Exp { + $$ = gen_binop($1, $3, GREATEREQ); +} | + QQSTRING_START QQString QQSTRING_END { $$ = $2; } | |