mirror of https://github.com/aamine/cbc
* net/loveruby/cflat/parser/Parser.jj: expr0 -> expr1, expr1 -> expr2, ...
git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@3756 1b9489fe-b721-0410-924e-b54b9192deb8
This commit is contained in:
parent
b8936df200
commit
bda63ace95
|
@ -1,3 +1,8 @@
|
|||
Tue Dec 25 02:09:35 2007 Minero Aoki <aamine@loveruby.net>
|
||||
|
||||
* net/loveruby/cflat/parser/Parser.jj: expr0 -> expr1, expr1 ->
|
||||
expr2, ...
|
||||
|
||||
Mon Dec 24 18:04:08 2007 Minero Aoki <aamine@loveruby.net>
|
||||
|
||||
* net/loveruby/cflat/parser/Parser.jj: use better identifier.
|
||||
|
|
|
@ -873,7 +873,7 @@ Node expr():
|
|||
throw new Error("fatal: " + ex.getMessage());
|
||||
}
|
||||
}
|
||||
| n=expr9()
|
||||
| n=expr10()
|
||||
{
|
||||
return n;
|
||||
}
|
||||
|
@ -914,20 +914,29 @@ Class opassign_op(): {}
|
|||
)
|
||||
}
|
||||
|
||||
Node expr9():
|
||||
Node expr10():
|
||||
{ Node c, t, e; }
|
||||
{
|
||||
c=expr8() ["?" t=expr9() ":" e=expr9()
|
||||
c=expr9() ["?" t=expr10() ":" e=expr10()
|
||||
{ return new CondExprNode(labelPool, c, t, e); }]
|
||||
{
|
||||
return c;
|
||||
}
|
||||
}
|
||||
|
||||
Node expr9():
|
||||
{ Node l, r; }
|
||||
{
|
||||
l=expr8() ["||" r=expr9() { return new LogicalOrNode(labelPool, l, r); }]
|
||||
{
|
||||
return l;
|
||||
}
|
||||
}
|
||||
|
||||
Node expr8():
|
||||
{ Node l, r; }
|
||||
{
|
||||
l=expr7() ["||" r=expr8() { return new LogicalOrNode(labelPool, l, r); }]
|
||||
l=expr7() ["&&" r=expr8() { return new LogicalAndNode(labelPool, l, r); }]
|
||||
{
|
||||
return l;
|
||||
}
|
||||
|
@ -936,7 +945,12 @@ Node expr8():
|
|||
Node expr7():
|
||||
{ Node l, r; }
|
||||
{
|
||||
l=expr6() ["&&" r=expr7() { return new LogicalAndNode(labelPool, l, r); }]
|
||||
l=expr6() [( ">" r=expr7() { return new GtNode(l, r); }
|
||||
| "<" r=expr7() { return new LtNode(l, r); }
|
||||
| ">=" r=expr7() { return new GtEqNode(l, r); }
|
||||
| "<=" r=expr7() { return new LtEqNode(l, r); }
|
||||
| "==" r=expr7() { return new EqNode(l, r); }
|
||||
| "!=" r=expr7() { return new NotEqNode(l, r); } )]
|
||||
{
|
||||
return l;
|
||||
}
|
||||
|
@ -945,12 +959,7 @@ Node expr7():
|
|||
Node expr6():
|
||||
{ Node l, r; }
|
||||
{
|
||||
l=expr5() [( ">" r=expr6() { return new GtNode(l, r); }
|
||||
| "<" r=expr6() { return new LtNode(l, r); }
|
||||
| ">=" r=expr6() { return new GtEqNode(l, r); }
|
||||
| "<=" r=expr6() { return new LtEqNode(l, r); }
|
||||
| "==" r=expr6() { return new EqNode(l, r); }
|
||||
| "!=" r=expr6() { return new NotEqNode(l, r); } )]
|
||||
l=expr5() ["|" r=expr6() { return new BitwiseOrNode(l, r); }]
|
||||
{
|
||||
return l;
|
||||
}
|
||||
|
@ -959,7 +968,7 @@ Node expr6():
|
|||
Node expr5():
|
||||
{ Node l, r; }
|
||||
{
|
||||
l=expr4() ["|" r=expr5() { return new BitwiseOrNode(l, r); }]
|
||||
l=expr4() ["^" r=expr5() { return new BitwiseXorNode(l, r); }]
|
||||
{
|
||||
return l;
|
||||
}
|
||||
|
@ -968,7 +977,7 @@ Node expr5():
|
|||
Node expr4():
|
||||
{ Node l, r; }
|
||||
{
|
||||
l=expr3() ["^" r=expr4() { return new BitwiseXorNode(l, r); }]
|
||||
l=expr3() ["&" r=expr4() { return new BitwiseAndNode(l, r); }]
|
||||
{
|
||||
return l;
|
||||
}
|
||||
|
@ -977,7 +986,8 @@ Node expr4():
|
|||
Node expr3():
|
||||
{ Node l, r; }
|
||||
{
|
||||
l=expr2() ["&" r=expr3() { return new BitwiseAndNode(l, r); }]
|
||||
l=expr2() [( ">>" r=expr3() { return new RShiftNode(l, r); }
|
||||
| "<<" r=expr3() { return new LShiftNode(l, r); } )]
|
||||
{
|
||||
return l;
|
||||
}
|
||||
|
@ -986,8 +996,8 @@ Node expr3():
|
|||
Node expr2():
|
||||
{ Node l, r; }
|
||||
{
|
||||
l=expr1() [( ">>" r=expr2() { return new RShiftNode(l, r); }
|
||||
| "<<" r=expr2() { return new LShiftNode(l, r); } )]
|
||||
l=expr1() [( "+" r=expr2() { return new PlusNode(l, r); }
|
||||
| "-" r=expr2() { return new MinusNode(l, r); } )]
|
||||
{
|
||||
return l;
|
||||
}
|
||||
|
@ -996,19 +1006,9 @@ Node expr2():
|
|||
Node expr1():
|
||||
{ Node l, r; }
|
||||
{
|
||||
l=expr0() [( "+" r=expr1() { return new PlusNode(l, r); }
|
||||
| "-" r=expr1() { return new MinusNode(l, r); } )]
|
||||
{
|
||||
return l;
|
||||
}
|
||||
}
|
||||
|
||||
Node expr0():
|
||||
{ Node l, r; }
|
||||
{
|
||||
l=term() [( "*" r=expr0() { return new MulNode(l, r); }
|
||||
| "/" r=expr0() { return new DivNode(l, r); }
|
||||
| "%" r=expr0() { return new ModNode(l, r); } )]
|
||||
l=term() [( "*" r=expr1() { return new MulNode(l, r); }
|
||||
| "/" r=expr1() { return new DivNode(l, r); }
|
||||
| "%" r=expr1() { return new ModNode(l, r); } )]
|
||||
{
|
||||
return l;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue