Examples of ParseNode


Examples of org.apache.phoenix.parse.ParseNode

    @Override
    public Expression visitLeave(StringConcatParseNode node, List<Expression> children) throws SQLException {
        final StringConcatExpression expression=new StringConcatExpression(children);
        for (int i = 0; i < children.size(); i++) {
            ParseNode childNode=node.getChildren().get(i);
            if(childNode instanceof BindParseNode) {
                context.getBindManager().addParamMetaData((BindParseNode)childNode,expression);
            }
            PDataType type=children.get(i).getDataType();
            if(type==PDataType.VARBINARY){
View Full Code Here

Examples of org.apache.phoenix.parse.ParseNode

        if (isChildTypeUnknown && arrayElemDataType != null && arrayElemDataType.isCoercibleTo(PDataType.DECIMAL)) {
            arrayElemDataType = PDataType.DECIMAL;
        }
        final PDataType theArrayElemDataType = arrayElemDataType;
        for (int i = 0; i < node.getChildren().size(); i++) {
            ParseNode childNode = node.getChildren().get(i);
            if (childNode instanceof BindParseNode) {
                context.getBindManager().addParamMetaData((BindParseNode)childNode,
                        arrayElemDataType == arrayElemChild.getDataType() ? arrayElemChild :
                            new DelegateDatum(arrayElemChild) {
                    @Override
View Full Code Here

Examples of org.apache.phoenix.parse.ParseNode

        Scan scan = context.getScan();
        int index = 0;
        List<Expression> projectedExpressions = Lists.newArrayListWithExpectedSize(aliasedNodes.size());
        List<byte[]> projectedFamilies = Lists.newArrayListWithExpectedSize(aliasedNodes.size());
        for (AliasedNode aliasedNode : aliasedNodes) {
            ParseNode node = aliasedNode.getNode();
            // TODO: visitor?
            if (node instanceof WildcardParseNode) {
                if (statement.isAggregate()) {
                    ExpressionCompiler.throwNonAggExpressionInAggException(node.toString());
                }
                isWildcard = true;
                if (tableRef.getTable().getType() == PTableType.INDEX && ((WildcardParseNode)node).isRewrite()) {
                  projectAllIndexColumns(context, tableRef, false, projectedExpressions, projectedColumns, targetColumns);
                } else {
                    projectAllTableColumns(context, tableRef, false, projectedExpressions, projectedColumns, targetColumns);
                }
            } else if (node instanceof TableWildcardParseNode) {
                TableName tName = ((TableWildcardParseNode) node).getTableName();
                TableRef tRef = resolver.resolveTable(tName.getSchemaName(), tName.getTableName());
                if (tRef.equals(tableRef)) {
                    isWildcard = true;
                }
                if (tRef.getTable().getType() == PTableType.INDEX && ((TableWildcardParseNode)node).isRewrite()) {
                    projectAllIndexColumns(context, tRef, true, projectedExpressions, projectedColumns, targetColumns);
                } else {
                    projectAllTableColumns(context, tRef, true, projectedExpressions, projectedColumns, targetColumns);
                }               
            } else if (node instanceof  FamilyWildcardParseNode){
                // Project everything for SELECT cf.*
                String cfName = ((FamilyWildcardParseNode) node).getName();
                // Delay projecting to scan, as when any other column in the column family gets
                // added to the scan, it overwrites that we want to project the entire column
                // family. Instead, we do the projection at the end.
                // TODO: consider having a ScanUtil.addColumn and ScanUtil.addFamily to work
                // around this, as this code depends on this function being the last place where
                // columns are projected (which is currently true, but could change).
                projectedFamilies.add(Bytes.toBytes(cfName));
                if (tableRef.getTable().getType() == PTableType.INDEX && ((FamilyWildcardParseNode)node).isRewrite()) {
                    projectIndexColumnFamily(context, cfName, tableRef, projectedExpressions, projectedColumns);
                } else {
                    projectTableColumnFamily(context, cfName, tableRef, projectedExpressions, projectedColumns);
                }
            } else {
                Expression expression = node.accept(selectVisitor);
                projectedExpressions.add(expression);
                expression = coerceIfNecessary(index, targetColumns, expression);
                if (node instanceof BindParseNode) {
                    context.getBindManager().addParamMetaData((BindParseNode)node, expression);
                }
                if (!node.isStateless()) {
                    if (!selectVisitor.isAggregate() && statement.isAggregate()) {
                        ExpressionCompiler.throwNonAggExpressionInAggException(expression.toString());
                    }
                }
                String columnAlias = aliasedNode.getAlias() != null ? aliasedNode.getAlias() : SchemaUtil.normalizeIdentifier(aliasedNode.getNode().getAlias());
View Full Code Here

Examples of org.apache.phoenix.parse.ParseNode

        }
        return (Long) PDataType.LONG.toObject(ptr, expression.getDataType());
    }

    public MutationPlan compile(final CreateSequenceStatement sequence) throws SQLException {
        ParseNode startsWithNode = sequence.getStartWith();
        ParseNode incrementByNode = sequence.getIncrementBy();
        ParseNode maxValueNode = sequence.getMaxValue();
        ParseNode minValueNode = sequence.getMinValue();
        ParseNode cacheNode = sequence.getCacheSize();

        // validate parse nodes
        if (startsWithNode!=null) {
            validateNodeIsStateless(sequence, startsWithNode,
                SQLExceptionCode.START_WITH_MUST_BE_CONSTANT);
        }
        validateNodeIsStateless(sequence, incrementByNode,
            SQLExceptionCode.INCREMENT_BY_MUST_BE_CONSTANT);
        validateNodeIsStateless(sequence, maxValueNode,
            SQLExceptionCode.MAXVALUE_MUST_BE_CONSTANT);
        validateNodeIsStateless(sequence, minValueNode,
            SQLExceptionCode.MINVALUE_MUST_BE_CONSTANT);
        if (cacheNode != null) {
            validateNodeIsStateless(sequence, cacheNode,
                SQLExceptionCode.CACHE_MUST_BE_NON_NEGATIVE_CONSTANT);
        }

        final PhoenixConnection connection = statement.getConnection();
        final StatementContext context = new StatementContext(statement);
       
        // add param meta data if required
        if (startsWithNode instanceof BindParseNode) {
            context.getBindManager().addParamMetaData((BindParseNode) startsWithNode, LONG_DATUM);
        }
        if (incrementByNode instanceof BindParseNode) {
            context.getBindManager().addParamMetaData((BindParseNode) incrementByNode, LONG_DATUM);
        }
        if (maxValueNode instanceof BindParseNode) {
            context.getBindManager().addParamMetaData((BindParseNode) maxValueNode, LONG_DATUM);
        }
        if (minValueNode instanceof BindParseNode) {
            context.getBindManager().addParamMetaData((BindParseNode) minValueNode, LONG_DATUM);
        }
        if (cacheNode instanceof BindParseNode) {
            context.getBindManager().addParamMetaData((BindParseNode) cacheNode, INTEGER_DATUM);
        }
       
        ExpressionCompiler expressionCompiler = new ExpressionCompiler(context);       
        final long incrementBy =
                evalExpression(sequence, context, incrementByNode.accept(expressionCompiler),
                    SQLExceptionCode.INCREMENT_BY_MUST_BE_CONSTANT);
        if (incrementBy == 0) {
            throw SequenceUtil.getException(sequence.getSequenceName().getSchemaName(), sequence
                    .getSequenceName().getTableName(),
                SQLExceptionCode.INCREMENT_BY_MUST_NOT_BE_ZERO);
        }
        final long maxValue =
                evalExpression(sequence, context, maxValueNode.accept(expressionCompiler),
                    SQLExceptionCode.MAXVALUE_MUST_BE_CONSTANT);
        final long minValue =
                evalExpression(sequence, context, minValueNode.accept(expressionCompiler),
                    SQLExceptionCode.MINVALUE_MUST_BE_CONSTANT);
        if (minValue>maxValue) {
            TableName sequenceName = sequence.getSequenceName();
            throw SequenceUtil.getException(sequenceName.getSchemaName(),
                sequenceName.getTableName(),
                SQLExceptionCode.MINVALUE_MUST_BE_LESS_THAN_OR_EQUAL_TO_MAXVALUE);
        }
       
        long startsWithValue;
        if (startsWithNode == null) {
            startsWithValue = incrementBy > 0 ? minValue : maxValue;
        } else {
            startsWithValue =
                    evalExpression(sequence, context, startsWithNode.accept(expressionCompiler),
                        SQLExceptionCode.START_WITH_MUST_BE_CONSTANT);
            if (startsWithValue < minValue || startsWithValue > maxValue) {
                TableName sequenceName = sequence.getSequenceName();
                throw SequenceUtil.getException(sequenceName.getSchemaName(),
                    sequenceName.getTableName(),
                    SQLExceptionCode.STARTS_WITH_MUST_BE_BETWEEN_MIN_MAX_VALUE);
            }
        }
        final long startsWith = startsWithValue;

        long cacheSizeValue;
        if (cacheNode == null) {
            cacheSizeValue =
                    connection
                            .getQueryServices()
                            .getProps()
                            .getLong(QueryServices.SEQUENCE_CACHE_SIZE_ATTRIB,
                                QueryServicesOptions.DEFAULT_SEQUENCE_CACHE_SIZE);
        }
        else {
            cacheSizeValue =
                    evalExpression(sequence, context, cacheNode.accept(expressionCompiler),
                        SQLExceptionCode.CACHE_MUST_BE_NON_NEGATIVE_CONSTANT);
            if (cacheSizeValue < 0) {
                TableName sequenceName = sequence.getSequenceName();
                throw SequenceUtil.getException(sequenceName.getSchemaName(),
                    sequenceName.getTableName(),
View Full Code Here

Examples of org.apache.phoenix.parse.ParseNode

        PTable parentToBe = null;
        ViewType viewTypeToBe = null;
        Scan scan = new Scan();
        final StatementContext context = new StatementContext(statement, resolver, scan, new SequenceManager(statement));
        // TODO: support any statement for a VIEW instead of just a WHERE clause
        ParseNode whereNode = create.getWhereClause();
        String viewStatementToBe = null;
        byte[][] viewColumnConstantsToBe = null;
        BitSet isViewColumnReferencedToBe = null;
        if (type == PTableType.VIEW) {
            TableRef tableRef = resolver.getTables().get(0);
            int nColumns = tableRef.getTable().getColumns().size();
            isViewColumnReferencedToBe = new BitSet(nColumns);
            // Used to track column references in a view
            ExpressionCompiler expressionCompiler = new ColumnTrackingExpressionCompiler(context, isViewColumnReferencedToBe);
            parentToBe = tableRef.getTable();
            viewTypeToBe = parentToBe.getViewType() == ViewType.MAPPED ? ViewType.MAPPED : ViewType.UPDATABLE;
            if (whereNode == null) {
                viewStatementToBe = parentToBe.getViewStatement();
            } else {
                whereNode = StatementNormalizer.normalize(whereNode, resolver);
                if (whereNode.isStateless()) {
                    throw new SQLExceptionInfo.Builder(SQLExceptionCode.VIEW_WHERE_IS_CONSTANT)
                        .build().buildException();
                }
                // If our parent has a VIEW statement, combine it with this one
                if (parentToBe.getViewStatement() != null) {
                    SelectStatement select = new SQLParser(parentToBe.getViewStatement()).parseQuery().combine(whereNode);
                    whereNode = select.getWhere();
                }
                Expression where = whereNode.accept(expressionCompiler);
                if (where != null && !LiteralExpression.isTrue(where)) {
                    TableName baseTableName = create.getBaseTableName();
                    String schemaName = baseTableName.getSchemaName();
                    // Only form we currently support for VIEWs: SELECT * FROM t WHERE ...
                    viewStatementToBe = SELECT + " " + WildcardParseNode.NAME + " " + FROM + " " +
                            (schemaName == null ? "" : "\"" + schemaName + "\".") +
                            ("\"" + baseTableName.getTableName() + "\" ") +
                            (WHERE + " " + where.toString());
                }
                if (viewTypeToBe != ViewType.MAPPED) {
                    Long scn = connection.getSCN();
                    connectionToBe = scn != null ? connection :
                        // If we haved no SCN on our connection, freeze the SCN at when
                        // the base table was resolved to prevent any race condition on
                        // the error checking we do for the base table. The only potential
                        // issue is if the base table lives on a different region server
                        // than the new table will, then we're relying here on the system
                        // clocks being in sync.
                        new PhoenixConnection(
                            // When the new table is created, we still want to cache it
                            // on our connection.
                            new DelegateConnectionQueryServices(connection.getQueryServices()) {
                                @Override
                                public PMetaData addTable(PTable table) throws SQLException {
                                    return connection.addTable(table);
                                }
                            },
                            connection, tableRef.getTimeStamp());
                    viewColumnConstantsToBe = new byte[nColumns][];
                    ViewWhereExpressionVisitor visitor = new ViewWhereExpressionVisitor(parentToBe, viewColumnConstantsToBe);
                    where.accept(visitor);
                    // If view is not updatable, viewColumnConstants should be empty. We will still
                    // inherit our parent viewConstants, but we have no additional ones.
                    viewTypeToBe = visitor.isUpdatable() ? ViewType.UPDATABLE : ViewType.READ_ONLY;
                    if (viewTypeToBe != ViewType.UPDATABLE) {
                        viewColumnConstantsToBe = null;
                    }
                }
            }
        }
        final ViewType viewType = viewTypeToBe;
        final String viewStatement = viewStatementToBe;
        final byte[][] viewColumnConstants = viewColumnConstantsToBe;
        final BitSet isViewColumnReferenced = isViewColumnReferencedToBe;
        List<ParseNode> splitNodes = create.getSplitNodes();
        final byte[][] splits = new byte[splitNodes.size()][];
        ImmutableBytesWritable ptr = context.getTempPtr();
        ExpressionCompiler expressionCompiler = new ExpressionCompiler(context);
        for (int i = 0; i < splits.length; i++) {
            ParseNode node = splitNodes.get(i);
            if (node.isStateless()) {
                Expression expression = node.accept(expressionCompiler);
                if (expression.evaluate(null, ptr)) {;
                    splits[i] = ByteUtil.copyKeyBytesIfNecessary(ptr);
                    continue;
                }
            }
View Full Code Here

Examples of org.apache.phoenix.parse.ParseNode

        if (multiTable) {
            List<AliasedNode> selectNodes = statement.getSelect();
            List<AliasedNode> normSelectNodes = selectNodes;
            for (int i = 0; i < selectNodes.size(); i++) {
                AliasedNode aliasedNode = selectNodes.get(i);
                ParseNode selectNode = aliasedNode.getNode();
                if (selectNode == WildcardParseNode.INSTANCE) {
                    if (selectNodes == normSelectNodes) {
                        normSelectNodes = Lists.newArrayList(selectNodes.subList(0, i));
                    }
                    for (TableNode tNode : statement.getFrom()) {
View Full Code Here

Examples of org.apache.phoenix.parse.ParseNode

     * @throws AmbiguousColumnException if an unaliased column name is ambiguous across multiple tables
     */
    public static Expression compile(StatementContext context, FilterableStatement statement, ParseNode viewWhere) throws SQLException {
        Set<Expression> extractedNodes = Sets.<Expression>newHashSet();
        WhereExpressionCompiler whereCompiler = new WhereExpressionCompiler(context);
        ParseNode where = statement.getWhere();
        Expression expression = where == null ? LiteralExpression.newConstant(true,PDataType.BOOLEAN,true) : where.accept(whereCompiler);
        if (whereCompiler.isAggregate()) {
            throw new SQLExceptionInfo.Builder(SQLExceptionCode.AGGREGATE_IN_WHERE).build().buildException();
        }
        if (expression.getDataType() != PDataType.BOOLEAN) {
            throw TypeMismatchException.newException(PDataType.BOOLEAN, expression.getDataType(), expression.toString());
View Full Code Here

Examples of org.apache.phoenix.parse.ParseNode

    private HavingCompiler() {
    }

    public static Expression compile(StatementContext context, SelectStatement statement, GroupBy groupBy) throws SQLException {
        ParseNode having = statement.getHaving();
        if (having == null) {
            return null;
        }
        ExpressionCompiler expressionBuilder = new ExpressionCompiler(context, groupBy);
        Expression expression = having.accept(expressionBuilder);
        if (expression.getDataType() != PDataType.BOOLEAN) {
            throw TypeMismatchException.newException(PDataType.BOOLEAN, expression.getDataType(), expression.toString());
        }
        if (LiteralExpression.isFalse(expression)) {
            context.setScanRanges(ScanRanges.NOTHING);
View Full Code Here

Examples of org.apache.phoenix.parse.ParseNode

        }
        return expression;
    }

    public static SelectStatement rewrite(StatementContext context, SelectStatement statement, GroupBy groupBy) throws SQLException {
        ParseNode having = statement.getHaving();
        if (having == null) {
            return statement;
        }
        HavingClauseVisitor visitor = new HavingClauseVisitor(context, groupBy);
        having.accept(visitor);
        statement = SelectStatementRewriter.moveFromHavingToWhereClause(statement, visitor.getMoveToWhereClauseExpressions());
        return statement;
    }
View Full Code Here

Examples of org.jboss.byteman.rule.grammar.ParseNode

      switch (CUP$ECAGrammarParser$act_num)
        {
          /*. . . . . . . . . . . . . . . . . . . .*/
          case 133: // path ::= path DOT IDENTIFIER
            {
              ParseNode RESULT =null;
    int pleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int pright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode p = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    String i = (String)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.PATH, ileft, iright, i, p);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("path",32, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 132: // path ::= IDENTIFIER
            {
              ParseNode RESULT =null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    String i = (String)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.PATH, ileft, iright, i, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("path",32, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 131: // simple_name ::= IDENTIFIER
            {
              ParseNode RESULT =null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    String i = (String)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.IDENTIFIER, ileft, iright, i, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("simple_name",31, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 130: // name ::= path DOT IDENTIFIER
            {
              ParseNode RESULT =null;
    int pleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int pright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode p = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    String i = (String)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.IDENTIFIER, ileft, iright, i, p);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("name",30, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 129: // name ::= simple_name
            {
              ParseNode RESULT =null;
    int nleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int nright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode n = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = n;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("name",30, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 128: // null_expr ::= NULL_LITERAL
            {
              ParseNode RESULT =null;
    int nleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int nright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Object n = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.NULL_LITERAL, nleft, nright);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("null_expr",25, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 127: // simple_expr ::= LPAREN expr RPAREN
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("simple_expr",24, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 126: // simple_expr ::= DOLLAR
            {
              ParseNode RESULT =null;
    int sleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int sright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Object s = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.DOLLAR, sleft, sright, s);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("simple_expr",24, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 125: // simple_expr ::= STRING_LITERAL
            {
              ParseNode RESULT =null;
    int sleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int sright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    String s = (String)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.STRING_LITERAL, sleft, sright, s);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("simple_expr",24, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 124: // simple_expr ::= BOOLEAN_LITERAL
            {
              ParseNode RESULT =null;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Boolean b = (Boolean)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT =  node(ParseNode.BOOLEAN_LITERAL, bleft, bright, b);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("simple_expr",24, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 123: // simple_expr ::= FLOAT_LITERAL
            {
              ParseNode RESULT =null;
    int fleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int fright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Float f = (Float)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT =  node(ParseNode.FLOAT_LITERAL, fleft, fright, f);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("simple_expr",24, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 122: // simple_expr ::= INTEGER_LITERAL
            {
              ParseNode RESULT =null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Integer i = (Integer)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT =  node(ParseNode.INTEGER_LITERAL, ileft, iright, i);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("simple_expr",24, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 121: // new_array_idx_list ::= LSQUARE expr RSQUARE new_array_idx_list
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int asleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int asright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode as = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.COMMA, eleft, eright, e, as);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("new_array_idx_list",23, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 120: // new_array_idx_list ::= LSQUARE RSQUARE new_array_idx_list
            {
              ParseNode RESULT =null;
    int lleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int lright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    Object l = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int asleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int asright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode as = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.COMMA, lleft, lright, node(ParseNode.NOTHING, lleft, lright), as);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("new_array_idx_list",23, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 119: // new_array_idx_list ::= LSQUARE expr RSQUARE
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("new_array_idx_list",23, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 118: // new_array_idx_list ::= LSQUARE RSQUARE
            {
              ParseNode RESULT =null;
    int lleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int lright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object l = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = node(ParseNode.NOTHING, lleft, lright);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("new_array_idx_list",23, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 117: // new_expr ::= NEW name LPAREN expr_list RPAREN
            {
              ParseNode RESULT =null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).right;
    ParseNode i = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).value;
    int argsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int argsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode args = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = node(ParseNode.NEW, ileft, iright, i, args, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("new_expr",22, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 116: // new_expr ::= NEW name new_array_idx_list
            {
              ParseNode RESULT =null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode i = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int asleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int asright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode as = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.NEW, ileft, iright, i, null, as);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("new_expr",22, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 115: // new_expr ::= NEW name LPAREN RPAREN
            {
              ParseNode RESULT =null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode i = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
     RESULT = node(ParseNode.NEW, ileft, iright, i, null, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("new_expr",22, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 114: // expr_meth_expr ::= expr_field_expr DOT simple_name LPAREN expr_list RPAREN
            {
              ParseNode RESULT =null;
    int efeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).left;
    int eferight = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).right;
    ParseNode efe = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).value;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).value;
    int argsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int argsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode args = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, efe, args);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_meth_expr",21, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 113: // expr_meth_expr ::= expr_field_expr DOT simple_name LPAREN RPAREN
            {
              ParseNode RESULT =null;
    int efeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left;
    int eferight = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).right;
    ParseNode efe = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, efe, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_meth_expr",21, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 112: // expr_meth_expr ::= meth_expr DOT simple_name LPAREN expr_list RPAREN
            {
              ParseNode RESULT =null;
    int emeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).left;
    int emeright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).right;
    ParseNode eme = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).value;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).value;
    int argsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int argsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode args = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, eme, args);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_meth_expr",21, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 111: // expr_meth_expr ::= meth_expr DOT simple_name LPAREN RPAREN
            {
              ParseNode RESULT =null;
    int emeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left;
    int emeright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).right;
    ParseNode eme = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, eme, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_meth_expr",21, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 110: // expr_meth_expr ::= simple_expr DOT simple_name LPAREN expr_list RPAREN
            {
              ParseNode RESULT =null;
    int seleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).left;
    int seright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).right;
    ParseNode se = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).value;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).value;
    int argsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int argsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode args = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, se, args);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_meth_expr",21, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 109: // expr_meth_expr ::= simple_expr DOT simple_name LPAREN RPAREN
            {
              ParseNode RESULT =null;
    int seleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left;
    int seright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).right;
    ParseNode se = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, se, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_meth_expr",21, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 108: // meth_expr ::= expr_meth_expr
            {
              ParseNode RESULT =null;
    int emeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int emeright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode eme = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = eme;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("meth_expr",20, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 107: // meth_expr ::= path DOT simple_name LPAREN expr_list RPAREN
            {
              ParseNode RESULT =null;
    int pleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).left;
    int pright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).right;
    ParseNode p = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).value;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).value;
    int argsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int argsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode args = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, p, args);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("meth_expr",20, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 106: // meth_expr ::= path DOT simple_name LPAREN RPAREN
            {
              ParseNode RESULT =null;
    int pleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left;
    int pright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).right;
    ParseNode p = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, p, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("meth_expr",20, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 105: // meth_expr ::= simple_name LPAREN expr_list RPAREN
            {
              ParseNode RESULT =null;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).value;
    int argsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int argsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode args = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, null, args);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("meth_expr",20, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 104: // meth_expr ::= simple_name LPAREN RPAREN
            {
              ParseNode RESULT =null;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, null, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("meth_expr",20, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 103: // expr_field_expr ::= expr_field_expr DOT simple_name
            {
              ParseNode RESULT =null;
    int efeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int eferight = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode efe = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int fleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int fright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode f = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.FIELD, fleft, fright, f, efe);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_field_expr",19, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 102: // expr_field_expr ::= meth_expr DOT simple_name
            {
              ParseNode RESULT =null;
    int meleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int meright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode me = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int fleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int fright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode f = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.FIELD, fleft, fright, f, me);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_field_expr",19, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 101: // expr_field_expr ::= simple_expr DOT simple_name
            {
              ParseNode RESULT =null;
    int seleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int seright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode se = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int fleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int fright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode f = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.FIELD, fleft, fright, f, se);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_field_expr",19, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 100: // field_expr ::= expr_field_expr
            {
              ParseNode RESULT =null;
    int efeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eferight = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode efe = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = efe;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("field_expr",18, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 99: // field_expr ::= path DOT simple_name
            {
              ParseNode RESULT =null;
    int pleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int pright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode p = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int fleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int fright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode f = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.FIELD, fleft, fright, f, p);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("field_expr",18, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 98: // array_idx ::= LSQUARE expr RSQUARE
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("array_idx",27, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 97: // array_idx_list ::= array_idx
            {
              ParseNode RESULT =null;
    int aileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int airight = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ai = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = ai;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("array_idx_list",26, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 96: // array_idx_list ::= array_idx array_idx_list
            {
              ParseNode RESULT =null;
    int aileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int airight = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode ai = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int ailleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int ailright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ail = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT =  node(ParseNode.SEMI, aileft, airight, ai, ail);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("array_idx_list",26, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 95: // array_expr ::= meth_expr array_idx_list
            {
              ParseNode RESULT =null;
    int meleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int meright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode me = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int ailleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int ailright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ail = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.ARRAY, meleft, meright, me, ail);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("array_expr",17, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 94: // array_expr ::= field_expr array_idx_list
            {
              ParseNode RESULT =null;
    int feleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int feright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode fe = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int ailleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int ailright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ail = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.ARRAY, feleft, feright, fe, ail);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("array_expr",17, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 93: // array_expr ::= simple_name array_idx_list
            {
              ParseNode RESULT =null;
    int nameleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int nameright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode name = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int ailleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int ailright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ail = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.ARRAY, nameleft, nameright, name, ail);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("array_expr",17, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 92: // array_expr ::= simple_expr array_idx_list
            {
              ParseNode RESULT =null;
    int seleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int seright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode se = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int ailleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int ailright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ail = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.ARRAY, seleft, seright, se, ail);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("array_expr",17, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 91: // unary_oper_expr ::= MINUS expr
            {
              ParseNode RESULT =null;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.UNOP, eleft, eright, node(ParseNode.UMINUS, oleft, oright), e);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("unary_oper_expr",16, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 90: // unary_oper_expr ::= TWIDDLE expr
            {
              ParseNode RESULT =null;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.UNOP, eleft, eright, node(ParseNode.TWIDDLE, oleft, oright), e);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("unary_oper_expr",16, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 89: // unary_oper_expr ::= NOT expr
            {
              ParseNode RESULT =null;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.UNOP, eleft, eright, node(ParseNode.NOT, oleft, oright), e);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("unary_oper_expr",16, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 88: // binary_oper_expr ::= expr MOD expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.MOD, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 87: // binary_oper_expr ::= expr DIV expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.DIV, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 86: // binary_oper_expr ::= expr MUL expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.MUL, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 85: // binary_oper_expr ::= expr MINUS expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.MINUS, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 84: // binary_oper_expr ::= expr PLUS expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.PLUS, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 83: // binary_oper_expr ::= expr BXOR expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.BXOR, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 82: // binary_oper_expr ::= expr BAND expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.BAND, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 81: // binary_oper_expr ::= expr BOR expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.BOR, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 80: // binary_oper_expr ::= expr GT expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.GT, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 79: // binary_oper_expr ::= expr GE expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.GE, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 78: // binary_oper_expr ::= expr NE expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.NE, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 77: // binary_oper_expr ::= expr EQ expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.EQ, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 76: // binary_oper_expr ::= expr LE expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.LE, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 75: // binary_oper_expr ::= expr LT expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.LT, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 74: // binary_oper_expr ::= expr AND expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.AND, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 73: // binary_oper_expr ::= expr OR expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.OR, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 72: // ternary_oper_expr ::= expr TERN_IF expr COLON expr
            {
              ParseNode RESULT =null;
    int condleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left;
    int condright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).right;
    ParseNode cond = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int iftrueleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int iftrueright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode iftrue = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int iffalseleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int iffalseright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode iffalse = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.TERNOP, condleft, condright, cond, iftrue, iffalse);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("ternary_oper_expr",14, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 71: // expr ::= error expr
            {
              ParseNode RESULT =null;
    int errleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int errright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object err = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     error("invalid expression", errleft, errright); RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 70: // expr ::= array_expr ASSIGN expr
            {
              ParseNode RESULT =null;
    int aleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode a = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.ASSIGN, aleft, aright, a, e);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 69: // expr ::= field_expr ASSIGN expr
            {
              ParseNode RESULT =null;
    int fleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int fright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode f = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.ASSIGN, fleft, fright, f, e);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 68: // expr ::= DOLLAR ASSIGN expr
            {
              ParseNode RESULT =null;
    int dleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int dright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    Object d = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.ASSIGN, dleft, dright, node(ParseNode.DOLLAR, dleft, dright, d), e);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 67: // expr ::= simple_name ASSIGN expr
            {
              ParseNode RESULT =null;
    int sleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int sright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode s = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.ASSIGN, sleft, sright, s, e);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 66: // expr ::= simple_name
            {
              ParseNode RESULT =null;
    int nleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int nright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode n = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = n;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 65: // expr ::= null_expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 64: // expr ::= simple_expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 63: // expr ::= new_expr
            {
              ParseNode RESULT =null;
    int neleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int neright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ne = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = ne;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 62: // expr ::= meth_expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 61: // expr ::= field_expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 60: // expr ::= array_expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 59: // expr ::= unary_oper_expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 58: // expr ::= binary_oper_expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 57: // expr ::= ternary_oper_expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 56: // expr_list ::= error SEMI expr_list
            {
              ParseNode RESULT =null;
    int errleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int errright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    Object err = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int elleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int elright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode el = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     error("invalid expression", errleft, errright);
       RESULT = el;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_list",12, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 55: // expr_list ::= expr SEMI expr_list
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int elleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int elright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode el = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.COMMA, eleft, eright, e, el);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_list",12, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 54: // expr_list ::= expr COMMA expr_list
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int elleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int elright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode el = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.COMMA, eleft, eright, e, el);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_list",12, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 53: // expr_list ::= expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_list",12, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 52: // throw_return_expr ::= THROW NEW name LPAREN expr_list RPAREN
            {
              ParseNode RESULT =null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).right;
    ParseNode i = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).value;
    int argsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int argsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode args = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = node(ParseNode.THROW, ileft, iright, i, args);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("throw_return_expr",11, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 51: // throw_return_expr ::= THROW NEW name LPAREN RPAREN
            {
              ParseNode RESULT =null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode i = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
     RESULT = node(ParseNode.THROW, ileft, iright, i, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("throw_return_expr",11, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 50: // throw_return_expr ::= THROW name LPAREN expr_list RPAREN
            {
              ParseNode RESULT =null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).right;
    ParseNode i = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).value;
    int argsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int argsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode args = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = node(ParseNode.THROW, ileft, iright, i, args);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("throw_return_expr",11, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 49: // throw_return_expr ::= THROW name LPAREN RPAREN
            {
              ParseNode RESULT =null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode i = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
     RESULT = node(ParseNode.THROW, ileft, iright, i, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("throw_return_expr",11, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 48: // throw_return_expr ::= RETURN expr
            {
              ParseNode RESULT =null;
    int rleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int rright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object r = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.RETURN, rleft, rright, e);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("throw_return_expr",11, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 47: // throw_return_expr ::= RETURN
            {
              ParseNode RESULT =null;
    int rleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int rright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Object r = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.RETURN, rleft, rright, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("throw_return_expr",11, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 46: // action_expr ::= throw_return_expr SEMI
            {
              ParseNode RESULT =null;
    int treleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int treright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode tre = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = tre;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("action_expr",10, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 45: // action_expr ::= throw_return_expr
            {
              ParseNode RESULT =null;
    int treleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int treright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode tre = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = tre;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("action_expr",10, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 44: // action_expr ::= expr SEMI
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("action_expr",10, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 43: // action_expr ::= expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("action_expr",10, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 42: // action_expr_list ::= action_expr
            {
              ParseNode RESULT =null;
    int aeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int aeright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ae = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = ae;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("action_expr_list",9, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 41: // action_expr_list ::= expr SEMI error
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int errleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int errright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Object err = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     error("invalid action", errleft, errright);
       RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("action_expr_list",9, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 40: // action_expr_list ::= error SEMI action_expr_list
            {
              ParseNode RESULT =null;
    int errleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int errright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    Object err = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int aelleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int aelright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ael = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     error("invalid action", errleft, errright);
       RESULT = ael;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("action_expr_list",9, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 39: // action_expr_list ::= expr COMMA action_expr_list
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int aelleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int aelright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ael = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.SEMI, eleft, eright, e, ael);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("action_expr_list",9, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 38: // action_expr_list ::= expr SEMI action_expr_list
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int aelleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int aelright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ael = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.SEMI, eleft, eright, e, ael);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("action_expr_list",9, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 37: // actions ::= action_expr_list
            {
              ParseNode RESULT =null;
    int aelleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int aelright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ael = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = ael;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("actions",8, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 36: // actions ::= NOTHING
            {
              ParseNode RESULT =null;
    int nleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int nright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Object n = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.NOTHING, nleft, nright);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("actions",8, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 35: // condition ::= expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("condition",7, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 34: // arraydims ::= LSQUARE RSQUARE
            {
              Integer RESULT =null;
     RESULT =  1;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("arraydims",29, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 33: // arraydims ::= LSQUARE RSQUARE arraydims
            {
              Integer RESULT =null;
    int aleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int aright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Integer a = (Integer)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = a + 1;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("arraydims",29, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 32: // typename ::= name
            {
              ParseNode RESULT =null;
    int tleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int tright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode t = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = t;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("typename",28, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 31: // typename ::= name arraydims
            {
              ParseNode RESULT =null;
    int tleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int tright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode t = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int dleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int dright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Integer d = (Integer)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
   
            ParseNode tmp = t;
            for (int i = 0; i < d; i++) {
                tmp =  node(ParseNode.ARRAY, tleft, tright, tmp);
            }
            RESULT = tmp;
       
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("typename",28, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 30: // bind_sym ::= simple_name
            {
              ParseNode RESULT =null;
    int varleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int varright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode var = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = var;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("bind_sym",6, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 29: // bind_sym ::= simple_name COLON typename
            {
              ParseNode RESULT =null;
    int varleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int varright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode var = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int typeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int typeright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode type = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.COLON, varleft, varright, var, type);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("bind_sym",6, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 28: // binding ::= bind_sym ASSIGN expr
            {
              ParseNode RESULT =null;
    int sleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int sright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode s = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.ASSIGN, sleft, sright, s, e);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binding",5, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 27: // bindings ::= binding
            {
              ParseNode RESULT =null;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode b = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = b;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("bindings",4, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 26: // bindings ::= binding SEMI
            {
              ParseNode RESULT =null;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode b = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = b;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("bindings",4, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 25: // bindings ::= binding SEMI error
            {
              ParseNode RESULT =null;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode b = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int errleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int errright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Object err = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     error("invalid binding", errleft, errright);
         RESULT = b;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("bindings",4, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 24: // bindings ::= error SEMI bindings
            {
              ParseNode RESULT =null;
    int errleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int errright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    Object err = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int bsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int bsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode bs = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     error("invalid binding", errleft, errright);
         RESULT = bs;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("bindings",4, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 23: // bindings ::= binding SEMI bindings
            {
              ParseNode RESULT =null;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode b = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int bsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int bsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode bs = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.COMMA, bleft, bright, b, bs);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("bindings",4, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 22: // bindings ::= binding COMMA bindings
            {
              ParseNode RESULT =null;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode b = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int bsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int bsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode bs = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.COMMA, bleft, bright, b, bs);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("bindings",4, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 21: // event ::= bindings
            {
              ParseNode RESULT =null;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode b = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = b;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("event",3, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 20: // event ::= NOTHING
            {
              ParseNode RESULT =null;
    int nleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int nright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Object n = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.NOTHING, nleft, nright);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("event",3, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 19: // ca_error_in_action ::= IF condition DO error
            {
              ParseNode RESULT =null;
    int cleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode c = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int dleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int dright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object d = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     error("invalid action", dleft, dright);
                      RESULT = node(ParseNode.BIND, cleft, cright, null, c, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("ca_error_in_action",39, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 18: // ca_error_in_condition ::= IF error NT$2 DO actions
            {
              ParseNode RESULT =null;
              // propagate RESULT from NT$2
                RESULT = (ParseNode) ((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).right;
    Object i = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int aright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode a = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BIND, ileft, iright, null, null, a);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("ca_error_in_condition",38, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 17: // NT$2 ::=
            {
              ParseNode RESULT =null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object i = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
error("invalid condition", ileft, iright);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("NT$2",42, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 16: // ca_error ::= ca_error_in_action
            {
              ParseNode RESULT =null;

              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("ca_error",37, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 15: // ca_error ::= ca_error_in_condition
            {
              ParseNode RESULT =null;

              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("ca_error",37, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 14: // ca ::= ca_error
            {
              ParseNode RESULT =null;

              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("ca",2, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 13: // ca ::= IF condition DO actions
            {
              ParseNode RESULT =null;
    int cleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode c = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int aright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode a = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BIND, cleft, cright, null, c, a);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("ca",2, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 12: // eca_error_in_action ::= BIND event IF condition DO error
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode c = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int dleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int dright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object d = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     error("invalid action", dleft, dright);
                      RESULT = node(ParseNode.BIND, eleft, eright, e, c, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca_error_in_action",36, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 11: // eca_error_in_condition ::= BIND event IF error NT$1 DO actions
            {
              ParseNode RESULT =null;
              // propagate RESULT from NT$1
                RESULT = (ParseNode) ((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).value;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).right;
    Object i = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int aright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode a = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BIND, eleft, eright, e, null, a);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca_error_in_condition",35, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-6)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 10: // NT$1 ::=
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object i = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
error("invalid condition", ileft, iright);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("NT$1",41, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 9: // eca_error_in_event ::= BIND error NT$0 IF condition DO actions
            {
              ParseNode RESULT =null;
              // propagate RESULT from NT$0
                RESULT = (ParseNode) ((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-6)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-6)).right;
    Object b = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-6)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode c = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int aright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode a = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BIND, bleft, bright, null, c, a);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca_error_in_event",34, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-6)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 8: // NT$0 ::=
            {
              ParseNode RESULT =null;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object b = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
error("invalid event", bleft, bright);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("NT$0",40, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 7: // eca_error ::= eca_error_in_action
            {
              ParseNode RESULT =null;

              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca_error",33, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 6: // eca_error ::= eca_error_in_condition
            {
              ParseNode RESULT =null;

              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca_error",33, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 5: // eca_error ::= eca_error_in_event
            {
              ParseNode RESULT =null;

              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca_error",33, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 4: // eca ::= eca_error
            {
              ParseNode RESULT =null;

              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca",1, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 3: // eca ::= BIND event IF condition DO actions
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode c = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int aright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode a = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BIND, eleft, eright, e, c, a);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca",1, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 2: // eca_rule ::= ca
            {
              ParseNode RESULT =null;
    int ruleleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int ruleright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode rule = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = rule;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca_rule",0, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 1: // $START ::= eca_rule EOF
            {
              Object RESULT =null;
    int start_valleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int start_valright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode start_val = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    RESULT = start_val;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("$START",0, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          /* ACCEPT */
          CUP$ECAGrammarParser$parser.done_parsing();
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 0: // eca_rule ::= eca
            {
              ParseNode RESULT =null;
    int ruleleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int ruleright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode rule = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = rule;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca_rule",0, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.