diff options
author | Stephen Dolan <mu@netsoc.tcd.ie> | 2012-11-26 22:23:30 +0000 |
---|---|---|
committer | Stephen Dolan <mu@netsoc.tcd.ie> | 2012-11-26 22:24:04 +0000 |
commit | 2dad2bdd974e6964e739f9bd09c7ad2c4025d00b (patch) | |
tree | 35f0269f8718a42eaf746d15fa8903f4ef3a7822 /parser.y | |
parent | d56370f734a2195fb473b8809f40358b024bb073 (diff) | |
parent | 0923c79fee215ee6c01c3d2f822b6267ad29090e (diff) |
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'parser.y')
-rw-r--r-- | parser.y | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -65,6 +65,7 @@ struct lexer_param; %token SETDEFINEDOR "//=" %token LESSEQ "<=" %token GREATEREQ ">=" +%token CONTAINS "contains" %token QQSTRING_START %token <literal> QQSTRING_TEXT @@ -80,7 +81,7 @@ struct lexer_param; %nonassoc '=' SETPIPE SETPLUS SETMINUS SETMULT SETDIV SETDEFINEDOR %left OR %left AND -%nonassoc NEQ EQ '<' '>' LESSEQ GREATEREQ +%nonassoc NEQ EQ '<' '>' LESSEQ GREATEREQ CONTAINS %left '+' '-' %left '*' '/' @@ -149,6 +150,7 @@ static block gen_binop(block a, block b, int op) { case '>': funcname = "_greater"; break; case LESSEQ: funcname = "_lesseq"; break; case GREATEREQ: funcname = "_greatereq"; break; + case CONTAINS: funcname = "_contains"; break; } assert(funcname); @@ -293,6 +295,10 @@ Exp ">=" Exp { $$ = gen_binop($1, $3, GREATEREQ); } | +Exp "contains" Exp { + $$ = gen_binop($1, $3, CONTAINS); +} | + Term { $$ = $1; } |