[Nice-commit] Nice/src/bossa/parser Parser.jj,1.198,1.199
Brought to you by:
bonniot
From: <ar...@us...> - 2003-07-22 16:03:09
|
Update of /cvsroot/nice/Nice/src/bossa/parser In directory sc8-pr-cvs1:/tmp/cvs-serv17371/F:/nice/src/bossa/parser Modified Files: Parser.jj Log Message: Some minor simplifications of the parser. Index: Parser.jj =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/parser/Parser.jj,v retrieving revision 1.198 retrieving revision 1.199 diff -C2 -d -r1.198 -r1.199 *** Parser.jj 19 Jul 2003 00:54:05 -0000 1.198 --- Parser.jj 22 Jul 2003 16:03:04 -0000 1.199 *************** *** 1744,1748 **** ( LOOKAHEAD(funExpLookahead()) e1=funExp() ! | e1=ClassicExpression() ) { --- 1744,1760 ---- ( LOOKAHEAD(funExpLookahead()) e1=funExp() ! | ! e1=ConditionalExpression() ! [ ! { e1.setLocation(Location.make(first, getToken(0))); } ! op=AssignmentOperator() ! e2=Expression() ! { ! if(op.image.length()!=1) ! e2=CallExp.create(symb(op.image.substring(0, 1),op),e1,e2); ! ! e1=AssignExp.create(e1,e2); ! } ! ] ) { *************** *** 1753,1774 **** } - Expression ClassicExpression() : - { Expression e1,e2; Token op, start = getToken(1); } - { - e1=ConditionalExpression() - [ - { e1.setLocation(Location.make(start, getToken(0))); } - op=AssignmentOperator() - e2=Expression() - { - if(op.image.length()!=1) - e2=CallExp.create(symb(op.image.substring(0, 1),op),e1,e2); - - e1=AssignExp.create(e1,e2); - } - ] - { return e1; } - } - Expression SideEffectFreeExpression() : { Expression e; } --- 1765,1768 ---- *************** *** 1880,1904 **** Expression RelationalExpression() : ! { Expression e1, e2, e3; Token t; e3 = null; } { e1=RangeExpression() ! [ ( ! ( (t=">"|t=">=") e2=RangeExpression() ! { ! if(e3 == null) e1=CallExp.create(symb(t),e1,e2); ! else e1=CallExp.create(symb("&&",t),e1,CallExp.create(symb(t),e3,e2)); ! e3 = e2; ! } ! )+ ! | ! ( (t="<"|t="<=") e2=RangeExpression() ! { ! if(e3 == null) e1=CallExp.create(symb(t),e1,e2); ! else e1=CallExp.create(symb("&&",t),e1,CallExp.create(symb(t),e3,e2)); ! e3 = e2; ! } ! )+ ! ) ! ] { return e1; } } --- 1874,1893 ---- Expression RelationalExpression() : ! { Expression e1, e2, e3; Token t, t_prev = null; e3 = null; } { e1=RangeExpression() ! ( (t=">"|t=">="|t="<"|t="<=") e2=RangeExpression() ! { ! if(e3 == null) e1=CallExp.create(symb(t),e1,e2); ! else ! { ! e1=CallExp.create(symb("&&",t),e1,CallExp.create(symb(t),e3,e2)); ! if (t.image.charAt(0) != t_prev.image.charAt(0)) ! User.error(Location.make(t), "All chained comparisons should be in the same direction"); ! } ! e3 = e2; ! t_prev = t; ! } ! )* { return e1; } } *************** *** 1971,2008 **** { ( ! ( t="+" | t="-" ) res=PrimaryExpression() { res=CallExp.create(symb(t),res); } | ! res=PreIncrementExpression() ! | ! res=PreDecrementExpression() | ! res=UnaryExpressionNotPlusMinus() ) { return res; } } ! Expression PreIncrementExpression() : ! { Expression res; Token t; } ! { ! t="++" res=PrimaryExpression() ! { return new IncrementExp(res, true, true); } ! } ! ! Expression PreDecrementExpression() : ! { Expression res; Token t; } ! { ! t="--" res=PrimaryExpression() ! { return new IncrementExp(res, true, false); } ! } ! ! Expression UnaryExpressionNotPlusMinus() : ! { Expression res; Token t; } { ! ( t="~" | t="!" ) res=PrimaryExpression() ! { return CallExp.create(symb(t),res); } ! | ! res=PostfixExpression() ! { return res; } } --- 1960,1978 ---- { ( ! ( t="+" | t="-" | t="~" | t="!" ) res=PrimaryExpression() { res=CallExp.create(symb(t),res); } | ! res=Pre_crementExpression() | ! res=PostfixExpression() ) { return res; } } ! Expression Pre_crementExpression() : ! { Expression res; Token t; boolean inc = false; } { ! ( t="++" {inc = true;} | t="--" ) res=PrimaryExpression() ! { return new IncrementExp(res, true, inc); } } *************** *** 2371,2377 **** { first = getToken(1); } ( ! e1=PreIncrementExpression() ! | ! e1=PreDecrementExpression() | e1=PrimaryExpression() --- 2341,2345 ---- { first = getToken(1); } ( ! e1=Pre_crementExpression() | e1=PrimaryExpression() |