Add <,>,<=,>= binops

This commit is contained in:
Stephen Roantree committed 2012-10-07 22:34:12 +01:00
1 parent a2643cc0d5
commit 0618e61e0b
4 files changed
+81 -1

No files matched your search

+23
View File
@@ -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;
} |