Update of /cvsroot/nice/Nice/src/bossa/parser
In directory sc8-pr-cvs1:/tmp/cvs-serv24986/F:/nice/src/bossa/parser
Modified Files:
Parser.jj
Log Message:
Stricter parsing of expressions used as statement.
Index: Parser.jj
===================================================================
RCS file: /cvsroot/nice/Nice/src/bossa/parser/Parser.jj,v
retrieving revision 1.230
retrieving revision 1.231
diff -C2 -d -r1.230 -r1.231
*** Parser.jj 22 Dec 2003 20:28:10 -0000 1.230
--- Parser.jj 15 Jan 2004 21:39:18 -0000 1.231
***************
*** 2132,2136 ****
{
res=PrimaryPrefix()
! ( LOOKAHEAD(2) res=PrimarySuffix(res) )*
{ res.setLocation(Location.make(first, getToken(0)));
return res; }
--- 2132,2136 ----
{
res=PrimaryPrefix()
! ( res=PrimarySuffix(res) )*
{ res.setLocation(Location.make(first, getToken(0)));
return res; }
***************
*** 2506,2514 ****
e1=Pre_crementExpression() ";"
|
! e1=PrimaryExpression()
! (
! PostfixBlocks(e1)
|
! e1=PostfixStatementExpression(e1, first) ";"
)
)
--- 2506,2525 ----
e1=Pre_crementExpression() ";"
|
! ( LOOKAHEAD( "super" )
! "super" ";" { e1 = new SuperExp(); }
|
! e1=PrimaryPrefix()
! (
! e1=PostfixStatementExpression(e1, first) ";"
! |
! ( e1=PrimarySuffix(e1) )+
! (
! ";"
! |
! PostfixBlocks(e1)
! |
! e1=PostfixStatementExpression(e1, first) ";"
! )
! )
)
)
***************
*** 2527,2535 ****
e1=Pre_crementExpression()
|
! e1=PrimaryExpression()
! (
! PostfixBlocks(e1)
|
! e1=PostfixStatementExpression(e1, first)
)
)
--- 2538,2555 ----
e1=Pre_crementExpression()
|
! ( LOOKAHEAD( "super" )
! "super" { e1 = new SuperExp(); }
|
! e1=PrimaryPrefix()
! (
! e1=PostfixStatementExpression(e1, first)
! |
! ( e1=PrimarySuffix(e1) )+
! [
! PostfixBlocks(e1)
! |
! e1=PostfixStatementExpression(e1, first)
! ]
! )
)
)
***************
*** 2545,2549 ****
{}
{
! [
"++" { e1=new IncrementExp(e1, false, true); }
|
--- 2565,2569 ----
{}
{
! (
"++" { e1=new IncrementExp(e1, false, true); }
|
***************
*** 2561,2565 ****
e1=AssignExp.create(e1,e2);
}
! ]
{ return e1; }
}
--- 2581,2585 ----
e1=AssignExp.create(e1,e2);
}
! )
{ return e1; }
}
|