()
| 2922 | } |
| 2923 | |
| 2924 | private AstNode expExpr() throws IOException { |
| 2925 | AstNode pn = unaryExpr(); |
| 2926 | for (; ; ) { |
| 2927 | int tt = peekToken(), opPos = ts.tokenBeg; |
| 2928 | switch (tt) { |
| 2929 | case Token.EXP: |
| 2930 | if (pn instanceof UnaryExpression) { |
| 2931 | reportError( |
| 2932 | "msg.no.unary.expr.on.left.exp", |
| 2933 | AstNode.operatorToString(pn.getType())); |
| 2934 | return makeErrorNode(); |
| 2935 | } |
| 2936 | consumeToken(); |
| 2937 | pn = new InfixExpression(tt, pn, expExpr(), opPos); |
| 2938 | continue; |
| 2939 | } |
| 2940 | break; |
| 2941 | } |
| 2942 | return pn; |
| 2943 | } |
| 2944 | |
| 2945 | private AstNode unaryExpr() throws IOException { |
| 2946 | AstNode node; |
no test coverage detected