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()
|