retval.start = input.LT(1);
CommonTree root_0 = null;
Token OR4 = null;
ParserRuleReturnScope booleanAndExpression3 = null;
ParserRuleReturnScope booleanAndExpression5 = null;
CommonTree OR4_tree = null;
try {
// ECalc.g:50:2: ( booleanAndExpression ( OR ^ booleanAndExpression
// )* )
// ECalc.g:50:4: booleanAndExpression ( OR ^ booleanAndExpression )*
{
root_0 = (CommonTree) adaptor.nil();
pushFollow(FOLLOW_booleanAndExpression_in_logicalExpression80);
booleanAndExpression3 = booleanAndExpression();
state._fsp--;
adaptor.addChild(
root_0,
booleanAndExpression3.getTree());
// ECalc.g:50:25: ( OR ^ booleanAndExpression )*
loop1: while (true) {
int alt1 = 2;
final int LA1_0 = input.LA(1);
if ((LA1_0 == OR)) {
alt1 = 1;
}
switch (alt1) {
case 1:
// ECalc.g:50:26: OR ^ booleanAndExpression
{
OR4 = (Token) match(
input,
OR,
FOLLOW_OR_in_logicalExpression83);
OR4_tree = (CommonTree) adaptor.create(OR4);
root_0 = (CommonTree) adaptor.becomeRoot(
OR4_tree,
root_0);
pushFollow(FOLLOW_booleanAndExpression_in_logicalExpression86);
booleanAndExpression5 = booleanAndExpression();
state._fsp--;
adaptor.addChild(
root_0,
booleanAndExpression5.getTree());
}
break;
default: