All Downloads are FREE. Search and download functionalities are using the official Maven repository.

prerna.sablecc2.parser.Parser Maven / Gradle / Ivy

The newest version!
/* This file was generated by SableCC (http://www.sablecc.org/). */

package prerna.sablecc2.parser;

import prerna.sablecc2.lexer.*;
import prerna.sablecc2.node.*;
import prerna.sablecc2.analysis.*;
import java.util.*;

import java.io.DataInputStream;
import java.io.BufferedInputStream;
import java.io.IOException;

@SuppressWarnings("nls")
public class Parser
{
    public final Analysis ignoredTokens = new AnalysisAdapter();

    protected ArrayList nodeList;

    private final Lexer lexer;
    private final ListIterator stack = new LinkedList().listIterator();
    private int last_pos;
    private int last_line;
    private Token last_token;
    private final TokenIndex converter = new TokenIndex();
    private final int[] action = new int[2];

    private final static int SHIFT = 0;
    private final static int REDUCE = 1;
    private final static int ACCEPT = 2;
    private final static int ERROR = 3;

    public Parser(@SuppressWarnings("hiding") Lexer lexer)
    {
        this.lexer = lexer;
    }

    @SuppressWarnings({"unchecked","unused"})
    private void push(int numstate, ArrayList listNode) throws ParserException, LexerException, IOException
    {
        this.nodeList = listNode;

        if(!this.stack.hasNext())
        {
            this.stack.add(new State(numstate, this.nodeList));
            return;
        }

        State s = (State) this.stack.next();
        s.state = numstate;
        s.nodes = this.nodeList;
    }

    private int goTo(int index)
    {
        int state = state();
        int low = 1;
        int high = gotoTable[index].length - 1;
        int value = gotoTable[index][0][1];

        while(low <= high)
        {
            // int middle = (low + high) / 2;
            int middle = (low + high) >>> 1;

            if(state < gotoTable[index][middle][0])
            {
                high = middle - 1;
            }
            else if(state > gotoTable[index][middle][0])
            {
                low = middle + 1;
            }
            else
            {
                value = gotoTable[index][middle][1];
                break;
            }
        }

        return value;
    }

    private int state()
    {
        State s = (State) this.stack.previous();
        this.stack.next();
        return s.state;
    }

    private ArrayList pop()
    {
        return ((State) this.stack.previous()).nodes;
    }

    private int index(Switchable token)
    {
        this.converter.index = -1;
        token.apply(this.converter);
        return this.converter.index;
    }

    @SuppressWarnings("unchecked")
    public Start parse() throws ParserException, LexerException, IOException
    {
        push(0, null);
        List ign = null;
        while(true)
        {
            while(index(this.lexer.peek()) == -1)
            {
                if(ign == null)
                {
                    ign = new LinkedList();
                }

                ign.add(this.lexer.next());
            }

            if(ign != null)
            {
                this.ignoredTokens.setIn(this.lexer.peek(), ign);
                ign = null;
            }

            this.last_pos = this.lexer.peek().getPos();
            this.last_line = this.lexer.peek().getLine();
            this.last_token = this.lexer.peek();

            int index = index(this.lexer.peek());
            this.action[0] = Parser.actionTable[state()][0][1];
            this.action[1] = Parser.actionTable[state()][0][2];

            int low = 1;
            int high = Parser.actionTable[state()].length - 1;

            while(low <= high)
            {
                int middle = (low + high) / 2;

                if(index < Parser.actionTable[state()][middle][0])
                {
                    high = middle - 1;
                }
                else if(index > Parser.actionTable[state()][middle][0])
                {
                    low = middle + 1;
                }
                else
                {
                    this.action[0] = Parser.actionTable[state()][middle][1];
                    this.action[1] = Parser.actionTable[state()][middle][2];
                    break;
                }
            }

            switch(this.action[0])
            {
                case SHIFT:
		    {
		        ArrayList list = new ArrayList();
		        list.add(this.lexer.next());
                        push(this.action[1], list);
                    }
		    break;
                case REDUCE:
                    {
                        int reduction = this.action[1];
                        if(reduction < 500) reduce_0(reduction);
                    }
                    break;
                case ACCEPT:
                    {
                        EOF node2 = (EOF) this.lexer.next();
                        PConfiguration node1 = (PConfiguration) pop().get(0);
                        Start node = new Start(node1, node2);
                        return node;
                    }
                case ERROR:
                    throw new ParserException(this.last_token,
                        "[" + this.last_line + "," + this.last_pos + "] " +
                        Parser.errorMessages[Parser.errors[this.action[1]]]);
            }
        }
    }

    private void reduce_0(int reduction) throws IOException, LexerException, ParserException
    {
        switch(reduction)
        {
            case 0: /* reduce AAroutineconfiguration1Configuration */
            {
                ArrayList list = new0();
                push(goTo(0), list);
            }
            break;
            case 1: /* reduce AAroutineconfiguration2Configuration */
            {
                ArrayList list = new1();
                push(goTo(0), list);
            }
            break;
            case 2: /* reduce AEmptyConfiguration */
            {
                ArrayList list = new2();
                push(goTo(0), list);
            }
            break;
            case 3: /* reduce AOutputRoutine */
            {
                ArrayList list = new3();
                push(goTo(1), list);
            }
            break;
            case 4: /* reduce AAssignRoutine */
            {
                ArrayList list = new4();
                push(goTo(1), list);
            }
            break;
            case 5: /* reduce AMetaRoutine */
            {
                ArrayList list = new5();
                push(goTo(1), list);
            }
            break;
            case 6: /* reduce AMainCommentRoutine */
            {
                ArrayList list = new6();
                push(goTo(1), list);
            }
            break;
            case 7: /* reduce AEmptyroutine */
            {
                ArrayList list = new7();
                push(goTo(2), list);
            }
            break;
            case 8: /* reduce AAscript1Script */
            {
                ArrayList list = new8();
                push(goTo(3), list);
            }
            break;
            case 9: /* reduce AAscript2Script */
            {
                ArrayList list = new9();
                push(goTo(3), list);
            }
            break;
            case 10: /* reduce AOtherscript */
            {
                ArrayList list = new10();
                push(goTo(4), list);
            }
            break;
            case 11: /* reduce AAssignment */
            {
                ArrayList list = new11();
                push(goTo(5), list);
            }
            break;
            case 12: /* reduce AMetaScriptMetaRoutine */
            {
                ArrayList list = new12();
                push(goTo(6), list);
            }
            break;
            case 13: /* reduce AMetaAssignmentMetaRoutine */
            {
                ArrayList list = new13();
                push(goTo(6), list);
            }
            break;
            case 14: /* reduce AMandatoryScriptchain */
            {
                ArrayList list = new14();
                push(goTo(7), list);
            }
            break;
            case 15: /* reduce ABaseSubExpr */
            {
                ArrayList list = new15();
                push(goTo(8), list);
            }
            break;
            case 16: /* reduce ABaseSubScript */
            {
                ArrayList list = new16();
                push(goTo(9), list);
            }
            break;
            case 17: /* reduce ABaseAssignment */
            {
                ArrayList list = new17();
                push(goTo(10), list);
            }
            break;
            case 18: /* reduce ASimpleSubRoutineOptions */
            {
                ArrayList list = new18();
                push(goTo(11), list);
            }
            break;
            case 19: /* reduce AChainSubRoutineOptions */
            {
                ArrayList list = new19();
                push(goTo(11), list);
            }
            break;
            case 20: /* reduce AAssignmentSubRoutineOptions */
            {
                ArrayList list = new20();
                push(goTo(11), list);
            }
            break;
            case 21: /* reduce ASubRoutine */
            {
                ArrayList list = new21();
                push(goTo(12), list);
            }
            break;
            case 22: /* reduce ANormalMasterExpr */
            {
                ArrayList list = new22();
                push(goTo(13), list);
            }
            break;
            case 23: /* reduce AComparisonMasterExpr */
            {
                ArrayList list = new23();
                push(goTo(13), list);
            }
            break;
            case 24: /* reduce ABaseExprExpr */
            {
                ArrayList list = new24();
                push(goTo(14), list);
            }
            break;
            case 25: /* reduce AEmbeddedRoutineExpr */
            {
                ArrayList list = new25();
                push(goTo(14), list);
            }
            break;
            case 26: /* reduce AEmbeddedAssignmentExpr */
            {
                ArrayList list = new26();
                push(goTo(14), list);
            }
            break;
            case 27: /* reduce AHelpExpr */
            {
                ArrayList list = new27();
                push(goTo(14), list);
            }
            break;
            case 28: /* reduce ACommentExpr */
            {
                ArrayList list = new28();
                push(goTo(14), list);
            }
            break;
            case 29: /* reduce AExprComponentBaseExpr */
            {
                ArrayList list = new29();
                push(goTo(15), list);
            }
            break;
            case 30: /* reduce APlusBaseExpr */
            {
                ArrayList list = new30();
                push(goTo(15), list);
            }
            break;
            case 31: /* reduce AMinusBaseExpr */
            {
                ArrayList list = new31();
                push(goTo(15), list);
            }
            break;
            case 32: /* reduce AMultBaseExpr */
            {
                ArrayList list = new32();
                push(goTo(15), list);
            }
            break;
            case 33: /* reduce ADivBaseExpr */
            {
                ArrayList list = new33();
                push(goTo(15), list);
            }
            break;
            case 34: /* reduce AModBaseExpr */
            {
                ArrayList list = new34();
                push(goTo(15), list);
            }
            break;
            case 35: /* reduce ATermExprComponent */
            {
                ArrayList list = new35();
                push(goTo(16), list);
            }
            break;
            case 36: /* reduce APowerExprComponent */
            {
                ArrayList list = new36();
                push(goTo(16), list);
            }
            break;
            case 37: /* reduce AEmbeddedScriptchainExprComponent */
            {
                ArrayList list = new37();
                push(goTo(16), list);
            }
            break;
            case 38: /* reduce APower */
            {
                ArrayList list = new38();
                push(goTo(17), list);
            }
            break;
            case 39: /* reduce ARegTermTerm */
            {
                ArrayList list = new39();
                push(goTo(18), list);
            }
            break;
            case 40: /* reduce ANegTermTerm */
            {
                ArrayList list = new40();
                push(goTo(18), list);
            }
            break;
            case 41: /* reduce APosTermTerm */
            {
                ArrayList list = new41();
                push(goTo(18), list);
            }
            break;
            case 42: /* reduce ANegTerm */
            {
                ArrayList list = new42();
                push(goTo(19), list);
            }
            break;
            case 43: /* reduce APosTerm */
            {
                ArrayList list = new43();
                push(goTo(20), list);
            }
            break;
            case 44: /* reduce AScalarRegTerm */
            {
                ArrayList list = new44();
                push(goTo(21), list);
            }
            break;
            case 45: /* reduce AMapRegTerm */
            {
                ArrayList list = new45();
                push(goTo(21), list);
            }
            break;
            case 46: /* reduce AFormulaRegTerm */
            {
                ArrayList list = new46();
                push(goTo(21), list);
            }
            break;
            case 47: /* reduce AOperationRegTerm */
            {
                ArrayList list = new47();
                push(goTo(21), list);
            }
            break;
            case 48: /* reduce ARefRegTerm */
            {
                ArrayList list = new48();
                push(goTo(21), list);
            }
            break;
            case 49: /* reduce ADotcolRegTerm */
            {
                ArrayList list = new49();
                push(goTo(21), list);
            }
            break;
            case 50: /* reduce AJavaOpRegTerm */
            {
                ArrayList list = new50();
                push(goTo(21), list);
            }
            break;
            case 51: /* reduce AListRegTerm */
            {
                ArrayList list = new51();
                push(goTo(21), list);
            }
            break;
            case 52: /* reduce ACsvRegTerm */
            {
                ArrayList list = new52();
                push(goTo(21), list);
            }
            break;
            case 53: /* reduce AFormula */
            {
                ArrayList list = new53();
                push(goTo(22), list);
            }
            break;
            case 54: /* reduce AEmptyList */
            {
                ArrayList list = new54();
                push(goTo(23), list);
            }
            break;
            case 55: /* reduce AFilledList */
            {
                ArrayList list = new55();
                push(goTo(23), list);
            }
            break;
            case 56: /* reduce ANoValuesList */
            {
                ArrayList list = new56();
                push(goTo(24), list);
            }
            break;
            case 57: /* reduce AValuesList */
            {
                ArrayList list = new57();
                push(goTo(25), list);
            }
            break;
            case 58: /* reduce AOtherExpr */
            {
                ArrayList list = new58();
                push(goTo(26), list);
            }
            break;
            case 59: /* reduce AAoperation1Operation */
            {
                ArrayList list = new59();
                push(goTo(27), list);
            }
            break;
            case 60: /* reduce AAoperation2Operation */
            {
                ArrayList list = new60();
                push(goTo(27), list);
            }
            break;
            case 61: /* reduce AAoperation3Operation */
            {
                ArrayList list = new61();
                push(goTo(27), list);
            }
            break;
            case 62: /* reduce AAoperation4Operation */
            {
                ArrayList list = new62();
                push(goTo(27), list);
            }
            break;
            case 63: /* reduce AAoperation5Operation */
            {
                ArrayList list = new63();
                push(goTo(27), list);
            }
            break;
            case 64: /* reduce AAoperation6Operation */
            {
                ArrayList list = new64();
                push(goTo(27), list);
            }
            break;
            case 65: /* reduce AAoperation7Operation */
            {
                ArrayList list = new65();
                push(goTo(27), list);
            }
            break;
            case 66: /* reduce AAoperation8Operation */
            {
                ArrayList list = new66();
                push(goTo(27), list);
            }
            break;
            case 67: /* reduce ANounOpInput */
            {
                ArrayList list = new67();
                push(goTo(28), list);
            }
            break;
            case 68: /* reduce AInput$Expr1OpInput */
            {
                ArrayList list = new68();
                push(goTo(28), list);
            }
            break;
            case 69: /* reduce AInput$Prop1OpInput */
            {
                ArrayList list = new69();
                push(goTo(28), list);
            }
            break;
            case 70: /* reduce AInput$Relation1OpInput */
            {
                ArrayList list = new70();
                push(goTo(28), list);
            }
            break;
            case 71: /* reduce AOtherOpInput */
            {
                ArrayList list = new71();
                push(goTo(29), list);
            }
            break;
            case 72: /* reduce AAgenrow1GenRow */
            {
                ArrayList list = new72();
                push(goTo(30), list);
            }
            break;
            case 73: /* reduce AAgenrow2$Expr1GenRow */
            {
                ArrayList list = new73();
                push(goTo(30), list);
            }
            break;
            case 74: /* reduce AAgenrow2$Prop1GenRow */
            {
                ArrayList list = new74();
                push(goTo(30), list);
            }
            break;
            case 75: /* reduce AAgenrow2$Relation1GenRow */
            {
                ArrayList list = new75();
                push(goTo(30), list);
            }
            break;
            case 76: /* reduce AAgenrow3GenRow */
            {
                ArrayList list = new76();
                push(goTo(30), list);
            }
            break;
            case 77: /* reduce AAgenrow4$Expr1GenRow */
            {
                ArrayList list = new77();
                push(goTo(30), list);
            }
            break;
            case 78: /* reduce AAgenrow4$Prop1GenRow */
            {
                ArrayList list = new78();
                push(goTo(30), list);
            }
            break;
            case 79: /* reduce AAgenrow4$Relation1GenRow */
            {
                ArrayList list = new79();
                push(goTo(30), list);
            }
            break;
            case 80: /* reduce AExpr1Othercol */
            {
                ArrayList list = new80();
                push(goTo(31), list);
            }
            break;
            case 81: /* reduce AProp1Othercol */
            {
                ArrayList list = new81();
                push(goTo(31), list);
            }
            break;
            case 82: /* reduce ARelation1Othercol */
            {
                ArrayList list = new82();
                push(goTo(31), list);
            }
            break;
            case 83: /* reduce ANoun */
            {
                ArrayList list = new83();
                push(goTo(32), list);
            }
            break;
            case 84: /* reduce AProp */
            {
                ArrayList list = new84();
                push(goTo(33), list);
            }
            break;
            case 85: /* reduce AAsop */
            {
                ArrayList list = new85();
                push(goTo(34), list);
            }
            break;
            case 86: /* reduce AExplicitRelationship */
            {
                ArrayList list = new86();
                push(goTo(35), list);
            }
            break;
            case 87: /* reduce AExplicitComparatorRelationship */
            {
                ArrayList list = new87();
                push(goTo(35), list);
            }
            break;
            case 88: /* reduce AImplicitRelationship */
            {
                ArrayList list = new88();
                push(goTo(35), list);
            }
            break;
            case 89: /* reduce AExpr1$Expr2ImplicitRel */
            {
                ArrayList list = new89();
                push(goTo(36), list);
            }
            break;
            case 90: /* reduce AExpr1$Prop2ImplicitRel */
            {
                ArrayList list = new90();
                push(goTo(36), list);
            }
            break;
            case 91: /* reduce AExpr1$Relation2ImplicitRel */
            {
                ArrayList list = new91();
                push(goTo(36), list);
            }
            break;
            case 92: /* reduce AProp1$Expr2ImplicitRel */
            {
                ArrayList list = new92();
                push(goTo(36), list);
            }
            break;
            case 93: /* reduce AProp1$Prop2ImplicitRel */
            {
                ArrayList list = new93();
                push(goTo(36), list);
            }
            break;
            case 94: /* reduce AProp1$Relation2ImplicitRel */
            {
                ArrayList list = new94();
                push(goTo(36), list);
            }
            break;
            case 95: /* reduce ARelation1$Expr2ImplicitRel */
            {
                ArrayList list = new95();
                push(goTo(36), list);
            }
            break;
            case 96: /* reduce ARelation1$Prop2ImplicitRel */
            {
                ArrayList list = new96();
                push(goTo(36), list);
            }
            break;
            case 97: /* reduce ARelation1$Relation2ImplicitRel */
            {
                ArrayList list = new97();
                push(goTo(36), list);
            }
            break;
            case 98: /* reduce AExpr1$Expr2ExplicitRelComparator */
            {
                ArrayList list = new98();
                push(goTo(37), list);
            }
            break;
            case 99: /* reduce AExpr1$Prop2ExplicitRelComparator */
            {
                ArrayList list = new99();
                push(goTo(37), list);
            }
            break;
            case 100: /* reduce AExpr1$Relation2ExplicitRelComparator */
            {
                ArrayList list = new100();
                push(goTo(37), list);
            }
            break;
            case 101: /* reduce AProp1$Expr2ExplicitRelComparator */
            {
                ArrayList list = new101();
                push(goTo(37), list);
            }
            break;
            case 102: /* reduce AProp1$Prop2ExplicitRelComparator */
            {
                ArrayList list = new102();
                push(goTo(37), list);
            }
            break;
            case 103: /* reduce AProp1$Relation2ExplicitRelComparator */
            {
                ArrayList list = new103();
                push(goTo(37), list);
            }
            break;
            case 104: /* reduce ARelation1$Expr2ExplicitRelComparator */
            {
                ArrayList list = new104();
                push(goTo(37), list);
            }
            break;
            case 105: /* reduce ARelation1$Prop2ExplicitRelComparator */
            {
                ArrayList list = new105();
                push(goTo(37), list);
            }
            break;
            case 106: /* reduce ARelation1$Relation2ExplicitRelComparator */
            {
                ArrayList list = new106();
                push(goTo(37), list);
            }
            break;
            case 107: /* reduce AExpr1$Expr2$Expr3ExplicitRel */
            {
                ArrayList list = new107();
                push(goTo(38), list);
            }
            break;
            case 108: /* reduce AExpr1$Expr2$Prop3ExplicitRel */
            {
                ArrayList list = new108();
                push(goTo(38), list);
            }
            break;
            case 109: /* reduce AExpr1$Expr2$Relation3ExplicitRel */
            {
                ArrayList list = new109();
                push(goTo(38), list);
            }
            break;
            case 110: /* reduce AExpr1$Prop2$Expr3ExplicitRel */
            {
                ArrayList list = new110();
                push(goTo(38), list);
            }
            break;
            case 111: /* reduce AExpr1$Prop2$Prop3ExplicitRel */
            {
                ArrayList list = new111();
                push(goTo(38), list);
            }
            break;
            case 112: /* reduce AExpr1$Prop2$Relation3ExplicitRel */
            {
                ArrayList list = new112();
                push(goTo(38), list);
            }
            break;
            case 113: /* reduce AExpr1$Relation2$Expr3ExplicitRel */
            {
                ArrayList list = new113();
                push(goTo(38), list);
            }
            break;
            case 114: /* reduce AExpr1$Relation2$Prop3ExplicitRel */
            {
                ArrayList list = new114();
                push(goTo(38), list);
            }
            break;
            case 115: /* reduce AExpr1$Relation2$Relation3ExplicitRel */
            {
                ArrayList list = new115();
                push(goTo(38), list);
            }
            break;
            case 116: /* reduce AProp1$Expr2$Expr3ExplicitRel */
            {
                ArrayList list = new116();
                push(goTo(38), list);
            }
            break;
            case 117: /* reduce AProp1$Expr2$Prop3ExplicitRel */
            {
                ArrayList list = new117();
                push(goTo(38), list);
            }
            break;
            case 118: /* reduce AProp1$Expr2$Relation3ExplicitRel */
            {
                ArrayList list = new118();
                push(goTo(38), list);
            }
            break;
            case 119: /* reduce AProp1$Prop2$Expr3ExplicitRel */
            {
                ArrayList list = new119();
                push(goTo(38), list);
            }
            break;
            case 120: /* reduce AProp1$Prop2$Prop3ExplicitRel */
            {
                ArrayList list = new120();
                push(goTo(38), list);
            }
            break;
            case 121: /* reduce AProp1$Prop2$Relation3ExplicitRel */
            {
                ArrayList list = new121();
                push(goTo(38), list);
            }
            break;
            case 122: /* reduce AProp1$Relation2$Expr3ExplicitRel */
            {
                ArrayList list = new122();
                push(goTo(38), list);
            }
            break;
            case 123: /* reduce AProp1$Relation2$Prop3ExplicitRel */
            {
                ArrayList list = new123();
                push(goTo(38), list);
            }
            break;
            case 124: /* reduce AProp1$Relation2$Relation3ExplicitRel */
            {
                ArrayList list = new124();
                push(goTo(38), list);
            }
            break;
            case 125: /* reduce ARelation1$Expr2$Expr3ExplicitRel */
            {
                ArrayList list = new125();
                push(goTo(38), list);
            }
            break;
            case 126: /* reduce ARelation1$Expr2$Prop3ExplicitRel */
            {
                ArrayList list = new126();
                push(goTo(38), list);
            }
            break;
            case 127: /* reduce ARelation1$Expr2$Relation3ExplicitRel */
            {
                ArrayList list = new127();
                push(goTo(38), list);
            }
            break;
            case 128: /* reduce ARelation1$Prop2$Expr3ExplicitRel */
            {
                ArrayList list = new128();
                push(goTo(38), list);
            }
            break;
            case 129: /* reduce ARelation1$Prop2$Prop3ExplicitRel */
            {
                ArrayList list = new129();
                push(goTo(38), list);
            }
            break;
            case 130: /* reduce ARelation1$Prop2$Relation3ExplicitRel */
            {
                ArrayList list = new130();
                push(goTo(38), list);
            }
            break;
            case 131: /* reduce ARelation1$Relation2$Expr3ExplicitRel */
            {
                ArrayList list = new131();
                push(goTo(38), list);
            }
            break;
            case 132: /* reduce ARelation1$Relation2$Prop3ExplicitRel */
            {
                ArrayList list = new132();
                push(goTo(38), list);
            }
            break;
            case 133: /* reduce ARelation1$Relation2$Relation3ExplicitRel */
            {
                ArrayList list = new133();
                push(goTo(38), list);
            }
            break;
            case 134: /* reduce ATermComparisonExpr */
            {
                ArrayList list = new134();
                push(goTo(39), list);
            }
            break;
            case 135: /* reduce AComparisonGroupComparisonExpr */
            {
                ArrayList list = new135();
                push(goTo(39), list);
            }
            break;
            case 136: /* reduce AComplexOrComparisonExpr */
            {
                ArrayList list = new136();
                push(goTo(39), list);
            }
            break;
            case 137: /* reduce AComplexAndComparisonExpr */
            {
                ArrayList list = new137();
                push(goTo(39), list);
            }
            break;
            case 138: /* reduce ABasicComparisonTerm */
            {
                ArrayList list = new138();
                push(goTo(40), list);
            }
            break;
            case 139: /* reduce ABasicAndComparisonTerm */
            {
                ArrayList list = new139();
                push(goTo(40), list);
            }
            break;
            case 140: /* reduce ABasicOrComparisonTerm */
            {
                ArrayList list = new140();
                push(goTo(40), list);
            }
            break;
            case 141: /* reduce AComparisonGroup */
            {
                ArrayList list = new141();
                push(goTo(41), list);
            }
            break;
            case 142: /* reduce AAsimplecaseandcomparison1AndComparison */
            {
                ArrayList list = new142();
                push(goTo(42), list);
            }
            break;
            case 143: /* reduce AAsimplecaseandcomparison2AndComparison */
            {
                ArrayList list = new143();
                push(goTo(42), list);
            }
            break;
            case 144: /* reduce AAleftcomplexandcomparison1AndComparison */
            {
                ArrayList list = new144();
                push(goTo(42), list);
            }
            break;
            case 145: /* reduce AAleftcomplexandcomparison2AndComparison */
            {
                ArrayList list = new145();
                push(goTo(42), list);
            }
            break;
            case 146: /* reduce AArightcomplexandcomparison1AndComparison */
            {
                ArrayList list = new146();
                push(goTo(42), list);
            }
            break;
            case 147: /* reduce AArightcomplexandcomparison2AndComparison */
            {
                ArrayList list = new147();
                push(goTo(42), list);
            }
            break;
            case 148: /* reduce AAbothcomplexandcomparison1AndComparison */
            {
                ArrayList list = new148();
                push(goTo(42), list);
            }
            break;
            case 149: /* reduce AAbothcomplexandcomparison2AndComparison */
            {
                ArrayList list = new149();
                push(goTo(42), list);
            }
            break;
            case 150: /* reduce ARepeatingAndComparison */
            {
                ArrayList list = new150();
                push(goTo(43), list);
            }
            break;
            case 151: /* reduce AAsimplecaseorcomparison1OrComparison */
            {
                ArrayList list = new151();
                push(goTo(44), list);
            }
            break;
            case 152: /* reduce AAsimplecaseorcomparison2OrComparison */
            {
                ArrayList list = new152();
                push(goTo(44), list);
            }
            break;
            case 153: /* reduce AAleftcomplexorcomparison1OrComparison */
            {
                ArrayList list = new153();
                push(goTo(44), list);
            }
            break;
            case 154: /* reduce AAleftcomplexorcomparison2OrComparison */
            {
                ArrayList list = new154();
                push(goTo(44), list);
            }
            break;
            case 155: /* reduce AArightcomplexorcomparison1OrComparison */
            {
                ArrayList list = new155();
                push(goTo(44), list);
            }
            break;
            case 156: /* reduce AArightcomplexorcomparison2OrComparison */
            {
                ArrayList list = new156();
                push(goTo(44), list);
            }
            break;
            case 157: /* reduce AAbothcomplexorcomparison1OrComparison */
            {
                ArrayList list = new157();
                push(goTo(44), list);
            }
            break;
            case 158: /* reduce AAbothcomplexorcomparison2OrComparison */
            {
                ArrayList list = new158();
                push(goTo(44), list);
            }
            break;
            case 159: /* reduce ARepeatingOrComparison */
            {
                ArrayList list = new159();
                push(goTo(45), list);
            }
            break;
            case 160: /* reduce ABaseSimpleComparison */
            {
                ArrayList list = new160();
                push(goTo(46), list);
            }
            break;
            case 161: /* reduce AJavaOp */
            {
                ArrayList list = new161();
                push(goTo(47), list);
            }
            break;
            case 162: /* reduce ARcol */
            {
                ArrayList list = new162();
                push(goTo(48), list);
            }
            break;
            case 163: /* reduce ADotcol */
            {
                ArrayList list = new163();
                push(goTo(49), list);
            }
            break;
            case 164: /* reduce AAmap1Map */
            {
                ArrayList list = new164();
                push(goTo(50), list);
            }
            break;
            case 165: /* reduce AAmap2Map */
            {
                ArrayList list = new165();
                push(goTo(50), list);
            }
            break;
            case 166: /* reduce AAmap3Map */
            {
                ArrayList list = new166();
                push(goTo(50), list);
            }
            break;
            case 167: /* reduce AAmap4Map */
            {
                ArrayList list = new167();
                push(goTo(50), list);
            }
            break;
            case 168: /* reduce AMapEntry */
            {
                ArrayList list = new168();
                push(goTo(51), list);
            }
            break;
            case 169: /* reduce AOtherMapEntry */
            {
                ArrayList list = new169();
                push(goTo(52), list);
            }
            break;
            case 170: /* reduce ASimpleValues */
            {
                ArrayList list = new170();
                push(goTo(53), list);
            }
            break;
            case 171: /* reduce AListValues */
            {
                ArrayList list = new171();
                push(goTo(53), list);
            }
            break;
            case 172: /* reduce ANestedMapValues */
            {
                ArrayList list = new172();
                push(goTo(53), list);
            }
            break;
            case 173: /* reduce AMapOperationValues */
            {
                ArrayList list = new173();
                push(goTo(53), list);
            }
            break;
            case 174: /* reduce AAmaplist1MapList */
            {
                ArrayList list = new174();
                push(goTo(54), list);
            }
            break;
            case 175: /* reduce AAmaplist2MapList */
            {
                ArrayList list = new175();
                push(goTo(54), list);
            }
            break;
            case 176: /* reduce AAmaplist3MapList */
            {
                ArrayList list = new176();
                push(goTo(54), list);
            }
            break;
            case 177: /* reduce AAmaplist4MapList */
            {
                ArrayList list = new177();
                push(goTo(54), list);
            }
            break;
            case 178: /* reduce AMapListExtend */
            {
                ArrayList list = new178();
                push(goTo(55), list);
            }
            break;
            case 179: /* reduce AWordMapKey */
            {
                ArrayList list = new179();
                push(goTo(56), list);
            }
            break;
            case 180: /* reduce AVarMapKey */
            {
                ArrayList list = new180();
                push(goTo(56), list);
            }
            break;
            case 181: /* reduce AListMapExtendedInput */
            {
                ArrayList list = new181();
                push(goTo(57), list);
            }
            break;
            case 182: /* reduce AScalarMapExtendedInput */
            {
                ArrayList list = new182();
                push(goTo(57), list);
            }
            break;
            case 183: /* reduce ANestedMapMapExtendedInput */
            {
                ArrayList list = new183();
                push(goTo(57), list);
            }
            break;
            case 184: /* reduce AMapVarMapBaseInput */
            {
                ArrayList list = new184();
                push(goTo(58), list);
            }
            break;
            case 185: /* reduce ANormalScalarMapBaseInput */
            {
                ArrayList list = new185();
                push(goTo(58), list);
            }
            break;
            case 186: /* reduce AMapNegNumMapBaseInput */
            {
                ArrayList list = new186();
                push(goTo(58), list);
            }
            break;
            case 187: /* reduce AMapVar */
            {
                ArrayList list = new187();
                push(goTo(59), list);
            }
            break;
            case 188: /* reduce AMapNegNum */
            {
                ArrayList list = new188();
                push(goTo(60), list);
            }
            break;
            case 189: /* reduce ANumScalar */
            {
                ArrayList list = new189();
                push(goTo(61), list);
            }
            break;
            case 190: /* reduce ABooleanScalar */
            {
                ArrayList list = new190();
                push(goTo(61), list);
            }
            break;
            case 191: /* reduce ANullScalar */
            {
                ArrayList list = new191();
                push(goTo(61), list);
            }
            break;
            case 192: /* reduce AWordOrIdScalar */
            {
                ArrayList list = new192();
                push(goTo(61), list);
            }
            break;
            case 193: /* reduce AWordWordOrId */
            {
                ArrayList list = new193();
                push(goTo(62), list);
            }
            break;
            case 194: /* reduce AIdWordOrId */
            {
                ArrayList list = new194();
                push(goTo(62), list);
            }
            break;
            case 195: /* reduce AWholeDecimalDecimal */
            {
                ArrayList list = new195();
                push(goTo(63), list);
            }
            break;
            case 196: /* reduce AFractionDecimalDecimal */
            {
                ArrayList list = new196();
                push(goTo(63), list);
            }
            break;
            case 197: /* reduce AAwholedecimal1WholeDecimal */
            {
                ArrayList list = new197();
                push(goTo(64), list);
            }
            break;
            case 198: /* reduce AAwholedecimal2WholeDecimal */
            {
                ArrayList list = new198();
                push(goTo(64), list);
            }
            break;
            case 199: /* reduce AAwholedecimal3WholeDecimal */
            {
                ArrayList list = new199();
                push(goTo(64), list);
            }
            break;
            case 200: /* reduce AAwholedecimal4WholeDecimal */
            {
                ArrayList list = new200();
                push(goTo(64), list);
            }
            break;
            case 201: /* reduce AFractionDecimal */
            {
                ArrayList list = new201();
                push(goTo(65), list);
            }
            break;
            case 202: /* reduce ATerminal$Routine */
            {
                ArrayList list = new202();
                push(goTo(66), list);
            }
            break;
            case 203: /* reduce ANonTerminal$Routine */
            {
                ArrayList list = new203();
                push(goTo(66), list);
            }
            break;
            case 204: /* reduce ATerminal$Semicolon */
            {
                ArrayList list = new204();
                push(goTo(67), list);
            }
            break;
            case 205: /* reduce ANonTerminal$Semicolon */
            {
                ArrayList list = new205();
                push(goTo(67), list);
            }
            break;
            case 206: /* reduce ATerminal$Otherscript */
            {
                ArrayList list = new206();
                push(goTo(68), list);
            }
            break;
            case 207: /* reduce ANonTerminal$Otherscript */
            {
                ArrayList list = new207();
                push(goTo(68), list);
            }
            break;
            case 208: /* reduce ATerminal$SubRoutineOptions */
            {
                ArrayList list = new208();
                push(goTo(69), list);
            }
            break;
            case 209: /* reduce ANonTerminal$SubRoutineOptions */
            {
                ArrayList list = new209();
                push(goTo(69), list);
            }
            break;
            case 210: /* reduce ATerminal$OtherExpr */
            {
                ArrayList list = new210();
                push(goTo(70), list);
            }
            break;
            case 211: /* reduce ANonTerminal$OtherExpr */
            {
                ArrayList list = new211();
                push(goTo(70), list);
            }
            break;
            case 212: /* reduce ATerminal$OtherOpInput */
            {
                ArrayList list = new212();
                push(goTo(71), list);
            }
            break;
            case 213: /* reduce ANonTerminal$OtherOpInput */
            {
                ArrayList list = new213();
                push(goTo(71), list);
            }
            break;
            case 214: /* reduce ATerminal$Othercol */
            {
                ArrayList list = new214();
                push(goTo(72), list);
            }
            break;
            case 215: /* reduce ANonTerminal$Othercol */
            {
                ArrayList list = new215();
                push(goTo(72), list);
            }
            break;
            case 216: /* reduce ATerminal$RepeatingAndComparison */
            {
                ArrayList list = new216();
                push(goTo(73), list);
            }
            break;
            case 217: /* reduce ANonTerminal$RepeatingAndComparison */
            {
                ArrayList list = new217();
                push(goTo(73), list);
            }
            break;
            case 218: /* reduce ATerminal$RepeatingOrComparison */
            {
                ArrayList list = new218();
                push(goTo(74), list);
            }
            break;
            case 219: /* reduce ANonTerminal$RepeatingOrComparison */
            {
                ArrayList list = new219();
                push(goTo(74), list);
            }
            break;
            case 220: /* reduce ATerminal$OtherMapEntry */
            {
                ArrayList list = new220();
                push(goTo(75), list);
            }
            break;
            case 221: /* reduce ANonTerminal$OtherMapEntry */
            {
                ArrayList list = new221();
                push(goTo(75), list);
            }
            break;
            case 222: /* reduce ATerminal$MapListExtend */
            {
                ArrayList list = new222();
                push(goTo(76), list);
            }
            break;
            case 223: /* reduce ANonTerminal$MapListExtend */
            {
                ArrayList list = new223();
                push(goTo(76), list);
            }
            break;
        }
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new0() /* reduce AAroutineconfiguration1Configuration */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        PConfiguration pconfigurationNode1;
        {
            // Block
        LinkedList listNode2 = new LinkedList();
        {
            // Block
        }

        pconfigurationNode1 = new ARoutineConfiguration(listNode2);
        }
	nodeList.add(pconfigurationNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new1() /* reduce AAroutineconfiguration2Configuration */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PConfiguration pconfigurationNode1;
        {
            // Block
        LinkedList listNode3 = new LinkedList();
        {
            // Block
        LinkedList listNode2 = new LinkedList();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }

        pconfigurationNode1 = new ARoutineConfiguration(listNode3);
        }
	nodeList.add(pconfigurationNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new2() /* reduce AEmptyConfiguration */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PConfiguration pconfigurationNode1;
        {
            // Block
        PEmptyroutine pemptyroutineNode2;
        pemptyroutineNode2 = (PEmptyroutine)nodeArrayList1.get(0);

        pconfigurationNode1 = new AEmptyConfiguration(pemptyroutineNode2);
        }
	nodeList.add(pconfigurationNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new3() /* reduce AOutputRoutine */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PRoutine proutineNode1;
        {
            // Block
        PScript pscriptNode2;
        LinkedList listNode4 = new LinkedList();
        pscriptNode2 = (PScript)nodeArrayList1.get(0);
        {
            // Block
        LinkedList listNode3 = new LinkedList();
        listNode3 = (LinkedList)nodeArrayList2.get(0);
	if(listNode3 != null)
	{
	  listNode4.addAll(listNode3);
	}
        }

        proutineNode1 = new AOutputRoutine(pscriptNode2, listNode4);
        }
	nodeList.add(proutineNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new4() /* reduce AAssignRoutine */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PRoutine proutineNode1;
        {
            // Block
        PAssignment passignmentNode2;
        LinkedList listNode4 = new LinkedList();
        passignmentNode2 = (PAssignment)nodeArrayList1.get(0);
        {
            // Block
        LinkedList listNode3 = new LinkedList();
        listNode3 = (LinkedList)nodeArrayList2.get(0);
	if(listNode3 != null)
	{
	  listNode4.addAll(listNode3);
	}
        }

        proutineNode1 = new AAssignRoutine(passignmentNode2, listNode4);
        }
	nodeList.add(proutineNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new5() /* reduce AMetaRoutine */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PRoutine proutineNode1;
        {
            // Block
        PMetaRoutine pmetaroutineNode2;
        LinkedList listNode4 = new LinkedList();
        pmetaroutineNode2 = (PMetaRoutine)nodeArrayList1.get(0);
        {
            // Block
        LinkedList listNode3 = new LinkedList();
        listNode3 = (LinkedList)nodeArrayList2.get(0);
	if(listNode3 != null)
	{
	  listNode4.addAll(listNode3);
	}
        }

        proutineNode1 = new AMetaRoutine(pmetaroutineNode2, listNode4);
        }
	nodeList.add(proutineNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new6() /* reduce AMainCommentRoutine */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PRoutine proutineNode1;
        {
            // Block
        TComment tcommentNode2;
        tcommentNode2 = (TComment)nodeArrayList1.get(0);

        proutineNode1 = new AMainCommentRoutine(tcommentNode2);
        }
	nodeList.add(proutineNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new7() /* reduce AEmptyroutine */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PEmptyroutine pemptyroutineNode1;
        {
            // Block
        LinkedList listNode3 = new LinkedList();
        {
            // Block
        LinkedList listNode2 = new LinkedList();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }

        pemptyroutineNode1 = new AEmptyroutine(listNode3);
        }
	nodeList.add(pemptyroutineNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new8() /* reduce AAscript1Script */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PScript pscriptNode1;
        {
            // Block
        PMasterExpr pmasterexprNode2;
        LinkedList listNode3 = new LinkedList();
        pmasterexprNode2 = (PMasterExpr)nodeArrayList1.get(0);
        {
            // Block
        }

        pscriptNode1 = new AScript(pmasterexprNode2, listNode3);
        }
	nodeList.add(pscriptNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new9() /* reduce AAscript2Script */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PScript pscriptNode1;
        {
            // Block
        PMasterExpr pmasterexprNode2;
        LinkedList listNode4 = new LinkedList();
        pmasterexprNode2 = (PMasterExpr)nodeArrayList1.get(0);
        {
            // Block
        LinkedList listNode3 = new LinkedList();
        listNode3 = (LinkedList)nodeArrayList2.get(0);
	if(listNode3 != null)
	{
	  listNode4.addAll(listNode3);
	}
        }

        pscriptNode1 = new AScript(pmasterexprNode2, listNode4);
        }
	nodeList.add(pscriptNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new10() /* reduce AOtherscript */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        POtherscript potherscriptNode1;
        {
            // Block
        TCustom tcustomNode2;
        PMasterExpr pmasterexprNode3;
        tcustomNode2 = (TCustom)nodeArrayList1.get(0);
        pmasterexprNode3 = (PMasterExpr)nodeArrayList2.get(0);

        potherscriptNode1 = new AOtherscript(tcustomNode2, pmasterexprNode3);
        }
	nodeList.add(potherscriptNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new11() /* reduce AAssignment */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PAssignment passignmentNode1;
        {
            // Block
        TId tidNode2;
        TEqual tequalNode3;
        PScript pscriptNode4;
        tidNode2 = (TId)nodeArrayList1.get(0);
        tequalNode3 = (TEqual)nodeArrayList2.get(0);
        pscriptNode4 = (PScript)nodeArrayList3.get(0);

        passignmentNode1 = new AAssignment(tidNode2, tequalNode3, pscriptNode4);
        }
	nodeList.add(passignmentNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new12() /* reduce AMetaScriptMetaRoutine */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PMetaRoutine pmetaroutineNode1;
        {
            // Block
        TMeta tmetaNode2;
        TCustom tcustomNode3;
        PScript pscriptNode4;
        tmetaNode2 = (TMeta)nodeArrayList1.get(0);
        tcustomNode3 = (TCustom)nodeArrayList2.get(0);
        pscriptNode4 = (PScript)nodeArrayList3.get(0);

        pmetaroutineNode1 = new AMetaScriptMetaRoutine(tmetaNode2, tcustomNode3, pscriptNode4);
        }
	nodeList.add(pmetaroutineNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new13() /* reduce AMetaAssignmentMetaRoutine */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PMetaRoutine pmetaroutineNode1;
        {
            // Block
        TMeta tmetaNode2;
        TCustom tcustomNode3;
        PAssignment passignmentNode4;
        tmetaNode2 = (TMeta)nodeArrayList1.get(0);
        tcustomNode3 = (TCustom)nodeArrayList2.get(0);
        passignmentNode4 = (PAssignment)nodeArrayList3.get(0);

        pmetaroutineNode1 = new AMetaAssignmentMetaRoutine(tmetaNode2, tcustomNode3, passignmentNode4);
        }
	nodeList.add(pmetaroutineNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new14() /* reduce AMandatoryScriptchain */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PMandatoryScriptchain pmandatoryscriptchainNode1;
        {
            // Block
        PMasterExpr pmasterexprNode2;
        LinkedList listNode4 = new LinkedList();
        pmasterexprNode2 = (PMasterExpr)nodeArrayList1.get(0);
        {
            // Block
        LinkedList listNode3 = new LinkedList();
        listNode3 = (LinkedList)nodeArrayList2.get(0);
	if(listNode3 != null)
	{
	  listNode4.addAll(listNode3);
	}
        }

        pmandatoryscriptchainNode1 = new AMandatoryScriptchain(pmasterexprNode2, listNode4);
        }
	nodeList.add(pmandatoryscriptchainNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new15() /* reduce ABaseSubExpr */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PBaseSubExpr pbasesubexprNode1;
        {
            // Block
        PMasterExpr pmasterexprNode2;
        TSemicolon tsemicolonNode3;
        pmasterexprNode2 = (PMasterExpr)nodeArrayList1.get(0);
        tsemicolonNode3 = (TSemicolon)nodeArrayList2.get(0);

        pbasesubexprNode1 = new ABaseSubExpr(pmasterexprNode2, tsemicolonNode3);
        }
	nodeList.add(pbasesubexprNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new16() /* reduce ABaseSubScript */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PBaseSubScript pbasesubscriptNode1;
        {
            // Block
        PMandatoryScriptchain pmandatoryscriptchainNode2;
        TSemicolon tsemicolonNode3;
        pmandatoryscriptchainNode2 = (PMandatoryScriptchain)nodeArrayList1.get(0);
        tsemicolonNode3 = (TSemicolon)nodeArrayList2.get(0);

        pbasesubscriptNode1 = new ABaseSubScript(pmandatoryscriptchainNode2, tsemicolonNode3);
        }
	nodeList.add(pbasesubscriptNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new17() /* reduce ABaseAssignment */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PBaseAssignment pbaseassignmentNode1;
        {
            // Block
        PAssignment passignmentNode2;
        TSemicolon tsemicolonNode3;
        passignmentNode2 = (PAssignment)nodeArrayList1.get(0);
        tsemicolonNode3 = (TSemicolon)nodeArrayList2.get(0);

        pbaseassignmentNode1 = new ABaseAssignment(passignmentNode2, tsemicolonNode3);
        }
	nodeList.add(pbaseassignmentNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new18() /* reduce ASimpleSubRoutineOptions */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PSubRoutineOptions psubroutineoptionsNode1;
        {
            // Block
        PBaseSubExpr pbasesubexprNode2;
        pbasesubexprNode2 = (PBaseSubExpr)nodeArrayList1.get(0);

        psubroutineoptionsNode1 = new ASimpleSubRoutineOptions(pbasesubexprNode2);
        }
	nodeList.add(psubroutineoptionsNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new19() /* reduce AChainSubRoutineOptions */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PSubRoutineOptions psubroutineoptionsNode1;
        {
            // Block
        PBaseSubScript pbasesubscriptNode2;
        pbasesubscriptNode2 = (PBaseSubScript)nodeArrayList1.get(0);

        psubroutineoptionsNode1 = new AChainSubRoutineOptions(pbasesubscriptNode2);
        }
	nodeList.add(psubroutineoptionsNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new20() /* reduce AAssignmentSubRoutineOptions */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PSubRoutineOptions psubroutineoptionsNode1;
        {
            // Block
        PBaseAssignment pbaseassignmentNode2;
        pbaseassignmentNode2 = (PBaseAssignment)nodeArrayList1.get(0);

        psubroutineoptionsNode1 = new AAssignmentSubRoutineOptions(pbaseassignmentNode2);
        }
	nodeList.add(psubroutineoptionsNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new21() /* reduce ASubRoutine */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PSubRoutine psubroutineNode1;
        {
            // Block
        LinkedList listNode3 = new LinkedList();
        {
            // Block
        LinkedList listNode2 = new LinkedList();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }

        psubroutineNode1 = new ASubRoutine(listNode3);
        }
	nodeList.add(psubroutineNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new22() /* reduce ANormalMasterExpr */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PMasterExpr pmasterexprNode1;
        {
            // Block
        PExpr pexprNode2;
        pexprNode2 = (PExpr)nodeArrayList1.get(0);

        pmasterexprNode1 = new ANormalMasterExpr(pexprNode2);
        }
	nodeList.add(pmasterexprNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new23() /* reduce AComparisonMasterExpr */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PMasterExpr pmasterexprNode1;
        {
            // Block
        PComparisonExpr pcomparisonexprNode2;
        pcomparisonexprNode2 = (PComparisonExpr)nodeArrayList1.get(0);

        pmasterexprNode1 = new AComparisonMasterExpr(pcomparisonexprNode2);
        }
	nodeList.add(pmasterexprNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new24() /* reduce ABaseExprExpr */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExpr pexprNode1;
        {
            // Block
        PBaseExpr pbaseexprNode2;
        pbaseexprNode2 = (PBaseExpr)nodeArrayList1.get(0);

        pexprNode1 = new ABaseExprExpr(pbaseexprNode2);
        }
	nodeList.add(pexprNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new25() /* reduce AEmbeddedRoutineExpr */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExpr pexprNode1;
        {
            // Block
        TLPar tlparNode2;
        PSubRoutine psubroutineNode3;
        TRPar trparNode4;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        psubroutineNode3 = (PSubRoutine)nodeArrayList2.get(0);
        trparNode4 = (TRPar)nodeArrayList3.get(0);

        pexprNode1 = new AEmbeddedRoutineExpr(tlparNode2, psubroutineNode3, trparNode4);
        }
	nodeList.add(pexprNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new26() /* reduce AEmbeddedAssignmentExpr */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExpr pexprNode1;
        {
            // Block
        TLPar tlparNode2;
        PAssignment passignmentNode3;
        TRPar trparNode4;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        passignmentNode3 = (PAssignment)nodeArrayList2.get(0);
        trparNode4 = (TRPar)nodeArrayList3.get(0);

        pexprNode1 = new AEmbeddedAssignmentExpr(tlparNode2, passignmentNode3, trparNode4);
        }
	nodeList.add(pexprNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new27() /* reduce AHelpExpr */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExpr pexprNode1;
        {
            // Block
        TId tidNode2;
        THelpToken thelptokenNode3;
        tidNode2 = (TId)nodeArrayList1.get(0);
        thelptokenNode3 = (THelpToken)nodeArrayList2.get(0);

        pexprNode1 = new AHelpExpr(tidNode2, thelptokenNode3);
        }
	nodeList.add(pexprNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new28() /* reduce ACommentExpr */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExpr pexprNode1;
        {
            // Block
        TComment tcommentNode2;
        tcommentNode2 = (TComment)nodeArrayList1.get(0);

        pexprNode1 = new ACommentExpr(tcommentNode2);
        }
	nodeList.add(pexprNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new29() /* reduce AExprComponentBaseExpr */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PBaseExpr pbaseexprNode1;
        {
            // Block
        PExprComponent pexprcomponentNode2;
        pexprcomponentNode2 = (PExprComponent)nodeArrayList1.get(0);

        pbaseexprNode1 = new AExprComponentBaseExpr(pexprcomponentNode2);
        }
	nodeList.add(pbaseexprNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new30() /* reduce APlusBaseExpr */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PBaseExpr pbaseexprNode1;
        {
            // Block
        PExprComponent pexprcomponentNode2;
        TPlus tplusNode3;
        PBaseExpr pbaseexprNode4;
        pexprcomponentNode2 = (PExprComponent)nodeArrayList1.get(0);
        tplusNode3 = (TPlus)nodeArrayList2.get(0);
        pbaseexprNode4 = (PBaseExpr)nodeArrayList3.get(0);

        pbaseexprNode1 = new APlusBaseExpr(pexprcomponentNode2, tplusNode3, pbaseexprNode4);
        }
	nodeList.add(pbaseexprNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new31() /* reduce AMinusBaseExpr */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PBaseExpr pbaseexprNode1;
        {
            // Block
        PExprComponent pexprcomponentNode2;
        TMinus tminusNode3;
        PBaseExpr pbaseexprNode4;
        pexprcomponentNode2 = (PExprComponent)nodeArrayList1.get(0);
        tminusNode3 = (TMinus)nodeArrayList2.get(0);
        pbaseexprNode4 = (PBaseExpr)nodeArrayList3.get(0);

        pbaseexprNode1 = new AMinusBaseExpr(pexprcomponentNode2, tminusNode3, pbaseexprNode4);
        }
	nodeList.add(pbaseexprNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new32() /* reduce AMultBaseExpr */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PBaseExpr pbaseexprNode1;
        {
            // Block
        PExprComponent pexprcomponentNode2;
        TMult tmultNode3;
        PBaseExpr pbaseexprNode4;
        pexprcomponentNode2 = (PExprComponent)nodeArrayList1.get(0);
        tmultNode3 = (TMult)nodeArrayList2.get(0);
        pbaseexprNode4 = (PBaseExpr)nodeArrayList3.get(0);

        pbaseexprNode1 = new AMultBaseExpr(pexprcomponentNode2, tmultNode3, pbaseexprNode4);
        }
	nodeList.add(pbaseexprNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new33() /* reduce ADivBaseExpr */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PBaseExpr pbaseexprNode1;
        {
            // Block
        PExprComponent pexprcomponentNode2;
        TDiv tdivNode3;
        PBaseExpr pbaseexprNode4;
        pexprcomponentNode2 = (PExprComponent)nodeArrayList1.get(0);
        tdivNode3 = (TDiv)nodeArrayList2.get(0);
        pbaseexprNode4 = (PBaseExpr)nodeArrayList3.get(0);

        pbaseexprNode1 = new ADivBaseExpr(pexprcomponentNode2, tdivNode3, pbaseexprNode4);
        }
	nodeList.add(pbaseexprNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new34() /* reduce AModBaseExpr */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PBaseExpr pbaseexprNode1;
        {
            // Block
        PExprComponent pexprcomponentNode2;
        TMod tmodNode3;
        PBaseExpr pbaseexprNode4;
        pexprcomponentNode2 = (PExprComponent)nodeArrayList1.get(0);
        tmodNode3 = (TMod)nodeArrayList2.get(0);
        pbaseexprNode4 = (PBaseExpr)nodeArrayList3.get(0);

        pbaseexprNode1 = new AModBaseExpr(pexprcomponentNode2, tmodNode3, pbaseexprNode4);
        }
	nodeList.add(pbaseexprNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new35() /* reduce ATermExprComponent */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExprComponent pexprcomponentNode1;
        {
            // Block
        PTerm ptermNode2;
        ptermNode2 = (PTerm)nodeArrayList1.get(0);

        pexprcomponentNode1 = new ATermExprComponent(ptermNode2);
        }
	nodeList.add(pexprcomponentNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new36() /* reduce APowerExprComponent */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExprComponent pexprcomponentNode1;
        {
            // Block
        PPower ppowerNode2;
        ppowerNode2 = (PPower)nodeArrayList1.get(0);

        pexprcomponentNode1 = new APowerExprComponent(ppowerNode2);
        }
	nodeList.add(pexprcomponentNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new37() /* reduce AEmbeddedScriptchainExprComponent */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExprComponent pexprcomponentNode1;
        {
            // Block
        TLPar tlparNode2;
        PMandatoryScriptchain pmandatoryscriptchainNode3;
        TRPar trparNode4;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        pmandatoryscriptchainNode3 = (PMandatoryScriptchain)nodeArrayList2.get(0);
        trparNode4 = (TRPar)nodeArrayList3.get(0);

        pexprcomponentNode1 = new AEmbeddedScriptchainExprComponent(tlparNode2, pmandatoryscriptchainNode3, trparNode4);
        }
	nodeList.add(pexprcomponentNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new38() /* reduce APower */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PPower ppowerNode1;
        {
            // Block
        PExprComponent pexprcomponentNode2;
        TPow tpowNode3;
        PTerm ptermNode4;
        pexprcomponentNode2 = (PExprComponent)nodeArrayList1.get(0);
        tpowNode3 = (TPow)nodeArrayList2.get(0);
        ptermNode4 = (PTerm)nodeArrayList3.get(0);

        ppowerNode1 = new APower(pexprcomponentNode2, tpowNode3, ptermNode4);
        }
	nodeList.add(ppowerNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new39() /* reduce ARegTermTerm */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PTerm ptermNode1;
        {
            // Block
        PRegTerm pregtermNode2;
        pregtermNode2 = (PRegTerm)nodeArrayList1.get(0);

        ptermNode1 = new ARegTermTerm(pregtermNode2);
        }
	nodeList.add(ptermNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new40() /* reduce ANegTermTerm */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PTerm ptermNode1;
        {
            // Block
        PNegTerm pnegtermNode2;
        pnegtermNode2 = (PNegTerm)nodeArrayList1.get(0);

        ptermNode1 = new ANegTermTerm(pnegtermNode2);
        }
	nodeList.add(ptermNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new41() /* reduce APosTermTerm */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PTerm ptermNode1;
        {
            // Block
        PPosTerm ppostermNode2;
        ppostermNode2 = (PPosTerm)nodeArrayList1.get(0);

        ptermNode1 = new APosTermTerm(ppostermNode2);
        }
	nodeList.add(ptermNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new42() /* reduce ANegTerm */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PNegTerm pnegtermNode1;
        {
            // Block
        TMinus tminusNode2;
        PTerm ptermNode3;
        tminusNode2 = (TMinus)nodeArrayList1.get(0);
        ptermNode3 = (PTerm)nodeArrayList2.get(0);

        pnegtermNode1 = new ANegTerm(tminusNode2, ptermNode3);
        }
	nodeList.add(pnegtermNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new43() /* reduce APosTerm */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PPosTerm ppostermNode1;
        {
            // Block
        TPlus tplusNode2;
        PTerm ptermNode3;
        tplusNode2 = (TPlus)nodeArrayList1.get(0);
        ptermNode3 = (PTerm)nodeArrayList2.get(0);

        ppostermNode1 = new APosTerm(tplusNode2, ptermNode3);
        }
	nodeList.add(ppostermNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new44() /* reduce AScalarRegTerm */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PRegTerm pregtermNode1;
        {
            // Block
        PScalar pscalarNode2;
        pscalarNode2 = (PScalar)nodeArrayList1.get(0);

        pregtermNode1 = new AScalarRegTerm(pscalarNode2);
        }
	nodeList.add(pregtermNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new45() /* reduce AMapRegTerm */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PRegTerm pregtermNode1;
        {
            // Block
        PMap pmapNode2;
        pmapNode2 = (PMap)nodeArrayList1.get(0);

        pregtermNode1 = new AMapRegTerm(pmapNode2);
        }
	nodeList.add(pregtermNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new46() /* reduce AFormulaRegTerm */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PRegTerm pregtermNode1;
        {
            // Block
        PFormula pformulaNode2;
        pformulaNode2 = (PFormula)nodeArrayList1.get(0);

        pregtermNode1 = new AFormulaRegTerm(pformulaNode2);
        }
	nodeList.add(pregtermNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new47() /* reduce AOperationRegTerm */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PRegTerm pregtermNode1;
        {
            // Block
        POperation poperationNode2;
        poperationNode2 = (POperation)nodeArrayList1.get(0);

        pregtermNode1 = new AOperationRegTerm(poperationNode2);
        }
	nodeList.add(pregtermNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new48() /* reduce ARefRegTerm */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PRegTerm pregtermNode1;
        {
            // Block
        PRcol prcolNode2;
        prcolNode2 = (PRcol)nodeArrayList1.get(0);

        pregtermNode1 = new ARefRegTerm(prcolNode2);
        }
	nodeList.add(pregtermNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new49() /* reduce ADotcolRegTerm */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PRegTerm pregtermNode1;
        {
            // Block
        PDotcol pdotcolNode2;
        pdotcolNode2 = (PDotcol)nodeArrayList1.get(0);

        pregtermNode1 = new ADotcolRegTerm(pdotcolNode2);
        }
	nodeList.add(pregtermNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new50() /* reduce AJavaOpRegTerm */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PRegTerm pregtermNode1;
        {
            // Block
        PJavaOp pjavaopNode2;
        pjavaopNode2 = (PJavaOp)nodeArrayList1.get(0);

        pregtermNode1 = new AJavaOpRegTerm(pjavaopNode2);
        }
	nodeList.add(pregtermNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new51() /* reduce AListRegTerm */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PRegTerm pregtermNode1;
        {
            // Block
        PList plistNode2;
        plistNode2 = (PList)nodeArrayList1.get(0);

        pregtermNode1 = new AListRegTerm(plistNode2);
        }
	nodeList.add(pregtermNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new52() /* reduce ACsvRegTerm */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PRegTerm pregtermNode1;
        {
            // Block
        PGenRow pgenrowNode2;
        pgenrowNode2 = (PGenRow)nodeArrayList1.get(0);

        pregtermNode1 = new ACsvRegTerm(pgenrowNode2);
        }
	nodeList.add(pregtermNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new53() /* reduce AFormula */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PFormula pformulaNode1;
        {
            // Block
        TLPar tlparNode2;
        PExpr pexprNode3;
        TRPar trparNode4;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        pexprNode3 = (PExpr)nodeArrayList2.get(0);
        trparNode4 = (TRPar)nodeArrayList3.get(0);

        pformulaNode1 = new AFormula(tlparNode2, pexprNode3, trparNode4);
        }
	nodeList.add(pformulaNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new54() /* reduce AEmptyList */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PList plistNode1;
        {
            // Block
        PNoValuesList pnovalueslistNode2;
        pnovalueslistNode2 = (PNoValuesList)nodeArrayList1.get(0);

        plistNode1 = new AEmptyList(pnovalueslistNode2);
        }
	nodeList.add(plistNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new55() /* reduce AFilledList */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PList plistNode1;
        {
            // Block
        PValuesList pvalueslistNode2;
        pvalueslistNode2 = (PValuesList)nodeArrayList1.get(0);

        plistNode1 = new AFilledList(pvalueslistNode2);
        }
	nodeList.add(plistNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new56() /* reduce ANoValuesList */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PNoValuesList pnovalueslistNode1;
        {
            // Block
        TLPar tlparNode2;
        TRPar trparNode3;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        trparNode3 = (TRPar)nodeArrayList2.get(0);

        pnovalueslistNode1 = new ANoValuesList(tlparNode2, trparNode3);
        }
	nodeList.add(pnovalueslistNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new57() /* reduce AValuesList */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PValuesList pvalueslistNode1;
        {
            // Block
        TLPar tlparNode2;
        PMasterExpr pmasterexprNode3;
        LinkedList listNode5 = new LinkedList();
        TRPar trparNode6;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        pmasterexprNode3 = (PMasterExpr)nodeArrayList2.get(0);
        {
            // Block
        LinkedList listNode4 = new LinkedList();
        listNode4 = (LinkedList)nodeArrayList3.get(0);
	if(listNode4 != null)
	{
	  listNode5.addAll(listNode4);
	}
        }
        trparNode6 = (TRPar)nodeArrayList4.get(0);

        pvalueslistNode1 = new AValuesList(tlparNode2, pmasterexprNode3, listNode5, trparNode6);
        }
	nodeList.add(pvalueslistNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new58() /* reduce AOtherExpr */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        POtherExpr potherexprNode1;
        {
            // Block
        TComma tcommaNode2;
        PMasterExpr pmasterexprNode3;
        tcommaNode2 = (TComma)nodeArrayList1.get(0);
        pmasterexprNode3 = (PMasterExpr)nodeArrayList2.get(0);

        potherexprNode1 = new AOtherExpr(tcommaNode2, pmasterexprNode3);
        }
	nodeList.add(potherexprNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new59() /* reduce AAoperation1Operation */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        POperation poperationNode1;
        {
            // Block
        TId tidNode2;
        TLPar tlparNode3;
        @SuppressWarnings("unused") Object nullNode4 = null;
        LinkedList listNode5 = new LinkedList();
        TRPar trparNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        tidNode2 = (TId)nodeArrayList1.get(0);
        tlparNode3 = (TLPar)nodeArrayList2.get(0);
        {
            // Block
        }
        trparNode6 = (TRPar)nodeArrayList3.get(0);

        poperationNode1 = new AOperation(tidNode2, tlparNode3, null, listNode5, trparNode6, null);
        }
	nodeList.add(poperationNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new60() /* reduce AAoperation2Operation */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        POperation poperationNode1;
        {
            // Block
        TId tidNode2;
        TLPar tlparNode3;
        POpInput popinputNode4;
        LinkedList listNode5 = new LinkedList();
        TRPar trparNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        tidNode2 = (TId)nodeArrayList1.get(0);
        tlparNode3 = (TLPar)nodeArrayList2.get(0);
        popinputNode4 = (POpInput)nodeArrayList3.get(0);
        {
            // Block
        }
        trparNode6 = (TRPar)nodeArrayList4.get(0);

        poperationNode1 = new AOperation(tidNode2, tlparNode3, popinputNode4, listNode5, trparNode6, null);
        }
	nodeList.add(poperationNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new61() /* reduce AAoperation3Operation */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        POperation poperationNode1;
        {
            // Block
        TId tidNode2;
        TLPar tlparNode3;
        @SuppressWarnings("unused") Object nullNode4 = null;
        LinkedList listNode6 = new LinkedList();
        TRPar trparNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        tidNode2 = (TId)nodeArrayList1.get(0);
        tlparNode3 = (TLPar)nodeArrayList2.get(0);
        {
            // Block
        LinkedList listNode5 = new LinkedList();
        listNode5 = (LinkedList)nodeArrayList3.get(0);
	if(listNode5 != null)
	{
	  listNode6.addAll(listNode5);
	}
        }
        trparNode7 = (TRPar)nodeArrayList4.get(0);

        poperationNode1 = new AOperation(tidNode2, tlparNode3, null, listNode6, trparNode7, null);
        }
	nodeList.add(poperationNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new62() /* reduce AAoperation4Operation */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        POperation poperationNode1;
        {
            // Block
        TId tidNode2;
        TLPar tlparNode3;
        POpInput popinputNode4;
        LinkedList listNode6 = new LinkedList();
        TRPar trparNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        tidNode2 = (TId)nodeArrayList1.get(0);
        tlparNode3 = (TLPar)nodeArrayList2.get(0);
        popinputNode4 = (POpInput)nodeArrayList3.get(0);
        {
            // Block
        LinkedList listNode5 = new LinkedList();
        listNode5 = (LinkedList)nodeArrayList4.get(0);
	if(listNode5 != null)
	{
	  listNode6.addAll(listNode5);
	}
        }
        trparNode7 = (TRPar)nodeArrayList5.get(0);

        poperationNode1 = new AOperation(tidNode2, tlparNode3, popinputNode4, listNode6, trparNode7, null);
        }
	nodeList.add(poperationNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new63() /* reduce AAoperation5Operation */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        POperation poperationNode1;
        {
            // Block
        TId tidNode2;
        TLPar tlparNode3;
        @SuppressWarnings("unused") Object nullNode4 = null;
        LinkedList listNode5 = new LinkedList();
        TRPar trparNode6;
        PAsop pasopNode7;
        tidNode2 = (TId)nodeArrayList1.get(0);
        tlparNode3 = (TLPar)nodeArrayList2.get(0);
        {
            // Block
        }
        trparNode6 = (TRPar)nodeArrayList3.get(0);
        pasopNode7 = (PAsop)nodeArrayList4.get(0);

        poperationNode1 = new AOperation(tidNode2, tlparNode3, null, listNode5, trparNode6, pasopNode7);
        }
	nodeList.add(poperationNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new64() /* reduce AAoperation6Operation */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        POperation poperationNode1;
        {
            // Block
        TId tidNode2;
        TLPar tlparNode3;
        POpInput popinputNode4;
        LinkedList listNode5 = new LinkedList();
        TRPar trparNode6;
        PAsop pasopNode7;
        tidNode2 = (TId)nodeArrayList1.get(0);
        tlparNode3 = (TLPar)nodeArrayList2.get(0);
        popinputNode4 = (POpInput)nodeArrayList3.get(0);
        {
            // Block
        }
        trparNode6 = (TRPar)nodeArrayList4.get(0);
        pasopNode7 = (PAsop)nodeArrayList5.get(0);

        poperationNode1 = new AOperation(tidNode2, tlparNode3, popinputNode4, listNode5, trparNode6, pasopNode7);
        }
	nodeList.add(poperationNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new65() /* reduce AAoperation7Operation */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        POperation poperationNode1;
        {
            // Block
        TId tidNode2;
        TLPar tlparNode3;
        @SuppressWarnings("unused") Object nullNode4 = null;
        LinkedList listNode6 = new LinkedList();
        TRPar trparNode7;
        PAsop pasopNode8;
        tidNode2 = (TId)nodeArrayList1.get(0);
        tlparNode3 = (TLPar)nodeArrayList2.get(0);
        {
            // Block
        LinkedList listNode5 = new LinkedList();
        listNode5 = (LinkedList)nodeArrayList3.get(0);
	if(listNode5 != null)
	{
	  listNode6.addAll(listNode5);
	}
        }
        trparNode7 = (TRPar)nodeArrayList4.get(0);
        pasopNode8 = (PAsop)nodeArrayList5.get(0);

        poperationNode1 = new AOperation(tidNode2, tlparNode3, null, listNode6, trparNode7, pasopNode8);
        }
	nodeList.add(poperationNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new66() /* reduce AAoperation8Operation */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        POperation poperationNode1;
        {
            // Block
        TId tidNode2;
        TLPar tlparNode3;
        POpInput popinputNode4;
        LinkedList listNode6 = new LinkedList();
        TRPar trparNode7;
        PAsop pasopNode8;
        tidNode2 = (TId)nodeArrayList1.get(0);
        tlparNode3 = (TLPar)nodeArrayList2.get(0);
        popinputNode4 = (POpInput)nodeArrayList3.get(0);
        {
            // Block
        LinkedList listNode5 = new LinkedList();
        listNode5 = (LinkedList)nodeArrayList4.get(0);
	if(listNode5 != null)
	{
	  listNode6.addAll(listNode5);
	}
        }
        trparNode7 = (TRPar)nodeArrayList5.get(0);
        pasopNode8 = (PAsop)nodeArrayList6.get(0);

        poperationNode1 = new AOperation(tidNode2, tlparNode3, popinputNode4, listNode6, trparNode7, pasopNode8);
        }
	nodeList.add(poperationNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new67() /* reduce ANounOpInput */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        POpInput popinputNode1;
        {
            // Block
        PNoun pnounNode2;
        pnounNode2 = (PNoun)nodeArrayList1.get(0);

        popinputNode1 = new ANounOpInput(pnounNode2);
        }
	nodeList.add(popinputNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new68() /* reduce AInput$Expr1OpInput */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        POpInput popinputNode1;
        {
            // Block
        PColDef pcoldefNode2;
        {
            // Block
        PMasterExpr pmasterexprNode3;
        pmasterexprNode3 = (PMasterExpr)nodeArrayList1.get(0);

        pcoldefNode2 = new AExprColDef(pmasterexprNode3);
        }

        popinputNode1 = new AInputOpInput(pcoldefNode2);
        }
	nodeList.add(popinputNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new69() /* reduce AInput$Prop1OpInput */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        POpInput popinputNode1;
        {
            // Block
        PColDef pcoldefNode2;
        {
            // Block
        PProp ppropNode3;
        ppropNode3 = (PProp)nodeArrayList1.get(0);

        pcoldefNode2 = new APropColDef(ppropNode3);
        }

        popinputNode1 = new AInputOpInput(pcoldefNode2);
        }
	nodeList.add(popinputNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new70() /* reduce AInput$Relation1OpInput */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        POpInput popinputNode1;
        {
            // Block
        PColDef pcoldefNode2;
        {
            // Block
        PRelationship prelationshipNode3;
        prelationshipNode3 = (PRelationship)nodeArrayList1.get(0);

        pcoldefNode2 = new ARelationColDef(prelationshipNode3);
        }

        popinputNode1 = new AInputOpInput(pcoldefNode2);
        }
	nodeList.add(popinputNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new71() /* reduce AOtherOpInput */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        POtherOpInput potheropinputNode1;
        {
            // Block
        TComma tcommaNode2;
        POpInput popinputNode3;
        tcommaNode2 = (TComma)nodeArrayList1.get(0);
        popinputNode3 = (POpInput)nodeArrayList2.get(0);

        potheropinputNode1 = new AOtherOpInput(tcommaNode2, popinputNode3);
        }
	nodeList.add(potheropinputNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new72() /* reduce AAgenrow1GenRow */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PGenRow pgenrowNode1;
        {
            // Block
        TLBrac tlbracNode2;
        @SuppressWarnings("unused") Object nullNode3 = null;
        LinkedList listNode4 = new LinkedList();
        TRBrac trbracNode5;
        tlbracNode2 = (TLBrac)nodeArrayList1.get(0);
        {
            // Block
        }
        trbracNode5 = (TRBrac)nodeArrayList2.get(0);

        pgenrowNode1 = new AGenRow(tlbracNode2, null, listNode4, trbracNode5);
        }
	nodeList.add(pgenrowNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new73() /* reduce AAgenrow2$Expr1GenRow */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PGenRow pgenrowNode1;
        {
            // Block
        TLBrac tlbracNode2;
        PColDef pcoldefNode3;
        LinkedList listNode5 = new LinkedList();
        TRBrac trbracNode6;
        tlbracNode2 = (TLBrac)nodeArrayList1.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode4;
        pmasterexprNode4 = (PMasterExpr)nodeArrayList2.get(0);

        pcoldefNode3 = new AExprColDef(pmasterexprNode4);
        }
        {
            // Block
        }
        trbracNode6 = (TRBrac)nodeArrayList3.get(0);

        pgenrowNode1 = new AGenRow(tlbracNode2, pcoldefNode3, listNode5, trbracNode6);
        }
	nodeList.add(pgenrowNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new74() /* reduce AAgenrow2$Prop1GenRow */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PGenRow pgenrowNode1;
        {
            // Block
        TLBrac tlbracNode2;
        PColDef pcoldefNode3;
        LinkedList listNode5 = new LinkedList();
        TRBrac trbracNode6;
        tlbracNode2 = (TLBrac)nodeArrayList1.get(0);
        {
            // Block
        PProp ppropNode4;
        ppropNode4 = (PProp)nodeArrayList2.get(0);

        pcoldefNode3 = new APropColDef(ppropNode4);
        }
        {
            // Block
        }
        trbracNode6 = (TRBrac)nodeArrayList3.get(0);

        pgenrowNode1 = new AGenRow(tlbracNode2, pcoldefNode3, listNode5, trbracNode6);
        }
	nodeList.add(pgenrowNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new75() /* reduce AAgenrow2$Relation1GenRow */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PGenRow pgenrowNode1;
        {
            // Block
        TLBrac tlbracNode2;
        PColDef pcoldefNode3;
        LinkedList listNode5 = new LinkedList();
        TRBrac trbracNode6;
        tlbracNode2 = (TLBrac)nodeArrayList1.get(0);
        {
            // Block
        PRelationship prelationshipNode4;
        prelationshipNode4 = (PRelationship)nodeArrayList2.get(0);

        pcoldefNode3 = new ARelationColDef(prelationshipNode4);
        }
        {
            // Block
        }
        trbracNode6 = (TRBrac)nodeArrayList3.get(0);

        pgenrowNode1 = new AGenRow(tlbracNode2, pcoldefNode3, listNode5, trbracNode6);
        }
	nodeList.add(pgenrowNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new76() /* reduce AAgenrow3GenRow */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PGenRow pgenrowNode1;
        {
            // Block
        TLBrac tlbracNode2;
        @SuppressWarnings("unused") Object nullNode3 = null;
        LinkedList listNode5 = new LinkedList();
        TRBrac trbracNode6;
        tlbracNode2 = (TLBrac)nodeArrayList1.get(0);
        {
            // Block
        LinkedList listNode4 = new LinkedList();
        listNode4 = (LinkedList)nodeArrayList2.get(0);
	if(listNode4 != null)
	{
	  listNode5.addAll(listNode4);
	}
        }
        trbracNode6 = (TRBrac)nodeArrayList3.get(0);

        pgenrowNode1 = new AGenRow(tlbracNode2, null, listNode5, trbracNode6);
        }
	nodeList.add(pgenrowNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new77() /* reduce AAgenrow4$Expr1GenRow */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PGenRow pgenrowNode1;
        {
            // Block
        TLBrac tlbracNode2;
        PColDef pcoldefNode3;
        LinkedList listNode6 = new LinkedList();
        TRBrac trbracNode7;
        tlbracNode2 = (TLBrac)nodeArrayList1.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode4;
        pmasterexprNode4 = (PMasterExpr)nodeArrayList2.get(0);

        pcoldefNode3 = new AExprColDef(pmasterexprNode4);
        }
        {
            // Block
        LinkedList listNode5 = new LinkedList();
        listNode5 = (LinkedList)nodeArrayList3.get(0);
	if(listNode5 != null)
	{
	  listNode6.addAll(listNode5);
	}
        }
        trbracNode7 = (TRBrac)nodeArrayList4.get(0);

        pgenrowNode1 = new AGenRow(tlbracNode2, pcoldefNode3, listNode6, trbracNode7);
        }
	nodeList.add(pgenrowNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new78() /* reduce AAgenrow4$Prop1GenRow */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PGenRow pgenrowNode1;
        {
            // Block
        TLBrac tlbracNode2;
        PColDef pcoldefNode3;
        LinkedList listNode6 = new LinkedList();
        TRBrac trbracNode7;
        tlbracNode2 = (TLBrac)nodeArrayList1.get(0);
        {
            // Block
        PProp ppropNode4;
        ppropNode4 = (PProp)nodeArrayList2.get(0);

        pcoldefNode3 = new APropColDef(ppropNode4);
        }
        {
            // Block
        LinkedList listNode5 = new LinkedList();
        listNode5 = (LinkedList)nodeArrayList3.get(0);
	if(listNode5 != null)
	{
	  listNode6.addAll(listNode5);
	}
        }
        trbracNode7 = (TRBrac)nodeArrayList4.get(0);

        pgenrowNode1 = new AGenRow(tlbracNode2, pcoldefNode3, listNode6, trbracNode7);
        }
	nodeList.add(pgenrowNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new79() /* reduce AAgenrow4$Relation1GenRow */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PGenRow pgenrowNode1;
        {
            // Block
        TLBrac tlbracNode2;
        PColDef pcoldefNode3;
        LinkedList listNode6 = new LinkedList();
        TRBrac trbracNode7;
        tlbracNode2 = (TLBrac)nodeArrayList1.get(0);
        {
            // Block
        PRelationship prelationshipNode4;
        prelationshipNode4 = (PRelationship)nodeArrayList2.get(0);

        pcoldefNode3 = new ARelationColDef(prelationshipNode4);
        }
        {
            // Block
        LinkedList listNode5 = new LinkedList();
        listNode5 = (LinkedList)nodeArrayList3.get(0);
	if(listNode5 != null)
	{
	  listNode6.addAll(listNode5);
	}
        }
        trbracNode7 = (TRBrac)nodeArrayList4.get(0);

        pgenrowNode1 = new AGenRow(tlbracNode2, pcoldefNode3, listNode6, trbracNode7);
        }
	nodeList.add(pgenrowNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new80() /* reduce AExpr1Othercol */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        POthercol pothercolNode1;
        {
            // Block
        TComma tcommaNode2;
        PColDef pcoldefNode3;
        tcommaNode2 = (TComma)nodeArrayList1.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode4;
        pmasterexprNode4 = (PMasterExpr)nodeArrayList2.get(0);

        pcoldefNode3 = new AExprColDef(pmasterexprNode4);
        }

        pothercolNode1 = new AOthercol(tcommaNode2, pcoldefNode3);
        }
	nodeList.add(pothercolNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new81() /* reduce AProp1Othercol */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        POthercol pothercolNode1;
        {
            // Block
        TComma tcommaNode2;
        PColDef pcoldefNode3;
        tcommaNode2 = (TComma)nodeArrayList1.get(0);
        {
            // Block
        PProp ppropNode4;
        ppropNode4 = (PProp)nodeArrayList2.get(0);

        pcoldefNode3 = new APropColDef(ppropNode4);
        }

        pothercolNode1 = new AOthercol(tcommaNode2, pcoldefNode3);
        }
	nodeList.add(pothercolNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new82() /* reduce ARelation1Othercol */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        POthercol pothercolNode1;
        {
            // Block
        TComma tcommaNode2;
        PColDef pcoldefNode3;
        tcommaNode2 = (TComma)nodeArrayList1.get(0);
        {
            // Block
        PRelationship prelationshipNode4;
        prelationshipNode4 = (PRelationship)nodeArrayList2.get(0);

        pcoldefNode3 = new ARelationColDef(prelationshipNode4);
        }

        pothercolNode1 = new AOthercol(tcommaNode2, pcoldefNode3);
        }
	nodeList.add(pothercolNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new83() /* reduce ANoun */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PNoun pnounNode1;
        {
            // Block
        TId tidNode2;
        TEqual tequalNode3;
        PGenRow pgenrowNode4;
        tidNode2 = (TId)nodeArrayList1.get(0);
        tequalNode3 = (TEqual)nodeArrayList2.get(0);
        pgenrowNode4 = (PGenRow)nodeArrayList3.get(0);

        pnounNode1 = new ANoun(tidNode2, tequalNode3, pgenrowNode4);
        }
	nodeList.add(pnounNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new84() /* reduce AProp */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PProp ppropNode1;
        {
            // Block
        TId tidNode2;
        TEqual tequalNode3;
        PScalar pscalarNode4;
        tidNode2 = (TId)nodeArrayList1.get(0);
        tequalNode3 = (TEqual)nodeArrayList2.get(0);
        pscalarNode4 = (PScalar)nodeArrayList3.get(0);

        ppropNode1 = new AProp(tidNode2, tequalNode3, pscalarNode4);
        }
	nodeList.add(ppropNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new85() /* reduce AAsop */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PAsop pasopNode1;
        {
            // Block
        TAsOp tasopNode2;
        TLPar tlparNode3;
        PGenRow pgenrowNode4;
        TRPar trparNode5;
        tasopNode2 = (TAsOp)nodeArrayList1.get(0);
        tlparNode3 = (TLPar)nodeArrayList2.get(0);
        pgenrowNode4 = (PGenRow)nodeArrayList3.get(0);
        trparNode5 = (TRPar)nodeArrayList4.get(0);

        pasopNode1 = new AAsop(tasopNode2, tlparNode3, pgenrowNode4, trparNode5);
        }
	nodeList.add(pasopNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new86() /* reduce AExplicitRelationship */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PRelationship prelationshipNode1;
        {
            // Block
        PExplicitRel pexplicitrelNode2;
        pexplicitrelNode2 = (PExplicitRel)nodeArrayList1.get(0);

        prelationshipNode1 = new AExplicitRelationship(pexplicitrelNode2);
        }
	nodeList.add(prelationshipNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new87() /* reduce AExplicitComparatorRelationship */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PRelationship prelationshipNode1;
        {
            // Block
        PExplicitRelComparator pexplicitrelcomparatorNode2;
        pexplicitrelcomparatorNode2 = (PExplicitRelComparator)nodeArrayList1.get(0);

        prelationshipNode1 = new AExplicitComparatorRelationship(pexplicitrelcomparatorNode2);
        }
	nodeList.add(prelationshipNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new88() /* reduce AImplicitRelationship */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PRelationship prelationshipNode1;
        {
            // Block
        PImplicitRel pimplicitrelNode2;
        pimplicitrelNode2 = (PImplicitRel)nodeArrayList1.get(0);

        prelationshipNode1 = new AImplicitRelationship(pimplicitrelNode2);
        }
	nodeList.add(prelationshipNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new89() /* reduce AExpr1$Expr2ImplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PImplicitRel pimplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TRPar trparNode10;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode4;
        pmasterexprNode4 = (PMasterExpr)nodeArrayList2.get(0);

        pcoldefNode3 = new AExprColDef(pmasterexprNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode9;
        pmasterexprNode9 = (PMasterExpr)nodeArrayList6.get(0);

        pcoldefNode8 = new AExprColDef(pmasterexprNode9);
        }
        trparNode10 = (TRPar)nodeArrayList7.get(0);

        pimplicitrelNode1 = new AImplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, trparNode10);
        }
	nodeList.add(pimplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new90() /* reduce AExpr1$Prop2ImplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PImplicitRel pimplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TRPar trparNode10;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode4;
        pmasterexprNode4 = (PMasterExpr)nodeArrayList2.get(0);

        pcoldefNode3 = new AExprColDef(pmasterexprNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PProp ppropNode9;
        ppropNode9 = (PProp)nodeArrayList6.get(0);

        pcoldefNode8 = new APropColDef(ppropNode9);
        }
        trparNode10 = (TRPar)nodeArrayList7.get(0);

        pimplicitrelNode1 = new AImplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, trparNode10);
        }
	nodeList.add(pimplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new91() /* reduce AExpr1$Relation2ImplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PImplicitRel pimplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TRPar trparNode10;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode4;
        pmasterexprNode4 = (PMasterExpr)nodeArrayList2.get(0);

        pcoldefNode3 = new AExprColDef(pmasterexprNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PRelationship prelationshipNode9;
        prelationshipNode9 = (PRelationship)nodeArrayList6.get(0);

        pcoldefNode8 = new ARelationColDef(prelationshipNode9);
        }
        trparNode10 = (TRPar)nodeArrayList7.get(0);

        pimplicitrelNode1 = new AImplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, trparNode10);
        }
	nodeList.add(pimplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new92() /* reduce AProp1$Expr2ImplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PImplicitRel pimplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TRPar trparNode10;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PProp ppropNode4;
        ppropNode4 = (PProp)nodeArrayList2.get(0);

        pcoldefNode3 = new APropColDef(ppropNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode9;
        pmasterexprNode9 = (PMasterExpr)nodeArrayList6.get(0);

        pcoldefNode8 = new AExprColDef(pmasterexprNode9);
        }
        trparNode10 = (TRPar)nodeArrayList7.get(0);

        pimplicitrelNode1 = new AImplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, trparNode10);
        }
	nodeList.add(pimplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new93() /* reduce AProp1$Prop2ImplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PImplicitRel pimplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TRPar trparNode10;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PProp ppropNode4;
        ppropNode4 = (PProp)nodeArrayList2.get(0);

        pcoldefNode3 = new APropColDef(ppropNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PProp ppropNode9;
        ppropNode9 = (PProp)nodeArrayList6.get(0);

        pcoldefNode8 = new APropColDef(ppropNode9);
        }
        trparNode10 = (TRPar)nodeArrayList7.get(0);

        pimplicitrelNode1 = new AImplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, trparNode10);
        }
	nodeList.add(pimplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new94() /* reduce AProp1$Relation2ImplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PImplicitRel pimplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TRPar trparNode10;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PProp ppropNode4;
        ppropNode4 = (PProp)nodeArrayList2.get(0);

        pcoldefNode3 = new APropColDef(ppropNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PRelationship prelationshipNode9;
        prelationshipNode9 = (PRelationship)nodeArrayList6.get(0);

        pcoldefNode8 = new ARelationColDef(prelationshipNode9);
        }
        trparNode10 = (TRPar)nodeArrayList7.get(0);

        pimplicitrelNode1 = new AImplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, trparNode10);
        }
	nodeList.add(pimplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new95() /* reduce ARelation1$Expr2ImplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PImplicitRel pimplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TRPar trparNode10;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PRelationship prelationshipNode4;
        prelationshipNode4 = (PRelationship)nodeArrayList2.get(0);

        pcoldefNode3 = new ARelationColDef(prelationshipNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode9;
        pmasterexprNode9 = (PMasterExpr)nodeArrayList6.get(0);

        pcoldefNode8 = new AExprColDef(pmasterexprNode9);
        }
        trparNode10 = (TRPar)nodeArrayList7.get(0);

        pimplicitrelNode1 = new AImplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, trparNode10);
        }
	nodeList.add(pimplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new96() /* reduce ARelation1$Prop2ImplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PImplicitRel pimplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TRPar trparNode10;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PRelationship prelationshipNode4;
        prelationshipNode4 = (PRelationship)nodeArrayList2.get(0);

        pcoldefNode3 = new ARelationColDef(prelationshipNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PProp ppropNode9;
        ppropNode9 = (PProp)nodeArrayList6.get(0);

        pcoldefNode8 = new APropColDef(ppropNode9);
        }
        trparNode10 = (TRPar)nodeArrayList7.get(0);

        pimplicitrelNode1 = new AImplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, trparNode10);
        }
	nodeList.add(pimplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new97() /* reduce ARelation1$Relation2ImplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PImplicitRel pimplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TRPar trparNode10;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PRelationship prelationshipNode4;
        prelationshipNode4 = (PRelationship)nodeArrayList2.get(0);

        pcoldefNode3 = new ARelationColDef(prelationshipNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PRelationship prelationshipNode9;
        prelationshipNode9 = (PRelationship)nodeArrayList6.get(0);

        pcoldefNode8 = new ARelationColDef(prelationshipNode9);
        }
        trparNode10 = (TRPar)nodeArrayList7.get(0);

        pimplicitrelNode1 = new AImplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, trparNode10);
        }
	nodeList.add(pimplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new98() /* reduce AExpr1$Expr2ExplicitRelComparator */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRelComparator pexplicitrelcomparatorNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        TComparator tcomparatorNode11;
        TRPar trparNode12;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode4;
        pmasterexprNode4 = (PMasterExpr)nodeArrayList2.get(0);

        pcoldefNode3 = new AExprColDef(pmasterexprNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode9;
        pmasterexprNode9 = (PMasterExpr)nodeArrayList6.get(0);

        pcoldefNode8 = new AExprColDef(pmasterexprNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        tcomparatorNode11 = (TComparator)nodeArrayList8.get(0);
        trparNode12 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelcomparatorNode1 = new AExplicitRelComparator(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, tcomparatorNode11, trparNode12);
        }
	nodeList.add(pexplicitrelcomparatorNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new99() /* reduce AExpr1$Prop2ExplicitRelComparator */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRelComparator pexplicitrelcomparatorNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        TComparator tcomparatorNode11;
        TRPar trparNode12;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode4;
        pmasterexprNode4 = (PMasterExpr)nodeArrayList2.get(0);

        pcoldefNode3 = new AExprColDef(pmasterexprNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PProp ppropNode9;
        ppropNode9 = (PProp)nodeArrayList6.get(0);

        pcoldefNode8 = new APropColDef(ppropNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        tcomparatorNode11 = (TComparator)nodeArrayList8.get(0);
        trparNode12 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelcomparatorNode1 = new AExplicitRelComparator(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, tcomparatorNode11, trparNode12);
        }
	nodeList.add(pexplicitrelcomparatorNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new100() /* reduce AExpr1$Relation2ExplicitRelComparator */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRelComparator pexplicitrelcomparatorNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        TComparator tcomparatorNode11;
        TRPar trparNode12;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode4;
        pmasterexprNode4 = (PMasterExpr)nodeArrayList2.get(0);

        pcoldefNode3 = new AExprColDef(pmasterexprNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PRelationship prelationshipNode9;
        prelationshipNode9 = (PRelationship)nodeArrayList6.get(0);

        pcoldefNode8 = new ARelationColDef(prelationshipNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        tcomparatorNode11 = (TComparator)nodeArrayList8.get(0);
        trparNode12 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelcomparatorNode1 = new AExplicitRelComparator(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, tcomparatorNode11, trparNode12);
        }
	nodeList.add(pexplicitrelcomparatorNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new101() /* reduce AProp1$Expr2ExplicitRelComparator */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRelComparator pexplicitrelcomparatorNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        TComparator tcomparatorNode11;
        TRPar trparNode12;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PProp ppropNode4;
        ppropNode4 = (PProp)nodeArrayList2.get(0);

        pcoldefNode3 = new APropColDef(ppropNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode9;
        pmasterexprNode9 = (PMasterExpr)nodeArrayList6.get(0);

        pcoldefNode8 = new AExprColDef(pmasterexprNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        tcomparatorNode11 = (TComparator)nodeArrayList8.get(0);
        trparNode12 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelcomparatorNode1 = new AExplicitRelComparator(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, tcomparatorNode11, trparNode12);
        }
	nodeList.add(pexplicitrelcomparatorNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new102() /* reduce AProp1$Prop2ExplicitRelComparator */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRelComparator pexplicitrelcomparatorNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        TComparator tcomparatorNode11;
        TRPar trparNode12;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PProp ppropNode4;
        ppropNode4 = (PProp)nodeArrayList2.get(0);

        pcoldefNode3 = new APropColDef(ppropNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PProp ppropNode9;
        ppropNode9 = (PProp)nodeArrayList6.get(0);

        pcoldefNode8 = new APropColDef(ppropNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        tcomparatorNode11 = (TComparator)nodeArrayList8.get(0);
        trparNode12 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelcomparatorNode1 = new AExplicitRelComparator(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, tcomparatorNode11, trparNode12);
        }
	nodeList.add(pexplicitrelcomparatorNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new103() /* reduce AProp1$Relation2ExplicitRelComparator */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRelComparator pexplicitrelcomparatorNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        TComparator tcomparatorNode11;
        TRPar trparNode12;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PProp ppropNode4;
        ppropNode4 = (PProp)nodeArrayList2.get(0);

        pcoldefNode3 = new APropColDef(ppropNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PRelationship prelationshipNode9;
        prelationshipNode9 = (PRelationship)nodeArrayList6.get(0);

        pcoldefNode8 = new ARelationColDef(prelationshipNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        tcomparatorNode11 = (TComparator)nodeArrayList8.get(0);
        trparNode12 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelcomparatorNode1 = new AExplicitRelComparator(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, tcomparatorNode11, trparNode12);
        }
	nodeList.add(pexplicitrelcomparatorNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new104() /* reduce ARelation1$Expr2ExplicitRelComparator */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRelComparator pexplicitrelcomparatorNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        TComparator tcomparatorNode11;
        TRPar trparNode12;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PRelationship prelationshipNode4;
        prelationshipNode4 = (PRelationship)nodeArrayList2.get(0);

        pcoldefNode3 = new ARelationColDef(prelationshipNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode9;
        pmasterexprNode9 = (PMasterExpr)nodeArrayList6.get(0);

        pcoldefNode8 = new AExprColDef(pmasterexprNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        tcomparatorNode11 = (TComparator)nodeArrayList8.get(0);
        trparNode12 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelcomparatorNode1 = new AExplicitRelComparator(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, tcomparatorNode11, trparNode12);
        }
	nodeList.add(pexplicitrelcomparatorNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new105() /* reduce ARelation1$Prop2ExplicitRelComparator */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRelComparator pexplicitrelcomparatorNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        TComparator tcomparatorNode11;
        TRPar trparNode12;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PRelationship prelationshipNode4;
        prelationshipNode4 = (PRelationship)nodeArrayList2.get(0);

        pcoldefNode3 = new ARelationColDef(prelationshipNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PProp ppropNode9;
        ppropNode9 = (PProp)nodeArrayList6.get(0);

        pcoldefNode8 = new APropColDef(ppropNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        tcomparatorNode11 = (TComparator)nodeArrayList8.get(0);
        trparNode12 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelcomparatorNode1 = new AExplicitRelComparator(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, tcomparatorNode11, trparNode12);
        }
	nodeList.add(pexplicitrelcomparatorNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new106() /* reduce ARelation1$Relation2ExplicitRelComparator */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRelComparator pexplicitrelcomparatorNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        TComparator tcomparatorNode11;
        TRPar trparNode12;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PRelationship prelationshipNode4;
        prelationshipNode4 = (PRelationship)nodeArrayList2.get(0);

        pcoldefNode3 = new ARelationColDef(prelationshipNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PRelationship prelationshipNode9;
        prelationshipNode9 = (PRelationship)nodeArrayList6.get(0);

        pcoldefNode8 = new ARelationColDef(prelationshipNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        tcomparatorNode11 = (TComparator)nodeArrayList8.get(0);
        trparNode12 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelcomparatorNode1 = new AExplicitRelComparator(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, tcomparatorNode11, trparNode12);
        }
	nodeList.add(pexplicitrelcomparatorNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new107() /* reduce AExpr1$Expr2$Expr3ExplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRel pexplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        PColDef pcoldefNode11;
        TRPar trparNode13;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode4;
        pmasterexprNode4 = (PMasterExpr)nodeArrayList2.get(0);

        pcoldefNode3 = new AExprColDef(pmasterexprNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode9;
        pmasterexprNode9 = (PMasterExpr)nodeArrayList6.get(0);

        pcoldefNode8 = new AExprColDef(pmasterexprNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode12;
        pmasterexprNode12 = (PMasterExpr)nodeArrayList8.get(0);

        pcoldefNode11 = new AExprColDef(pmasterexprNode12);
        }
        trparNode13 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelNode1 = new AExplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, pcoldefNode11, trparNode13);
        }
	nodeList.add(pexplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new108() /* reduce AExpr1$Expr2$Prop3ExplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRel pexplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        PColDef pcoldefNode11;
        TRPar trparNode13;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode4;
        pmasterexprNode4 = (PMasterExpr)nodeArrayList2.get(0);

        pcoldefNode3 = new AExprColDef(pmasterexprNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode9;
        pmasterexprNode9 = (PMasterExpr)nodeArrayList6.get(0);

        pcoldefNode8 = new AExprColDef(pmasterexprNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        {
            // Block
        PProp ppropNode12;
        ppropNode12 = (PProp)nodeArrayList8.get(0);

        pcoldefNode11 = new APropColDef(ppropNode12);
        }
        trparNode13 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelNode1 = new AExplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, pcoldefNode11, trparNode13);
        }
	nodeList.add(pexplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new109() /* reduce AExpr1$Expr2$Relation3ExplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRel pexplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        PColDef pcoldefNode11;
        TRPar trparNode13;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode4;
        pmasterexprNode4 = (PMasterExpr)nodeArrayList2.get(0);

        pcoldefNode3 = new AExprColDef(pmasterexprNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode9;
        pmasterexprNode9 = (PMasterExpr)nodeArrayList6.get(0);

        pcoldefNode8 = new AExprColDef(pmasterexprNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        {
            // Block
        PRelationship prelationshipNode12;
        prelationshipNode12 = (PRelationship)nodeArrayList8.get(0);

        pcoldefNode11 = new ARelationColDef(prelationshipNode12);
        }
        trparNode13 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelNode1 = new AExplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, pcoldefNode11, trparNode13);
        }
	nodeList.add(pexplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new110() /* reduce AExpr1$Prop2$Expr3ExplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRel pexplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        PColDef pcoldefNode11;
        TRPar trparNode13;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode4;
        pmasterexprNode4 = (PMasterExpr)nodeArrayList2.get(0);

        pcoldefNode3 = new AExprColDef(pmasterexprNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PProp ppropNode9;
        ppropNode9 = (PProp)nodeArrayList6.get(0);

        pcoldefNode8 = new APropColDef(ppropNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode12;
        pmasterexprNode12 = (PMasterExpr)nodeArrayList8.get(0);

        pcoldefNode11 = new AExprColDef(pmasterexprNode12);
        }
        trparNode13 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelNode1 = new AExplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, pcoldefNode11, trparNode13);
        }
	nodeList.add(pexplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new111() /* reduce AExpr1$Prop2$Prop3ExplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRel pexplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        PColDef pcoldefNode11;
        TRPar trparNode13;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode4;
        pmasterexprNode4 = (PMasterExpr)nodeArrayList2.get(0);

        pcoldefNode3 = new AExprColDef(pmasterexprNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PProp ppropNode9;
        ppropNode9 = (PProp)nodeArrayList6.get(0);

        pcoldefNode8 = new APropColDef(ppropNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        {
            // Block
        PProp ppropNode12;
        ppropNode12 = (PProp)nodeArrayList8.get(0);

        pcoldefNode11 = new APropColDef(ppropNode12);
        }
        trparNode13 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelNode1 = new AExplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, pcoldefNode11, trparNode13);
        }
	nodeList.add(pexplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new112() /* reduce AExpr1$Prop2$Relation3ExplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRel pexplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        PColDef pcoldefNode11;
        TRPar trparNode13;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode4;
        pmasterexprNode4 = (PMasterExpr)nodeArrayList2.get(0);

        pcoldefNode3 = new AExprColDef(pmasterexprNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PProp ppropNode9;
        ppropNode9 = (PProp)nodeArrayList6.get(0);

        pcoldefNode8 = new APropColDef(ppropNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        {
            // Block
        PRelationship prelationshipNode12;
        prelationshipNode12 = (PRelationship)nodeArrayList8.get(0);

        pcoldefNode11 = new ARelationColDef(prelationshipNode12);
        }
        trparNode13 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelNode1 = new AExplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, pcoldefNode11, trparNode13);
        }
	nodeList.add(pexplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new113() /* reduce AExpr1$Relation2$Expr3ExplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRel pexplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        PColDef pcoldefNode11;
        TRPar trparNode13;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode4;
        pmasterexprNode4 = (PMasterExpr)nodeArrayList2.get(0);

        pcoldefNode3 = new AExprColDef(pmasterexprNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PRelationship prelationshipNode9;
        prelationshipNode9 = (PRelationship)nodeArrayList6.get(0);

        pcoldefNode8 = new ARelationColDef(prelationshipNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode12;
        pmasterexprNode12 = (PMasterExpr)nodeArrayList8.get(0);

        pcoldefNode11 = new AExprColDef(pmasterexprNode12);
        }
        trparNode13 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelNode1 = new AExplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, pcoldefNode11, trparNode13);
        }
	nodeList.add(pexplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new114() /* reduce AExpr1$Relation2$Prop3ExplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRel pexplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        PColDef pcoldefNode11;
        TRPar trparNode13;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode4;
        pmasterexprNode4 = (PMasterExpr)nodeArrayList2.get(0);

        pcoldefNode3 = new AExprColDef(pmasterexprNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PRelationship prelationshipNode9;
        prelationshipNode9 = (PRelationship)nodeArrayList6.get(0);

        pcoldefNode8 = new ARelationColDef(prelationshipNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        {
            // Block
        PProp ppropNode12;
        ppropNode12 = (PProp)nodeArrayList8.get(0);

        pcoldefNode11 = new APropColDef(ppropNode12);
        }
        trparNode13 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelNode1 = new AExplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, pcoldefNode11, trparNode13);
        }
	nodeList.add(pexplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new115() /* reduce AExpr1$Relation2$Relation3ExplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRel pexplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        PColDef pcoldefNode11;
        TRPar trparNode13;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode4;
        pmasterexprNode4 = (PMasterExpr)nodeArrayList2.get(0);

        pcoldefNode3 = new AExprColDef(pmasterexprNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PRelationship prelationshipNode9;
        prelationshipNode9 = (PRelationship)nodeArrayList6.get(0);

        pcoldefNode8 = new ARelationColDef(prelationshipNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        {
            // Block
        PRelationship prelationshipNode12;
        prelationshipNode12 = (PRelationship)nodeArrayList8.get(0);

        pcoldefNode11 = new ARelationColDef(prelationshipNode12);
        }
        trparNode13 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelNode1 = new AExplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, pcoldefNode11, trparNode13);
        }
	nodeList.add(pexplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new116() /* reduce AProp1$Expr2$Expr3ExplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRel pexplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        PColDef pcoldefNode11;
        TRPar trparNode13;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PProp ppropNode4;
        ppropNode4 = (PProp)nodeArrayList2.get(0);

        pcoldefNode3 = new APropColDef(ppropNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode9;
        pmasterexprNode9 = (PMasterExpr)nodeArrayList6.get(0);

        pcoldefNode8 = new AExprColDef(pmasterexprNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode12;
        pmasterexprNode12 = (PMasterExpr)nodeArrayList8.get(0);

        pcoldefNode11 = new AExprColDef(pmasterexprNode12);
        }
        trparNode13 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelNode1 = new AExplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, pcoldefNode11, trparNode13);
        }
	nodeList.add(pexplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new117() /* reduce AProp1$Expr2$Prop3ExplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRel pexplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        PColDef pcoldefNode11;
        TRPar trparNode13;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PProp ppropNode4;
        ppropNode4 = (PProp)nodeArrayList2.get(0);

        pcoldefNode3 = new APropColDef(ppropNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode9;
        pmasterexprNode9 = (PMasterExpr)nodeArrayList6.get(0);

        pcoldefNode8 = new AExprColDef(pmasterexprNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        {
            // Block
        PProp ppropNode12;
        ppropNode12 = (PProp)nodeArrayList8.get(0);

        pcoldefNode11 = new APropColDef(ppropNode12);
        }
        trparNode13 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelNode1 = new AExplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, pcoldefNode11, trparNode13);
        }
	nodeList.add(pexplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new118() /* reduce AProp1$Expr2$Relation3ExplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRel pexplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        PColDef pcoldefNode11;
        TRPar trparNode13;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PProp ppropNode4;
        ppropNode4 = (PProp)nodeArrayList2.get(0);

        pcoldefNode3 = new APropColDef(ppropNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode9;
        pmasterexprNode9 = (PMasterExpr)nodeArrayList6.get(0);

        pcoldefNode8 = new AExprColDef(pmasterexprNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        {
            // Block
        PRelationship prelationshipNode12;
        prelationshipNode12 = (PRelationship)nodeArrayList8.get(0);

        pcoldefNode11 = new ARelationColDef(prelationshipNode12);
        }
        trparNode13 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelNode1 = new AExplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, pcoldefNode11, trparNode13);
        }
	nodeList.add(pexplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new119() /* reduce AProp1$Prop2$Expr3ExplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRel pexplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        PColDef pcoldefNode11;
        TRPar trparNode13;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PProp ppropNode4;
        ppropNode4 = (PProp)nodeArrayList2.get(0);

        pcoldefNode3 = new APropColDef(ppropNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PProp ppropNode9;
        ppropNode9 = (PProp)nodeArrayList6.get(0);

        pcoldefNode8 = new APropColDef(ppropNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode12;
        pmasterexprNode12 = (PMasterExpr)nodeArrayList8.get(0);

        pcoldefNode11 = new AExprColDef(pmasterexprNode12);
        }
        trparNode13 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelNode1 = new AExplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, pcoldefNode11, trparNode13);
        }
	nodeList.add(pexplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new120() /* reduce AProp1$Prop2$Prop3ExplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRel pexplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        PColDef pcoldefNode11;
        TRPar trparNode13;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PProp ppropNode4;
        ppropNode4 = (PProp)nodeArrayList2.get(0);

        pcoldefNode3 = new APropColDef(ppropNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PProp ppropNode9;
        ppropNode9 = (PProp)nodeArrayList6.get(0);

        pcoldefNode8 = new APropColDef(ppropNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        {
            // Block
        PProp ppropNode12;
        ppropNode12 = (PProp)nodeArrayList8.get(0);

        pcoldefNode11 = new APropColDef(ppropNode12);
        }
        trparNode13 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelNode1 = new AExplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, pcoldefNode11, trparNode13);
        }
	nodeList.add(pexplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new121() /* reduce AProp1$Prop2$Relation3ExplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRel pexplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        PColDef pcoldefNode11;
        TRPar trparNode13;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PProp ppropNode4;
        ppropNode4 = (PProp)nodeArrayList2.get(0);

        pcoldefNode3 = new APropColDef(ppropNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PProp ppropNode9;
        ppropNode9 = (PProp)nodeArrayList6.get(0);

        pcoldefNode8 = new APropColDef(ppropNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        {
            // Block
        PRelationship prelationshipNode12;
        prelationshipNode12 = (PRelationship)nodeArrayList8.get(0);

        pcoldefNode11 = new ARelationColDef(prelationshipNode12);
        }
        trparNode13 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelNode1 = new AExplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, pcoldefNode11, trparNode13);
        }
	nodeList.add(pexplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new122() /* reduce AProp1$Relation2$Expr3ExplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRel pexplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        PColDef pcoldefNode11;
        TRPar trparNode13;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PProp ppropNode4;
        ppropNode4 = (PProp)nodeArrayList2.get(0);

        pcoldefNode3 = new APropColDef(ppropNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PRelationship prelationshipNode9;
        prelationshipNode9 = (PRelationship)nodeArrayList6.get(0);

        pcoldefNode8 = new ARelationColDef(prelationshipNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode12;
        pmasterexprNode12 = (PMasterExpr)nodeArrayList8.get(0);

        pcoldefNode11 = new AExprColDef(pmasterexprNode12);
        }
        trparNode13 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelNode1 = new AExplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, pcoldefNode11, trparNode13);
        }
	nodeList.add(pexplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new123() /* reduce AProp1$Relation2$Prop3ExplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRel pexplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        PColDef pcoldefNode11;
        TRPar trparNode13;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PProp ppropNode4;
        ppropNode4 = (PProp)nodeArrayList2.get(0);

        pcoldefNode3 = new APropColDef(ppropNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PRelationship prelationshipNode9;
        prelationshipNode9 = (PRelationship)nodeArrayList6.get(0);

        pcoldefNode8 = new ARelationColDef(prelationshipNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        {
            // Block
        PProp ppropNode12;
        ppropNode12 = (PProp)nodeArrayList8.get(0);

        pcoldefNode11 = new APropColDef(ppropNode12);
        }
        trparNode13 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelNode1 = new AExplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, pcoldefNode11, trparNode13);
        }
	nodeList.add(pexplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new124() /* reduce AProp1$Relation2$Relation3ExplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRel pexplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        PColDef pcoldefNode11;
        TRPar trparNode13;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PProp ppropNode4;
        ppropNode4 = (PProp)nodeArrayList2.get(0);

        pcoldefNode3 = new APropColDef(ppropNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PRelationship prelationshipNode9;
        prelationshipNode9 = (PRelationship)nodeArrayList6.get(0);

        pcoldefNode8 = new ARelationColDef(prelationshipNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        {
            // Block
        PRelationship prelationshipNode12;
        prelationshipNode12 = (PRelationship)nodeArrayList8.get(0);

        pcoldefNode11 = new ARelationColDef(prelationshipNode12);
        }
        trparNode13 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelNode1 = new AExplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, pcoldefNode11, trparNode13);
        }
	nodeList.add(pexplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new125() /* reduce ARelation1$Expr2$Expr3ExplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRel pexplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        PColDef pcoldefNode11;
        TRPar trparNode13;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PRelationship prelationshipNode4;
        prelationshipNode4 = (PRelationship)nodeArrayList2.get(0);

        pcoldefNode3 = new ARelationColDef(prelationshipNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode9;
        pmasterexprNode9 = (PMasterExpr)nodeArrayList6.get(0);

        pcoldefNode8 = new AExprColDef(pmasterexprNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode12;
        pmasterexprNode12 = (PMasterExpr)nodeArrayList8.get(0);

        pcoldefNode11 = new AExprColDef(pmasterexprNode12);
        }
        trparNode13 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelNode1 = new AExplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, pcoldefNode11, trparNode13);
        }
	nodeList.add(pexplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new126() /* reduce ARelation1$Expr2$Prop3ExplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRel pexplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        PColDef pcoldefNode11;
        TRPar trparNode13;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PRelationship prelationshipNode4;
        prelationshipNode4 = (PRelationship)nodeArrayList2.get(0);

        pcoldefNode3 = new ARelationColDef(prelationshipNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode9;
        pmasterexprNode9 = (PMasterExpr)nodeArrayList6.get(0);

        pcoldefNode8 = new AExprColDef(pmasterexprNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        {
            // Block
        PProp ppropNode12;
        ppropNode12 = (PProp)nodeArrayList8.get(0);

        pcoldefNode11 = new APropColDef(ppropNode12);
        }
        trparNode13 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelNode1 = new AExplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, pcoldefNode11, trparNode13);
        }
	nodeList.add(pexplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new127() /* reduce ARelation1$Expr2$Relation3ExplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRel pexplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        PColDef pcoldefNode11;
        TRPar trparNode13;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PRelationship prelationshipNode4;
        prelationshipNode4 = (PRelationship)nodeArrayList2.get(0);

        pcoldefNode3 = new ARelationColDef(prelationshipNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode9;
        pmasterexprNode9 = (PMasterExpr)nodeArrayList6.get(0);

        pcoldefNode8 = new AExprColDef(pmasterexprNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        {
            // Block
        PRelationship prelationshipNode12;
        prelationshipNode12 = (PRelationship)nodeArrayList8.get(0);

        pcoldefNode11 = new ARelationColDef(prelationshipNode12);
        }
        trparNode13 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelNode1 = new AExplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, pcoldefNode11, trparNode13);
        }
	nodeList.add(pexplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new128() /* reduce ARelation1$Prop2$Expr3ExplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRel pexplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        PColDef pcoldefNode11;
        TRPar trparNode13;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PRelationship prelationshipNode4;
        prelationshipNode4 = (PRelationship)nodeArrayList2.get(0);

        pcoldefNode3 = new ARelationColDef(prelationshipNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PProp ppropNode9;
        ppropNode9 = (PProp)nodeArrayList6.get(0);

        pcoldefNode8 = new APropColDef(ppropNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode12;
        pmasterexprNode12 = (PMasterExpr)nodeArrayList8.get(0);

        pcoldefNode11 = new AExprColDef(pmasterexprNode12);
        }
        trparNode13 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelNode1 = new AExplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, pcoldefNode11, trparNode13);
        }
	nodeList.add(pexplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new129() /* reduce ARelation1$Prop2$Prop3ExplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRel pexplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        PColDef pcoldefNode11;
        TRPar trparNode13;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PRelationship prelationshipNode4;
        prelationshipNode4 = (PRelationship)nodeArrayList2.get(0);

        pcoldefNode3 = new ARelationColDef(prelationshipNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PProp ppropNode9;
        ppropNode9 = (PProp)nodeArrayList6.get(0);

        pcoldefNode8 = new APropColDef(ppropNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        {
            // Block
        PProp ppropNode12;
        ppropNode12 = (PProp)nodeArrayList8.get(0);

        pcoldefNode11 = new APropColDef(ppropNode12);
        }
        trparNode13 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelNode1 = new AExplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, pcoldefNode11, trparNode13);
        }
	nodeList.add(pexplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new130() /* reduce ARelation1$Prop2$Relation3ExplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRel pexplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        PColDef pcoldefNode11;
        TRPar trparNode13;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PRelationship prelationshipNode4;
        prelationshipNode4 = (PRelationship)nodeArrayList2.get(0);

        pcoldefNode3 = new ARelationColDef(prelationshipNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PProp ppropNode9;
        ppropNode9 = (PProp)nodeArrayList6.get(0);

        pcoldefNode8 = new APropColDef(ppropNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        {
            // Block
        PRelationship prelationshipNode12;
        prelationshipNode12 = (PRelationship)nodeArrayList8.get(0);

        pcoldefNode11 = new ARelationColDef(prelationshipNode12);
        }
        trparNode13 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelNode1 = new AExplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, pcoldefNode11, trparNode13);
        }
	nodeList.add(pexplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new131() /* reduce ARelation1$Relation2$Expr3ExplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRel pexplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        PColDef pcoldefNode11;
        TRPar trparNode13;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PRelationship prelationshipNode4;
        prelationshipNode4 = (PRelationship)nodeArrayList2.get(0);

        pcoldefNode3 = new ARelationColDef(prelationshipNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PRelationship prelationshipNode9;
        prelationshipNode9 = (PRelationship)nodeArrayList6.get(0);

        pcoldefNode8 = new ARelationColDef(prelationshipNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        {
            // Block
        PMasterExpr pmasterexprNode12;
        pmasterexprNode12 = (PMasterExpr)nodeArrayList8.get(0);

        pcoldefNode11 = new AExprColDef(pmasterexprNode12);
        }
        trparNode13 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelNode1 = new AExplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, pcoldefNode11, trparNode13);
        }
	nodeList.add(pexplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new132() /* reduce ARelation1$Relation2$Prop3ExplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRel pexplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        PColDef pcoldefNode11;
        TRPar trparNode13;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PRelationship prelationshipNode4;
        prelationshipNode4 = (PRelationship)nodeArrayList2.get(0);

        pcoldefNode3 = new ARelationColDef(prelationshipNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PRelationship prelationshipNode9;
        prelationshipNode9 = (PRelationship)nodeArrayList6.get(0);

        pcoldefNode8 = new ARelationColDef(prelationshipNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        {
            // Block
        PProp ppropNode12;
        ppropNode12 = (PProp)nodeArrayList8.get(0);

        pcoldefNode11 = new APropColDef(ppropNode12);
        }
        trparNode13 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelNode1 = new AExplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, pcoldefNode11, trparNode13);
        }
	nodeList.add(pexplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new133() /* reduce ARelation1$Relation2$Relation3ExplicitRel */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList9 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList8 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PExplicitRel pexplicitrelNode1;
        {
            // Block
        TLPar tlparNode2;
        PColDef pcoldefNode3;
        TComma tcommaNode5;
        TRelType treltypeNode6;
        TComma tcommaNode7;
        PColDef pcoldefNode8;
        TComma tcommaNode10;
        PColDef pcoldefNode11;
        TRPar trparNode13;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        {
            // Block
        PRelationship prelationshipNode4;
        prelationshipNode4 = (PRelationship)nodeArrayList2.get(0);

        pcoldefNode3 = new ARelationColDef(prelationshipNode4);
        }
        tcommaNode5 = (TComma)nodeArrayList3.get(0);
        treltypeNode6 = (TRelType)nodeArrayList4.get(0);
        tcommaNode7 = (TComma)nodeArrayList5.get(0);
        {
            // Block
        PRelationship prelationshipNode9;
        prelationshipNode9 = (PRelationship)nodeArrayList6.get(0);

        pcoldefNode8 = new ARelationColDef(prelationshipNode9);
        }
        tcommaNode10 = (TComma)nodeArrayList7.get(0);
        {
            // Block
        PRelationship prelationshipNode12;
        prelationshipNode12 = (PRelationship)nodeArrayList8.get(0);

        pcoldefNode11 = new ARelationColDef(prelationshipNode12);
        }
        trparNode13 = (TRPar)nodeArrayList9.get(0);

        pexplicitrelNode1 = new AExplicitRel(tlparNode2, pcoldefNode3, tcommaNode5, treltypeNode6, tcommaNode7, pcoldefNode8, tcommaNode10, pcoldefNode11, trparNode13);
        }
	nodeList.add(pexplicitrelNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new134() /* reduce ATermComparisonExpr */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PComparisonExpr pcomparisonexprNode1;
        {
            // Block
        PComparisonTerm pcomparisontermNode2;
        pcomparisontermNode2 = (PComparisonTerm)nodeArrayList1.get(0);

        pcomparisonexprNode1 = new ATermComparisonExpr(pcomparisontermNode2);
        }
	nodeList.add(pcomparisonexprNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new135() /* reduce AComparisonGroupComparisonExpr */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PComparisonExpr pcomparisonexprNode1;
        {
            // Block
        PComparisonGroup pcomparisongroupNode2;
        pcomparisongroupNode2 = (PComparisonGroup)nodeArrayList1.get(0);

        pcomparisonexprNode1 = new AComparisonGroupComparisonExpr(pcomparisongroupNode2);
        }
	nodeList.add(pcomparisonexprNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new136() /* reduce AComplexOrComparisonExpr */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PComparisonExpr pcomparisonexprNode1;
        {
            // Block
        PComparisonGroup pcomparisongroupNode2;
        TOrComparator torcomparatorNode3;
        PComparisonExpr pcomparisonexprNode4;
        pcomparisongroupNode2 = (PComparisonGroup)nodeArrayList1.get(0);
        torcomparatorNode3 = (TOrComparator)nodeArrayList2.get(0);
        pcomparisonexprNode4 = (PComparisonExpr)nodeArrayList3.get(0);

        pcomparisonexprNode1 = new AComplexOrComparisonExpr(pcomparisongroupNode2, torcomparatorNode3, pcomparisonexprNode4);
        }
	nodeList.add(pcomparisonexprNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new137() /* reduce AComplexAndComparisonExpr */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PComparisonExpr pcomparisonexprNode1;
        {
            // Block
        PComparisonGroup pcomparisongroupNode2;
        TAndComparator tandcomparatorNode3;
        PComparisonExpr pcomparisonexprNode4;
        pcomparisongroupNode2 = (PComparisonGroup)nodeArrayList1.get(0);
        tandcomparatorNode3 = (TAndComparator)nodeArrayList2.get(0);
        pcomparisonexprNode4 = (PComparisonExpr)nodeArrayList3.get(0);

        pcomparisonexprNode1 = new AComplexAndComparisonExpr(pcomparisongroupNode2, tandcomparatorNode3, pcomparisonexprNode4);
        }
	nodeList.add(pcomparisonexprNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new138() /* reduce ABasicComparisonTerm */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PComparisonTerm pcomparisontermNode1;
        {
            // Block
        PBaseSimpleComparison pbasesimplecomparisonNode2;
        pbasesimplecomparisonNode2 = (PBaseSimpleComparison)nodeArrayList1.get(0);

        pcomparisontermNode1 = new ABasicComparisonTerm(pbasesimplecomparisonNode2);
        }
	nodeList.add(pcomparisontermNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new139() /* reduce ABasicAndComparisonTerm */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PComparisonTerm pcomparisontermNode1;
        {
            // Block
        PAndComparison pandcomparisonNode2;
        pandcomparisonNode2 = (PAndComparison)nodeArrayList1.get(0);

        pcomparisontermNode1 = new ABasicAndComparisonTerm(pandcomparisonNode2);
        }
	nodeList.add(pcomparisontermNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new140() /* reduce ABasicOrComparisonTerm */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PComparisonTerm pcomparisontermNode1;
        {
            // Block
        POrComparison porcomparisonNode2;
        porcomparisonNode2 = (POrComparison)nodeArrayList1.get(0);

        pcomparisontermNode1 = new ABasicOrComparisonTerm(porcomparisonNode2);
        }
	nodeList.add(pcomparisontermNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new141() /* reduce AComparisonGroup */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PComparisonGroup pcomparisongroupNode1;
        {
            // Block
        TLPar tlparNode2;
        PComparisonExpr pcomparisonexprNode3;
        TRPar trparNode4;
        tlparNode2 = (TLPar)nodeArrayList1.get(0);
        pcomparisonexprNode3 = (PComparisonExpr)nodeArrayList2.get(0);
        trparNode4 = (TRPar)nodeArrayList3.get(0);

        pcomparisongroupNode1 = new AComparisonGroup(tlparNode2, pcomparisonexprNode3, trparNode4);
        }
	nodeList.add(pcomparisongroupNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new142() /* reduce AAsimplecaseandcomparison1AndComparison */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PAndComparison pandcomparisonNode1;
        {
            // Block
        PTerm ptermNode2;
        TAndComparator tandcomparatorNode3;
        PTerm ptermNode4;
        LinkedList listNode5 = new LinkedList();
        ptermNode2 = (PTerm)nodeArrayList1.get(0);
        tandcomparatorNode3 = (TAndComparator)nodeArrayList2.get(0);
        ptermNode4 = (PTerm)nodeArrayList3.get(0);
        {
            // Block
        }

        pandcomparisonNode1 = new ASimpleCaseAndComparison(ptermNode2, tandcomparatorNode3, ptermNode4, listNode5);
        }
	nodeList.add(pandcomparisonNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new143() /* reduce AAsimplecaseandcomparison2AndComparison */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PAndComparison pandcomparisonNode1;
        {
            // Block
        PTerm ptermNode2;
        TAndComparator tandcomparatorNode3;
        PTerm ptermNode4;
        LinkedList listNode6 = new LinkedList();
        ptermNode2 = (PTerm)nodeArrayList1.get(0);
        tandcomparatorNode3 = (TAndComparator)nodeArrayList2.get(0);
        ptermNode4 = (PTerm)nodeArrayList3.get(0);
        {
            // Block
        LinkedList listNode5 = new LinkedList();
        listNode5 = (LinkedList)nodeArrayList4.get(0);
	if(listNode5 != null)
	{
	  listNode6.addAll(listNode5);
	}
        }

        pandcomparisonNode1 = new ASimpleCaseAndComparison(ptermNode2, tandcomparatorNode3, ptermNode4, listNode6);
        }
	nodeList.add(pandcomparisonNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new144() /* reduce AAleftcomplexandcomparison1AndComparison */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PAndComparison pandcomparisonNode1;
        {
            // Block
        PTerm ptermNode2;
        TAndComparator tandcomparatorNode3;
        PBaseSimpleComparison pbasesimplecomparisonNode4;
        LinkedList listNode5 = new LinkedList();
        ptermNode2 = (PTerm)nodeArrayList1.get(0);
        tandcomparatorNode3 = (TAndComparator)nodeArrayList2.get(0);
        pbasesimplecomparisonNode4 = (PBaseSimpleComparison)nodeArrayList3.get(0);
        {
            // Block
        }

        pandcomparisonNode1 = new ALeftComplexAndComparison(ptermNode2, tandcomparatorNode3, pbasesimplecomparisonNode4, listNode5);
        }
	nodeList.add(pandcomparisonNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new145() /* reduce AAleftcomplexandcomparison2AndComparison */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PAndComparison pandcomparisonNode1;
        {
            // Block
        PTerm ptermNode2;
        TAndComparator tandcomparatorNode3;
        PBaseSimpleComparison pbasesimplecomparisonNode4;
        LinkedList listNode6 = new LinkedList();
        ptermNode2 = (PTerm)nodeArrayList1.get(0);
        tandcomparatorNode3 = (TAndComparator)nodeArrayList2.get(0);
        pbasesimplecomparisonNode4 = (PBaseSimpleComparison)nodeArrayList3.get(0);
        {
            // Block
        LinkedList listNode5 = new LinkedList();
        listNode5 = (LinkedList)nodeArrayList4.get(0);
	if(listNode5 != null)
	{
	  listNode6.addAll(listNode5);
	}
        }

        pandcomparisonNode1 = new ALeftComplexAndComparison(ptermNode2, tandcomparatorNode3, pbasesimplecomparisonNode4, listNode6);
        }
	nodeList.add(pandcomparisonNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new146() /* reduce AArightcomplexandcomparison1AndComparison */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PAndComparison pandcomparisonNode1;
        {
            // Block
        PBaseSimpleComparison pbasesimplecomparisonNode2;
        TAndComparator tandcomparatorNode3;
        PTerm ptermNode4;
        LinkedList listNode5 = new LinkedList();
        pbasesimplecomparisonNode2 = (PBaseSimpleComparison)nodeArrayList1.get(0);
        tandcomparatorNode3 = (TAndComparator)nodeArrayList2.get(0);
        ptermNode4 = (PTerm)nodeArrayList3.get(0);
        {
            // Block
        }

        pandcomparisonNode1 = new ARightComplexAndComparison(pbasesimplecomparisonNode2, tandcomparatorNode3, ptermNode4, listNode5);
        }
	nodeList.add(pandcomparisonNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new147() /* reduce AArightcomplexandcomparison2AndComparison */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PAndComparison pandcomparisonNode1;
        {
            // Block
        PBaseSimpleComparison pbasesimplecomparisonNode2;
        TAndComparator tandcomparatorNode3;
        PTerm ptermNode4;
        LinkedList listNode6 = new LinkedList();
        pbasesimplecomparisonNode2 = (PBaseSimpleComparison)nodeArrayList1.get(0);
        tandcomparatorNode3 = (TAndComparator)nodeArrayList2.get(0);
        ptermNode4 = (PTerm)nodeArrayList3.get(0);
        {
            // Block
        LinkedList listNode5 = new LinkedList();
        listNode5 = (LinkedList)nodeArrayList4.get(0);
	if(listNode5 != null)
	{
	  listNode6.addAll(listNode5);
	}
        }

        pandcomparisonNode1 = new ARightComplexAndComparison(pbasesimplecomparisonNode2, tandcomparatorNode3, ptermNode4, listNode6);
        }
	nodeList.add(pandcomparisonNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new148() /* reduce AAbothcomplexandcomparison1AndComparison */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PAndComparison pandcomparisonNode1;
        {
            // Block
        PBaseSimpleComparison pbasesimplecomparisonNode2;
        TAndComparator tandcomparatorNode3;
        PBaseSimpleComparison pbasesimplecomparisonNode4;
        LinkedList listNode5 = new LinkedList();
        pbasesimplecomparisonNode2 = (PBaseSimpleComparison)nodeArrayList1.get(0);
        tandcomparatorNode3 = (TAndComparator)nodeArrayList2.get(0);
        pbasesimplecomparisonNode4 = (PBaseSimpleComparison)nodeArrayList3.get(0);
        {
            // Block
        }

        pandcomparisonNode1 = new ABothComplexAndComparison(pbasesimplecomparisonNode2, tandcomparatorNode3, pbasesimplecomparisonNode4, listNode5);
        }
	nodeList.add(pandcomparisonNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new149() /* reduce AAbothcomplexandcomparison2AndComparison */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PAndComparison pandcomparisonNode1;
        {
            // Block
        PBaseSimpleComparison pbasesimplecomparisonNode2;
        TAndComparator tandcomparatorNode3;
        PBaseSimpleComparison pbasesimplecomparisonNode4;
        LinkedList listNode6 = new LinkedList();
        pbasesimplecomparisonNode2 = (PBaseSimpleComparison)nodeArrayList1.get(0);
        tandcomparatorNode3 = (TAndComparator)nodeArrayList2.get(0);
        pbasesimplecomparisonNode4 = (PBaseSimpleComparison)nodeArrayList3.get(0);
        {
            // Block
        LinkedList listNode5 = new LinkedList();
        listNode5 = (LinkedList)nodeArrayList4.get(0);
	if(listNode5 != null)
	{
	  listNode6.addAll(listNode5);
	}
        }

        pandcomparisonNode1 = new ABothComplexAndComparison(pbasesimplecomparisonNode2, tandcomparatorNode3, pbasesimplecomparisonNode4, listNode6);
        }
	nodeList.add(pandcomparisonNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new150() /* reduce ARepeatingAndComparison */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PRepeatingAndComparison prepeatingandcomparisonNode1;
        {
            // Block
        TAndComparator tandcomparatorNode2;
        PBaseSimpleComparison pbasesimplecomparisonNode3;
        tandcomparatorNode2 = (TAndComparator)nodeArrayList1.get(0);
        pbasesimplecomparisonNode3 = (PBaseSimpleComparison)nodeArrayList2.get(0);

        prepeatingandcomparisonNode1 = new ARepeatingAndComparison(tandcomparatorNode2, pbasesimplecomparisonNode3);
        }
	nodeList.add(prepeatingandcomparisonNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new151() /* reduce AAsimplecaseorcomparison1OrComparison */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        POrComparison porcomparisonNode1;
        {
            // Block
        PTerm ptermNode2;
        TOrComparator torcomparatorNode3;
        PTerm ptermNode4;
        LinkedList listNode5 = new LinkedList();
        ptermNode2 = (PTerm)nodeArrayList1.get(0);
        torcomparatorNode3 = (TOrComparator)nodeArrayList2.get(0);
        ptermNode4 = (PTerm)nodeArrayList3.get(0);
        {
            // Block
        }

        porcomparisonNode1 = new ASimpleCaseOrComparison(ptermNode2, torcomparatorNode3, ptermNode4, listNode5);
        }
	nodeList.add(porcomparisonNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new152() /* reduce AAsimplecaseorcomparison2OrComparison */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        POrComparison porcomparisonNode1;
        {
            // Block
        PTerm ptermNode2;
        TOrComparator torcomparatorNode3;
        PTerm ptermNode4;
        LinkedList listNode6 = new LinkedList();
        ptermNode2 = (PTerm)nodeArrayList1.get(0);
        torcomparatorNode3 = (TOrComparator)nodeArrayList2.get(0);
        ptermNode4 = (PTerm)nodeArrayList3.get(0);
        {
            // Block
        LinkedList listNode5 = new LinkedList();
        listNode5 = (LinkedList)nodeArrayList4.get(0);
	if(listNode5 != null)
	{
	  listNode6.addAll(listNode5);
	}
        }

        porcomparisonNode1 = new ASimpleCaseOrComparison(ptermNode2, torcomparatorNode3, ptermNode4, listNode6);
        }
	nodeList.add(porcomparisonNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new153() /* reduce AAleftcomplexorcomparison1OrComparison */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        POrComparison porcomparisonNode1;
        {
            // Block
        PTerm ptermNode2;
        TOrComparator torcomparatorNode3;
        PBaseSimpleComparison pbasesimplecomparisonNode4;
        LinkedList listNode5 = new LinkedList();
        ptermNode2 = (PTerm)nodeArrayList1.get(0);
        torcomparatorNode3 = (TOrComparator)nodeArrayList2.get(0);
        pbasesimplecomparisonNode4 = (PBaseSimpleComparison)nodeArrayList3.get(0);
        {
            // Block
        }

        porcomparisonNode1 = new ALeftComplexOrComparison(ptermNode2, torcomparatorNode3, pbasesimplecomparisonNode4, listNode5);
        }
	nodeList.add(porcomparisonNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new154() /* reduce AAleftcomplexorcomparison2OrComparison */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        POrComparison porcomparisonNode1;
        {
            // Block
        PTerm ptermNode2;
        TOrComparator torcomparatorNode3;
        PBaseSimpleComparison pbasesimplecomparisonNode4;
        LinkedList listNode6 = new LinkedList();
        ptermNode2 = (PTerm)nodeArrayList1.get(0);
        torcomparatorNode3 = (TOrComparator)nodeArrayList2.get(0);
        pbasesimplecomparisonNode4 = (PBaseSimpleComparison)nodeArrayList3.get(0);
        {
            // Block
        LinkedList listNode5 = new LinkedList();
        listNode5 = (LinkedList)nodeArrayList4.get(0);
	if(listNode5 != null)
	{
	  listNode6.addAll(listNode5);
	}
        }

        porcomparisonNode1 = new ALeftComplexOrComparison(ptermNode2, torcomparatorNode3, pbasesimplecomparisonNode4, listNode6);
        }
	nodeList.add(porcomparisonNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new155() /* reduce AArightcomplexorcomparison1OrComparison */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        POrComparison porcomparisonNode1;
        {
            // Block
        PBaseSimpleComparison pbasesimplecomparisonNode2;
        TOrComparator torcomparatorNode3;
        PTerm ptermNode4;
        LinkedList listNode5 = new LinkedList();
        pbasesimplecomparisonNode2 = (PBaseSimpleComparison)nodeArrayList1.get(0);
        torcomparatorNode3 = (TOrComparator)nodeArrayList2.get(0);
        ptermNode4 = (PTerm)nodeArrayList3.get(0);
        {
            // Block
        }

        porcomparisonNode1 = new ARightComplexOrComparison(pbasesimplecomparisonNode2, torcomparatorNode3, ptermNode4, listNode5);
        }
	nodeList.add(porcomparisonNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new156() /* reduce AArightcomplexorcomparison2OrComparison */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        POrComparison porcomparisonNode1;
        {
            // Block
        PBaseSimpleComparison pbasesimplecomparisonNode2;
        TOrComparator torcomparatorNode3;
        PTerm ptermNode4;
        LinkedList listNode6 = new LinkedList();
        pbasesimplecomparisonNode2 = (PBaseSimpleComparison)nodeArrayList1.get(0);
        torcomparatorNode3 = (TOrComparator)nodeArrayList2.get(0);
        ptermNode4 = (PTerm)nodeArrayList3.get(0);
        {
            // Block
        LinkedList listNode5 = new LinkedList();
        listNode5 = (LinkedList)nodeArrayList4.get(0);
	if(listNode5 != null)
	{
	  listNode6.addAll(listNode5);
	}
        }

        porcomparisonNode1 = new ARightComplexOrComparison(pbasesimplecomparisonNode2, torcomparatorNode3, ptermNode4, listNode6);
        }
	nodeList.add(porcomparisonNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new157() /* reduce AAbothcomplexorcomparison1OrComparison */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        POrComparison porcomparisonNode1;
        {
            // Block
        PBaseSimpleComparison pbasesimplecomparisonNode2;
        TOrComparator torcomparatorNode3;
        PBaseSimpleComparison pbasesimplecomparisonNode4;
        LinkedList listNode5 = new LinkedList();
        pbasesimplecomparisonNode2 = (PBaseSimpleComparison)nodeArrayList1.get(0);
        torcomparatorNode3 = (TOrComparator)nodeArrayList2.get(0);
        pbasesimplecomparisonNode4 = (PBaseSimpleComparison)nodeArrayList3.get(0);
        {
            // Block
        }

        porcomparisonNode1 = new ABothComplexOrComparison(pbasesimplecomparisonNode2, torcomparatorNode3, pbasesimplecomparisonNode4, listNode5);
        }
	nodeList.add(porcomparisonNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new158() /* reduce AAbothcomplexorcomparison2OrComparison */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        POrComparison porcomparisonNode1;
        {
            // Block
        PBaseSimpleComparison pbasesimplecomparisonNode2;
        TOrComparator torcomparatorNode3;
        PBaseSimpleComparison pbasesimplecomparisonNode4;
        LinkedList listNode6 = new LinkedList();
        pbasesimplecomparisonNode2 = (PBaseSimpleComparison)nodeArrayList1.get(0);
        torcomparatorNode3 = (TOrComparator)nodeArrayList2.get(0);
        pbasesimplecomparisonNode4 = (PBaseSimpleComparison)nodeArrayList3.get(0);
        {
            // Block
        LinkedList listNode5 = new LinkedList();
        listNode5 = (LinkedList)nodeArrayList4.get(0);
	if(listNode5 != null)
	{
	  listNode6.addAll(listNode5);
	}
        }

        porcomparisonNode1 = new ABothComplexOrComparison(pbasesimplecomparisonNode2, torcomparatorNode3, pbasesimplecomparisonNode4, listNode6);
        }
	nodeList.add(porcomparisonNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new159() /* reduce ARepeatingOrComparison */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PRepeatingOrComparison prepeatingorcomparisonNode1;
        {
            // Block
        TOrComparator torcomparatorNode2;
        PBaseSimpleComparison pbasesimplecomparisonNode3;
        torcomparatorNode2 = (TOrComparator)nodeArrayList1.get(0);
        pbasesimplecomparisonNode3 = (PBaseSimpleComparison)nodeArrayList2.get(0);

        prepeatingorcomparisonNode1 = new ARepeatingOrComparison(torcomparatorNode2, pbasesimplecomparisonNode3);
        }
	nodeList.add(prepeatingorcomparisonNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new160() /* reduce ABaseSimpleComparison */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PBaseSimpleComparison pbasesimplecomparisonNode1;
        {
            // Block
        PBaseExpr pbaseexprNode2;
        TComparator tcomparatorNode3;
        PBaseExpr pbaseexprNode4;
        pbaseexprNode2 = (PBaseExpr)nodeArrayList1.get(0);
        tcomparatorNode3 = (TComparator)nodeArrayList2.get(0);
        pbaseexprNode4 = (PBaseExpr)nodeArrayList3.get(0);

        pbasesimplecomparisonNode1 = new ABaseSimpleComparison(pbaseexprNode2, tcomparatorNode3, pbaseexprNode4);
        }
	nodeList.add(pbasesimplecomparisonNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new161() /* reduce AJavaOp */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PJavaOp pjavaopNode1;
        {
            // Block
        TJava tjavaNode2;
        tjavaNode2 = (TJava)nodeArrayList1.get(0);

        pjavaopNode1 = new AJavaOp(tjavaNode2);
        }
	nodeList.add(pjavaopNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new162() /* reduce ARcol */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PRcol prcolNode1;
        {
            // Block
        TFrameprefix tframeprefixNode2;
        TId tidNode3;
        tframeprefixNode2 = (TFrameprefix)nodeArrayList1.get(0);
        tidNode3 = (TId)nodeArrayList2.get(0);

        prcolNode1 = new ARcol(tframeprefixNode2, tidNode3);
        }
	nodeList.add(prcolNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new163() /* reduce ADotcol */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PDotcol pdotcolNode1;
        {
            // Block
        TFrameid tframeidNode2;
        TId tidNode3;
        tframeidNode2 = (TFrameid)nodeArrayList1.get(0);
        tidNode3 = (TId)nodeArrayList2.get(0);

        pdotcolNode1 = new ADotcol(tframeidNode2, tidNode3);
        }
	nodeList.add(pdotcolNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new164() /* reduce AAmap1Map */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PMap pmapNode1;
        {
            // Block
        TLCurl tlcurlNode2;
        @SuppressWarnings("unused") Object nullNode3 = null;
        LinkedList listNode4 = new LinkedList();
        TRCurl trcurlNode5;
        tlcurlNode2 = (TLCurl)nodeArrayList1.get(0);
        {
            // Block
        }
        trcurlNode5 = (TRCurl)nodeArrayList2.get(0);

        pmapNode1 = new AMap(tlcurlNode2, null, listNode4, trcurlNode5);
        }
	nodeList.add(pmapNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new165() /* reduce AAmap2Map */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PMap pmapNode1;
        {
            // Block
        TLCurl tlcurlNode2;
        PMapEntry pmapentryNode3;
        LinkedList listNode4 = new LinkedList();
        TRCurl trcurlNode5;
        tlcurlNode2 = (TLCurl)nodeArrayList1.get(0);
        pmapentryNode3 = (PMapEntry)nodeArrayList2.get(0);
        {
            // Block
        }
        trcurlNode5 = (TRCurl)nodeArrayList3.get(0);

        pmapNode1 = new AMap(tlcurlNode2, pmapentryNode3, listNode4, trcurlNode5);
        }
	nodeList.add(pmapNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new166() /* reduce AAmap3Map */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PMap pmapNode1;
        {
            // Block
        TLCurl tlcurlNode2;
        @SuppressWarnings("unused") Object nullNode3 = null;
        LinkedList listNode5 = new LinkedList();
        TRCurl trcurlNode6;
        tlcurlNode2 = (TLCurl)nodeArrayList1.get(0);
        {
            // Block
        LinkedList listNode4 = new LinkedList();
        listNode4 = (LinkedList)nodeArrayList2.get(0);
	if(listNode4 != null)
	{
	  listNode5.addAll(listNode4);
	}
        }
        trcurlNode6 = (TRCurl)nodeArrayList3.get(0);

        pmapNode1 = new AMap(tlcurlNode2, null, listNode5, trcurlNode6);
        }
	nodeList.add(pmapNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new167() /* reduce AAmap4Map */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PMap pmapNode1;
        {
            // Block
        TLCurl tlcurlNode2;
        PMapEntry pmapentryNode3;
        LinkedList listNode5 = new LinkedList();
        TRCurl trcurlNode6;
        tlcurlNode2 = (TLCurl)nodeArrayList1.get(0);
        pmapentryNode3 = (PMapEntry)nodeArrayList2.get(0);
        {
            // Block
        LinkedList listNode4 = new LinkedList();
        listNode4 = (LinkedList)nodeArrayList3.get(0);
	if(listNode4 != null)
	{
	  listNode5.addAll(listNode4);
	}
        }
        trcurlNode6 = (TRCurl)nodeArrayList4.get(0);

        pmapNode1 = new AMap(tlcurlNode2, pmapentryNode3, listNode5, trcurlNode6);
        }
	nodeList.add(pmapNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new168() /* reduce AMapEntry */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PMapEntry pmapentryNode1;
        {
            // Block
        PMapKey pmapkeyNode2;
        TColon tcolonNode3;
        PValues pvaluesNode4;
        pmapkeyNode2 = (PMapKey)nodeArrayList1.get(0);
        tcolonNode3 = (TColon)nodeArrayList2.get(0);
        pvaluesNode4 = (PValues)nodeArrayList3.get(0);

        pmapentryNode1 = new AMapEntry(pmapkeyNode2, tcolonNode3, pvaluesNode4);
        }
	nodeList.add(pmapentryNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new169() /* reduce AOtherMapEntry */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        POtherMapEntry pothermapentryNode1;
        {
            // Block
        TComma tcommaNode2;
        PMapEntry pmapentryNode3;
        tcommaNode2 = (TComma)nodeArrayList1.get(0);
        pmapentryNode3 = (PMapEntry)nodeArrayList2.get(0);

        pothermapentryNode1 = new AOtherMapEntry(tcommaNode2, pmapentryNode3);
        }
	nodeList.add(pothermapentryNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new170() /* reduce ASimpleValues */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PValues pvaluesNode1;
        {
            // Block
        PMapBaseInput pmapbaseinputNode2;
        pmapbaseinputNode2 = (PMapBaseInput)nodeArrayList1.get(0);

        pvaluesNode1 = new ASimpleValues(pmapbaseinputNode2);
        }
	nodeList.add(pvaluesNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new171() /* reduce AListValues */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PValues pvaluesNode1;
        {
            // Block
        PMapList pmaplistNode2;
        pmaplistNode2 = (PMapList)nodeArrayList1.get(0);

        pvaluesNode1 = new AListValues(pmaplistNode2);
        }
	nodeList.add(pvaluesNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new172() /* reduce ANestedMapValues */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PValues pvaluesNode1;
        {
            // Block
        PMap pmapNode2;
        pmapNode2 = (PMap)nodeArrayList1.get(0);

        pvaluesNode1 = new ANestedMapValues(pmapNode2);
        }
	nodeList.add(pvaluesNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new173() /* reduce AMapOperationValues */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PValues pvaluesNode1;
        {
            // Block
        POperation poperationNode2;
        poperationNode2 = (POperation)nodeArrayList1.get(0);

        pvaluesNode1 = new AMapOperationValues(poperationNode2);
        }
	nodeList.add(pvaluesNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new174() /* reduce AAmaplist1MapList */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PMapList pmaplistNode1;
        {
            // Block
        TLBrac tlbracNode2;
        @SuppressWarnings("unused") Object nullNode3 = null;
        LinkedList listNode4 = new LinkedList();
        TRBrac trbracNode5;
        tlbracNode2 = (TLBrac)nodeArrayList1.get(0);
        {
            // Block
        }
        trbracNode5 = (TRBrac)nodeArrayList2.get(0);

        pmaplistNode1 = new AMapList(tlbracNode2, null, listNode4, trbracNode5);
        }
	nodeList.add(pmaplistNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new175() /* reduce AAmaplist2MapList */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PMapList pmaplistNode1;
        {
            // Block
        TLBrac tlbracNode2;
        PMapExtendedInput pmapextendedinputNode3;
        LinkedList listNode4 = new LinkedList();
        TRBrac trbracNode5;
        tlbracNode2 = (TLBrac)nodeArrayList1.get(0);
        pmapextendedinputNode3 = (PMapExtendedInput)nodeArrayList2.get(0);
        {
            // Block
        }
        trbracNode5 = (TRBrac)nodeArrayList3.get(0);

        pmaplistNode1 = new AMapList(tlbracNode2, pmapextendedinputNode3, listNode4, trbracNode5);
        }
	nodeList.add(pmaplistNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new176() /* reduce AAmaplist3MapList */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PMapList pmaplistNode1;
        {
            // Block
        TLBrac tlbracNode2;
        @SuppressWarnings("unused") Object nullNode3 = null;
        LinkedList listNode5 = new LinkedList();
        TRBrac trbracNode6;
        tlbracNode2 = (TLBrac)nodeArrayList1.get(0);
        {
            // Block
        LinkedList listNode4 = new LinkedList();
        listNode4 = (LinkedList)nodeArrayList2.get(0);
	if(listNode4 != null)
	{
	  listNode5.addAll(listNode4);
	}
        }
        trbracNode6 = (TRBrac)nodeArrayList3.get(0);

        pmaplistNode1 = new AMapList(tlbracNode2, null, listNode5, trbracNode6);
        }
	nodeList.add(pmaplistNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new177() /* reduce AAmaplist4MapList */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PMapList pmaplistNode1;
        {
            // Block
        TLBrac tlbracNode2;
        PMapExtendedInput pmapextendedinputNode3;
        LinkedList listNode5 = new LinkedList();
        TRBrac trbracNode6;
        tlbracNode2 = (TLBrac)nodeArrayList1.get(0);
        pmapextendedinputNode3 = (PMapExtendedInput)nodeArrayList2.get(0);
        {
            // Block
        LinkedList listNode4 = new LinkedList();
        listNode4 = (LinkedList)nodeArrayList3.get(0);
	if(listNode4 != null)
	{
	  listNode5.addAll(listNode4);
	}
        }
        trbracNode6 = (TRBrac)nodeArrayList4.get(0);

        pmaplistNode1 = new AMapList(tlbracNode2, pmapextendedinputNode3, listNode5, trbracNode6);
        }
	nodeList.add(pmaplistNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new178() /* reduce AMapListExtend */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PMapListExtend pmaplistextendNode1;
        {
            // Block
        TComma tcommaNode2;
        PMapExtendedInput pmapextendedinputNode3;
        tcommaNode2 = (TComma)nodeArrayList1.get(0);
        pmapextendedinputNode3 = (PMapExtendedInput)nodeArrayList2.get(0);

        pmaplistextendNode1 = new AMapListExtend(tcommaNode2, pmapextendedinputNode3);
        }
	nodeList.add(pmaplistextendNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new179() /* reduce AWordMapKey */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PMapKey pmapkeyNode1;
        {
            // Block
        TWord twordNode2;
        twordNode2 = (TWord)nodeArrayList1.get(0);

        pmapkeyNode1 = new AWordMapKey(twordNode2);
        }
	nodeList.add(pmapkeyNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new180() /* reduce AVarMapKey */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PMapKey pmapkeyNode1;
        {
            // Block
        PMapVar pmapvarNode2;
        pmapvarNode2 = (PMapVar)nodeArrayList1.get(0);

        pmapkeyNode1 = new AVarMapKey(pmapvarNode2);
        }
	nodeList.add(pmapkeyNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new181() /* reduce AListMapExtendedInput */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PMapExtendedInput pmapextendedinputNode1;
        {
            // Block
        PMapList pmaplistNode2;
        pmaplistNode2 = (PMapList)nodeArrayList1.get(0);

        pmapextendedinputNode1 = new AListMapExtendedInput(pmaplistNode2);
        }
	nodeList.add(pmapextendedinputNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new182() /* reduce AScalarMapExtendedInput */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PMapExtendedInput pmapextendedinputNode1;
        {
            // Block
        PMapBaseInput pmapbaseinputNode2;
        pmapbaseinputNode2 = (PMapBaseInput)nodeArrayList1.get(0);

        pmapextendedinputNode1 = new AScalarMapExtendedInput(pmapbaseinputNode2);
        }
	nodeList.add(pmapextendedinputNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new183() /* reduce ANestedMapMapExtendedInput */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PMapExtendedInput pmapextendedinputNode1;
        {
            // Block
        PMap pmapNode2;
        pmapNode2 = (PMap)nodeArrayList1.get(0);

        pmapextendedinputNode1 = new ANestedMapMapExtendedInput(pmapNode2);
        }
	nodeList.add(pmapextendedinputNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new184() /* reduce AMapVarMapBaseInput */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PMapBaseInput pmapbaseinputNode1;
        {
            // Block
        PMapVar pmapvarNode2;
        pmapvarNode2 = (PMapVar)nodeArrayList1.get(0);

        pmapbaseinputNode1 = new AMapVarMapBaseInput(pmapvarNode2);
        }
	nodeList.add(pmapbaseinputNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new185() /* reduce ANormalScalarMapBaseInput */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PMapBaseInput pmapbaseinputNode1;
        {
            // Block
        PScalar pscalarNode2;
        pscalarNode2 = (PScalar)nodeArrayList1.get(0);

        pmapbaseinputNode1 = new ANormalScalarMapBaseInput(pscalarNode2);
        }
	nodeList.add(pmapbaseinputNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new186() /* reduce AMapNegNumMapBaseInput */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PMapBaseInput pmapbaseinputNode1;
        {
            // Block
        PMapNegNum pmapnegnumNode2;
        pmapnegnumNode2 = (PMapNegNum)nodeArrayList1.get(0);

        pmapbaseinputNode1 = new AMapNegNumMapBaseInput(pmapnegnumNode2);
        }
	nodeList.add(pmapbaseinputNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new187() /* reduce AMapVar */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PMapVar pmapvarNode1;
        {
            // Block
        TLCurl tlcurlNode2;
        TId tidNode3;
        TRCurl trcurlNode4;
        tlcurlNode2 = (TLCurl)nodeArrayList1.get(0);
        tidNode3 = (TId)nodeArrayList2.get(0);
        trcurlNode4 = (TRCurl)nodeArrayList3.get(0);

        pmapvarNode1 = new AMapVar(tlcurlNode2, tidNode3, trcurlNode4);
        }
	nodeList.add(pmapvarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new188() /* reduce AMapNegNum */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PMapNegNum pmapnegnumNode1;
        {
            // Block
        TMinus tminusNode2;
        PDecimal pdecimalNode3;
        tminusNode2 = (TMinus)nodeArrayList1.get(0);
        pdecimalNode3 = (PDecimal)nodeArrayList2.get(0);

        pmapnegnumNode1 = new AMapNegNum(tminusNode2, pdecimalNode3);
        }
	nodeList.add(pmapnegnumNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new189() /* reduce ANumScalar */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PScalar pscalarNode1;
        {
            // Block
        PDecimal pdecimalNode2;
        pdecimalNode2 = (PDecimal)nodeArrayList1.get(0);

        pscalarNode1 = new ANumScalar(pdecimalNode2);
        }
	nodeList.add(pscalarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new190() /* reduce ABooleanScalar */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PScalar pscalarNode1;
        {
            // Block
        TBoolean tbooleanNode2;
        tbooleanNode2 = (TBoolean)nodeArrayList1.get(0);

        pscalarNode1 = new ABooleanScalar(tbooleanNode2);
        }
	nodeList.add(pscalarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new191() /* reduce ANullScalar */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PScalar pscalarNode1;
        {
            // Block
        TNull tnullNode2;
        tnullNode2 = (TNull)nodeArrayList1.get(0);

        pscalarNode1 = new ANullScalar(tnullNode2);
        }
	nodeList.add(pscalarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new192() /* reduce AWordOrIdScalar */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PScalar pscalarNode1;
        {
            // Block
        PWordOrId pwordoridNode2;
        pwordoridNode2 = (PWordOrId)nodeArrayList1.get(0);

        pscalarNode1 = new AWordOrIdScalar(pwordoridNode2);
        }
	nodeList.add(pscalarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new193() /* reduce AWordWordOrId */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PWordOrId pwordoridNode1;
        {
            // Block
        TWord twordNode2;
        twordNode2 = (TWord)nodeArrayList1.get(0);

        pwordoridNode1 = new AWordWordOrId(twordNode2);
        }
	nodeList.add(pwordoridNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new194() /* reduce AIdWordOrId */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PWordOrId pwordoridNode1;
        {
            // Block
        TId tidNode2;
        tidNode2 = (TId)nodeArrayList1.get(0);

        pwordoridNode1 = new AIdWordOrId(tidNode2);
        }
	nodeList.add(pwordoridNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new195() /* reduce AWholeDecimalDecimal */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PDecimal pdecimalNode1;
        {
            // Block
        PWholeDecimal pwholedecimalNode2;
        pwholedecimalNode2 = (PWholeDecimal)nodeArrayList1.get(0);

        pdecimalNode1 = new AWholeDecimalDecimal(pwholedecimalNode2);
        }
	nodeList.add(pdecimalNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new196() /* reduce AFractionDecimalDecimal */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PDecimal pdecimalNode1;
        {
            // Block
        PFractionDecimal pfractiondecimalNode2;
        pfractiondecimalNode2 = (PFractionDecimal)nodeArrayList1.get(0);

        pdecimalNode1 = new AFractionDecimalDecimal(pfractiondecimalNode2);
        }
	nodeList.add(pdecimalNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new197() /* reduce AAwholedecimal1WholeDecimal */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PWholeDecimal pwholedecimalNode1;
        {
            // Block
        TNumber tnumberNode2;
        @SuppressWarnings("unused") Object nullNode3 = null;
        @SuppressWarnings("unused") Object nullNode4 = null;
        tnumberNode2 = (TNumber)nodeArrayList1.get(0);

        pwholedecimalNode1 = new AWholeDecimal(tnumberNode2, null, null);
        }
	nodeList.add(pwholedecimalNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new198() /* reduce AAwholedecimal2WholeDecimal */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PWholeDecimal pwholedecimalNode1;
        {
            // Block
        TNumber tnumberNode2;
        TDot tdotNode3;
        @SuppressWarnings("unused") Object nullNode4 = null;
        tnumberNode2 = (TNumber)nodeArrayList1.get(0);
        tdotNode3 = (TDot)nodeArrayList2.get(0);

        pwholedecimalNode1 = new AWholeDecimal(tnumberNode2, tdotNode3, null);
        }
	nodeList.add(pwholedecimalNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new199() /* reduce AAwholedecimal3WholeDecimal */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PWholeDecimal pwholedecimalNode1;
        {
            // Block
        TNumber tnumberNode2;
        @SuppressWarnings("unused") Object nullNode3 = null;
        TNumber tnumberNode4;
        tnumberNode2 = (TNumber)nodeArrayList1.get(0);
        tnumberNode4 = (TNumber)nodeArrayList2.get(0);

        pwholedecimalNode1 = new AWholeDecimal(tnumberNode2, null, tnumberNode4);
        }
	nodeList.add(pwholedecimalNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new200() /* reduce AAwholedecimal4WholeDecimal */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PWholeDecimal pwholedecimalNode1;
        {
            // Block
        TNumber tnumberNode2;
        TDot tdotNode3;
        TNumber tnumberNode4;
        tnumberNode2 = (TNumber)nodeArrayList1.get(0);
        tdotNode3 = (TDot)nodeArrayList2.get(0);
        tnumberNode4 = (TNumber)nodeArrayList3.get(0);

        pwholedecimalNode1 = new AWholeDecimal(tnumberNode2, tdotNode3, tnumberNode4);
        }
	nodeList.add(pwholedecimalNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new201() /* reduce AFractionDecimal */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        PFractionDecimal pfractiondecimalNode1;
        {
            // Block
        TDot tdotNode2;
        TNumber tnumberNode3;
        tdotNode2 = (TDot)nodeArrayList1.get(0);
        tnumberNode3 = (TNumber)nodeArrayList2.get(0);

        pfractiondecimalNode1 = new AFractionDecimal(tdotNode2, tnumberNode3);
        }
	nodeList.add(pfractiondecimalNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new202() /* reduce ATerminal$Routine */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        LinkedList listNode2 = new LinkedList();
        {
            // Block
        PRoutine proutineNode1;
        proutineNode1 = (PRoutine)nodeArrayList1.get(0);
	if(proutineNode1 != null)
	{
	  listNode2.add(proutineNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new203() /* reduce ANonTerminal$Routine */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        LinkedList listNode3 = new LinkedList();
        {
            // Block
        LinkedList listNode1 = new LinkedList();
        PRoutine proutineNode2;
        listNode1 = (LinkedList)nodeArrayList1.get(0);
        proutineNode2 = (PRoutine)nodeArrayList2.get(0);
	if(listNode1 != null)
	{
	  listNode3.addAll(listNode1);
	}
	if(proutineNode2 != null)
	{
	  listNode3.add(proutineNode2);
	}
        }
	nodeList.add(listNode3);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new204() /* reduce ATerminal$Semicolon */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        LinkedList listNode2 = new LinkedList();
        {
            // Block
        TSemicolon tsemicolonNode1;
        tsemicolonNode1 = (TSemicolon)nodeArrayList1.get(0);
	if(tsemicolonNode1 != null)
	{
	  listNode2.add(tsemicolonNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new205() /* reduce ANonTerminal$Semicolon */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        LinkedList listNode3 = new LinkedList();
        {
            // Block
        LinkedList listNode1 = new LinkedList();
        TSemicolon tsemicolonNode2;
        listNode1 = (LinkedList)nodeArrayList1.get(0);
        tsemicolonNode2 = (TSemicolon)nodeArrayList2.get(0);
	if(listNode1 != null)
	{
	  listNode3.addAll(listNode1);
	}
	if(tsemicolonNode2 != null)
	{
	  listNode3.add(tsemicolonNode2);
	}
        }
	nodeList.add(listNode3);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new206() /* reduce ATerminal$Otherscript */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        LinkedList listNode2 = new LinkedList();
        {
            // Block
        POtherscript potherscriptNode1;
        potherscriptNode1 = (POtherscript)nodeArrayList1.get(0);
	if(potherscriptNode1 != null)
	{
	  listNode2.add(potherscriptNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new207() /* reduce ANonTerminal$Otherscript */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        LinkedList listNode3 = new LinkedList();
        {
            // Block
        LinkedList listNode1 = new LinkedList();
        POtherscript potherscriptNode2;
        listNode1 = (LinkedList)nodeArrayList1.get(0);
        potherscriptNode2 = (POtherscript)nodeArrayList2.get(0);
	if(listNode1 != null)
	{
	  listNode3.addAll(listNode1);
	}
	if(potherscriptNode2 != null)
	{
	  listNode3.add(potherscriptNode2);
	}
        }
	nodeList.add(listNode3);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new208() /* reduce ATerminal$SubRoutineOptions */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        LinkedList listNode2 = new LinkedList();
        {
            // Block
        PSubRoutineOptions psubroutineoptionsNode1;
        psubroutineoptionsNode1 = (PSubRoutineOptions)nodeArrayList1.get(0);
	if(psubroutineoptionsNode1 != null)
	{
	  listNode2.add(psubroutineoptionsNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new209() /* reduce ANonTerminal$SubRoutineOptions */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        LinkedList listNode3 = new LinkedList();
        {
            // Block
        LinkedList listNode1 = new LinkedList();
        PSubRoutineOptions psubroutineoptionsNode2;
        listNode1 = (LinkedList)nodeArrayList1.get(0);
        psubroutineoptionsNode2 = (PSubRoutineOptions)nodeArrayList2.get(0);
	if(listNode1 != null)
	{
	  listNode3.addAll(listNode1);
	}
	if(psubroutineoptionsNode2 != null)
	{
	  listNode3.add(psubroutineoptionsNode2);
	}
        }
	nodeList.add(listNode3);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new210() /* reduce ATerminal$OtherExpr */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        LinkedList listNode2 = new LinkedList();
        {
            // Block
        POtherExpr potherexprNode1;
        potherexprNode1 = (POtherExpr)nodeArrayList1.get(0);
	if(potherexprNode1 != null)
	{
	  listNode2.add(potherexprNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new211() /* reduce ANonTerminal$OtherExpr */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        LinkedList listNode3 = new LinkedList();
        {
            // Block
        LinkedList listNode1 = new LinkedList();
        POtherExpr potherexprNode2;
        listNode1 = (LinkedList)nodeArrayList1.get(0);
        potherexprNode2 = (POtherExpr)nodeArrayList2.get(0);
	if(listNode1 != null)
	{
	  listNode3.addAll(listNode1);
	}
	if(potherexprNode2 != null)
	{
	  listNode3.add(potherexprNode2);
	}
        }
	nodeList.add(listNode3);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new212() /* reduce ATerminal$OtherOpInput */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        LinkedList listNode2 = new LinkedList();
        {
            // Block
        POtherOpInput potheropinputNode1;
        potheropinputNode1 = (POtherOpInput)nodeArrayList1.get(0);
	if(potheropinputNode1 != null)
	{
	  listNode2.add(potheropinputNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new213() /* reduce ANonTerminal$OtherOpInput */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        LinkedList listNode3 = new LinkedList();
        {
            // Block
        LinkedList listNode1 = new LinkedList();
        POtherOpInput potheropinputNode2;
        listNode1 = (LinkedList)nodeArrayList1.get(0);
        potheropinputNode2 = (POtherOpInput)nodeArrayList2.get(0);
	if(listNode1 != null)
	{
	  listNode3.addAll(listNode1);
	}
	if(potheropinputNode2 != null)
	{
	  listNode3.add(potheropinputNode2);
	}
        }
	nodeList.add(listNode3);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new214() /* reduce ATerminal$Othercol */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        LinkedList listNode2 = new LinkedList();
        {
            // Block
        POthercol pothercolNode1;
        pothercolNode1 = (POthercol)nodeArrayList1.get(0);
	if(pothercolNode1 != null)
	{
	  listNode2.add(pothercolNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new215() /* reduce ANonTerminal$Othercol */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        LinkedList listNode3 = new LinkedList();
        {
            // Block
        LinkedList listNode1 = new LinkedList();
        POthercol pothercolNode2;
        listNode1 = (LinkedList)nodeArrayList1.get(0);
        pothercolNode2 = (POthercol)nodeArrayList2.get(0);
	if(listNode1 != null)
	{
	  listNode3.addAll(listNode1);
	}
	if(pothercolNode2 != null)
	{
	  listNode3.add(pothercolNode2);
	}
        }
	nodeList.add(listNode3);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new216() /* reduce ATerminal$RepeatingAndComparison */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        LinkedList listNode2 = new LinkedList();
        {
            // Block
        PRepeatingAndComparison prepeatingandcomparisonNode1;
        prepeatingandcomparisonNode1 = (PRepeatingAndComparison)nodeArrayList1.get(0);
	if(prepeatingandcomparisonNode1 != null)
	{
	  listNode2.add(prepeatingandcomparisonNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new217() /* reduce ANonTerminal$RepeatingAndComparison */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        LinkedList listNode3 = new LinkedList();
        {
            // Block
        LinkedList listNode1 = new LinkedList();
        PRepeatingAndComparison prepeatingandcomparisonNode2;
        listNode1 = (LinkedList)nodeArrayList1.get(0);
        prepeatingandcomparisonNode2 = (PRepeatingAndComparison)nodeArrayList2.get(0);
	if(listNode1 != null)
	{
	  listNode3.addAll(listNode1);
	}
	if(prepeatingandcomparisonNode2 != null)
	{
	  listNode3.add(prepeatingandcomparisonNode2);
	}
        }
	nodeList.add(listNode3);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new218() /* reduce ATerminal$RepeatingOrComparison */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        LinkedList listNode2 = new LinkedList();
        {
            // Block
        PRepeatingOrComparison prepeatingorcomparisonNode1;
        prepeatingorcomparisonNode1 = (PRepeatingOrComparison)nodeArrayList1.get(0);
	if(prepeatingorcomparisonNode1 != null)
	{
	  listNode2.add(prepeatingorcomparisonNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new219() /* reduce ANonTerminal$RepeatingOrComparison */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        LinkedList listNode3 = new LinkedList();
        {
            // Block
        LinkedList listNode1 = new LinkedList();
        PRepeatingOrComparison prepeatingorcomparisonNode2;
        listNode1 = (LinkedList)nodeArrayList1.get(0);
        prepeatingorcomparisonNode2 = (PRepeatingOrComparison)nodeArrayList2.get(0);
	if(listNode1 != null)
	{
	  listNode3.addAll(listNode1);
	}
	if(prepeatingorcomparisonNode2 != null)
	{
	  listNode3.add(prepeatingorcomparisonNode2);
	}
        }
	nodeList.add(listNode3);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new220() /* reduce ATerminal$OtherMapEntry */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        LinkedList listNode2 = new LinkedList();
        {
            // Block
        POtherMapEntry pothermapentryNode1;
        pothermapentryNode1 = (POtherMapEntry)nodeArrayList1.get(0);
	if(pothermapentryNode1 != null)
	{
	  listNode2.add(pothermapentryNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new221() /* reduce ANonTerminal$OtherMapEntry */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        LinkedList listNode3 = new LinkedList();
        {
            // Block
        LinkedList listNode1 = new LinkedList();
        POtherMapEntry pothermapentryNode2;
        listNode1 = (LinkedList)nodeArrayList1.get(0);
        pothermapentryNode2 = (POtherMapEntry)nodeArrayList2.get(0);
	if(listNode1 != null)
	{
	  listNode3.addAll(listNode1);
	}
	if(pothermapentryNode2 != null)
	{
	  listNode3.add(pothermapentryNode2);
	}
        }
	nodeList.add(listNode3);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new222() /* reduce ATerminal$MapListExtend */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        LinkedList listNode2 = new LinkedList();
        {
            // Block
        PMapListExtend pmaplistextendNode1;
        pmaplistextendNode1 = (PMapListExtend)nodeArrayList1.get(0);
	if(pmaplistextendNode1 != null)
	{
	  listNode2.add(pmaplistextendNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList new223() /* reduce ANonTerminal$MapListExtend */
    {
        @SuppressWarnings("hiding") ArrayList nodeList = new ArrayList();

        @SuppressWarnings("unused") ArrayList nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList nodeArrayList1 = pop();
        LinkedList listNode3 = new LinkedList();
        {
            // Block
        LinkedList listNode1 = new LinkedList();
        PMapListExtend pmaplistextendNode2;
        listNode1 = (LinkedList)nodeArrayList1.get(0);
        pmaplistextendNode2 = (PMapListExtend)nodeArrayList2.get(0);
	if(listNode1 != null)
	{
	  listNode3.addAll(listNode1);
	}
	if(pmaplistextendNode2 != null)
	{
	  listNode3.add(pmaplistextendNode2);
	}
        }
	nodeList.add(listNode3);
        return nodeList;
    }



    private static int[][][] actionTable;
/*      {
			{{-1, REDUCE, 0}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {3, SHIFT, 4}, {4, SHIFT, 5}, {5, SHIFT, 6}, {6, SHIFT, 7}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 11}, {21, SHIFT, 12}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, REDUCE, 191}, },
			{{-1, REDUCE, 197}, {1, SHIFT, 56}, {5, SHIFT, 57}, },
			{{-1, REDUCE, 190}, },
			{{-1, ERROR, 4}, {32, SHIFT, 58}, },
			{{-1, REDUCE, 194}, {20, SHIFT, 59}, {21, SHIFT, 60}, {34, SHIFT, 61}, },
			{{-1, ERROR, 6}, {1, SHIFT, 62}, },
			{{-1, REDUCE, 204}, },
			{{-1, ERROR, 8}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 63}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {21, SHIFT, 64}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, ERROR, 9}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 63}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {21, SHIFT, 64}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, REDUCE, 193}, },
			{{-1, REDUCE, 6}, {6, REDUCE, 28}, {32, REDUCE, 28}, },
			{{-1, ERROR, 12}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 5}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 67}, {21, SHIFT, 12}, {22, SHIFT, 68}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, ERROR, 13}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 80}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 67}, {15, SHIFT, 81}, {21, SHIFT, 82}, {23, SHIFT, 13}, {24, SHIFT, 83}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, ERROR, 14}, {12, SHIFT, 92}, {15, SHIFT, 93}, {25, SHIFT, 94}, {26, SHIFT, 95}, },
			{{-1, ERROR, 15}, {4, SHIFT, 101}, },
			{{-1, ERROR, 16}, {4, SHIFT, 102}, },
			{{-1, REDUCE, 161}, },
			{{-1, ERROR, 18}, {35, ACCEPT, -1}, },
			{{-1, REDUCE, 202}, },
			{{-1, REDUCE, 2}, },
			{{-1, ERROR, 21}, {6, SHIFT, 7}, },
			{{-1, ERROR, 22}, {6, SHIFT, 7}, },
			{{-1, ERROR, 23}, {6, SHIFT, 7}, },
			{{-1, REDUCE, 8}, {32, SHIFT, 106}, },
			{{-1, REDUCE, 22}, },
			{{-1, REDUCE, 24}, {17, SHIFT, 109}, },
			{{-1, REDUCE, 29}, {8, SHIFT, 110}, {9, SHIFT, 111}, {10, SHIFT, 112}, {11, SHIFT, 113}, {14, SHIFT, 114}, {16, SHIFT, 115}, },
			{{-1, REDUCE, 36}, },
			{{-1, REDUCE, 35}, {18, SHIFT, 116}, {19, SHIFT, 117}, },
			{{-1, REDUCE, 40}, },
			{{-1, REDUCE, 41}, },
			{{-1, REDUCE, 39}, },
			{{-1, REDUCE, 46}, },
			{{-1, REDUCE, 51}, },
			{{-1, REDUCE, 54}, },
			{{-1, REDUCE, 55}, },
			{{-1, REDUCE, 47}, },
			{{-1, REDUCE, 52}, },
			{{-1, REDUCE, 23}, },
			{{-1, REDUCE, 134}, },
			{{-1, REDUCE, 135}, {18, SHIFT, 118}, {19, SHIFT, 119}, },
			{{-1, REDUCE, 139}, },
			{{-1, REDUCE, 140}, },
			{{-1, REDUCE, 138}, {18, SHIFT, 120}, {19, SHIFT, 121}, },
			{{-1, REDUCE, 50}, },
			{{-1, REDUCE, 48}, },
			{{-1, REDUCE, 49}, },
			{{-1, REDUCE, 45}, },
			{{-1, REDUCE, 44}, },
			{{-1, REDUCE, 192}, },
			{{-1, REDUCE, 189}, },
			{{-1, REDUCE, 195}, },
			{{-1, REDUCE, 196}, },
			{{-1, REDUCE, 1}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {3, SHIFT, 4}, {4, SHIFT, 5}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 11}, {21, SHIFT, 12}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, REDUCE, 7}, {6, SHIFT, 123}, },
			{{-1, REDUCE, 199}, },
			{{-1, REDUCE, 198}, {1, SHIFT, 124}, },
			{{-1, ERROR, 58}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 5}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 67}, {21, SHIFT, 12}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, ERROR, 59}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 127}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 67}, {21, SHIFT, 12}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, ERROR, 60}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 129}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 67}, {15, SHIFT, 130}, {21, SHIFT, 82}, {22, SHIFT, 131}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, REDUCE, 27}, },
			{{-1, REDUCE, 201}, },
			{{-1, REDUCE, 194}, {21, SHIFT, 60}, },
			{{-1, ERROR, 64}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 127}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 67}, {21, SHIFT, 12}, {22, SHIFT, 68}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, REDUCE, 43}, },
			{{-1, REDUCE, 42}, },
			{{-1, REDUCE, 28}, },
			{{-1, REDUCE, 56}, },
			{{-1, ERROR, 69}, {6, SHIFT, 140}, {22, SHIFT, 141}, },
			{{-1, ERROR, 70}, {6, SHIFT, 142}, {22, SHIFT, 143}, },
			{{-1, REDUCE, 18}, },
			{{-1, REDUCE, 19}, },
			{{-1, REDUCE, 20}, },
			{{-1, REDUCE, 208}, },
			{{-1, ERROR, 75}, {22, SHIFT, 144}, },
			{{-1, ERROR, 76}, {6, SHIFT, 145}, {15, SHIFT, 146}, {32, SHIFT, 106}, },
			{{-1, REDUCE, 22}, {22, SHIFT, 150}, },
			{{-1, REDUCE, 23}, {22, SHIFT, 151}, },
			{{-1, REDUCE, 21}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 5}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 67}, {21, SHIFT, 12}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, REDUCE, 194}, {20, SHIFT, 156}, {21, SHIFT, 60}, {34, SHIFT, 61}, },
			{{-1, ERROR, 81}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 80}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 67}, {21, SHIFT, 82}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, ERROR, 82}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 160}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 67}, {21, SHIFT, 82}, {22, SHIFT, 68}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, REDUCE, 72}, },
			{{-1, ERROR, 84}, {15, SHIFT, 81}, {24, SHIFT, 164}, },
			{{-1, REDUCE, 214}, },
			{{-1, ERROR, 86}, {15, SHIFT, 81}, {24, SHIFT, 166}, },
			{{-1, ERROR, 87}, {15, SHIFT, 81}, {24, SHIFT, 168}, },
			{{-1, REDUCE, 88}, },
			{{-1, REDUCE, 87}, },
			{{-1, REDUCE, 86}, },
			{{-1, ERROR, 91}, {15, SHIFT, 81}, {24, SHIFT, 170}, },
			{{-1, REDUCE, 179}, },
			{{-1, ERROR, 93}, {12, SHIFT, 92}, {25, SHIFT, 94}, },
			{{-1, ERROR, 94}, {4, SHIFT, 173}, },
			{{-1, REDUCE, 164}, },
			{{-1, ERROR, 96}, {15, SHIFT, 93}, {26, SHIFT, 174}, },
			{{-1, REDUCE, 220}, },
			{{-1, ERROR, 98}, {7, SHIFT, 176}, },
			{{-1, REDUCE, 180}, },
			{{-1, ERROR, 100}, {15, SHIFT, 93}, {26, SHIFT, 177}, },
			{{-1, REDUCE, 162}, },
			{{-1, REDUCE, 163}, },
			{{-1, REDUCE, 3}, {6, SHIFT, 123}, },
			{{-1, REDUCE, 4}, {6, SHIFT, 123}, },
			{{-1, REDUCE, 5}, {6, SHIFT, 123}, },
			{{-1, ERROR, 106}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 127}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 67}, {21, SHIFT, 12}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, REDUCE, 206}, },
			{{-1, REDUCE, 9}, {32, SHIFT, 106}, },
			{{-1, ERROR, 109}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 63}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {21, SHIFT, 181}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, ERROR, 110}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 63}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {21, SHIFT, 181}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, ERROR, 111}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 63}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {21, SHIFT, 181}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, ERROR, 112}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 63}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {21, SHIFT, 181}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, ERROR, 113}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 63}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {21, SHIFT, 64}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, ERROR, 114}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 63}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {21, SHIFT, 181}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, ERROR, 115}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 63}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {21, SHIFT, 181}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, ERROR, 116}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 63}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {21, SHIFT, 181}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, ERROR, 117}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 63}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {21, SHIFT, 181}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, ERROR, 118}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 63}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {21, SHIFT, 195}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, ERROR, 119}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 63}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {21, SHIFT, 195}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, ERROR, 120}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 63}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {21, SHIFT, 181}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, ERROR, 121}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 63}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {21, SHIFT, 181}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, REDUCE, 203}, },
			{{-1, REDUCE, 205}, },
			{{-1, REDUCE, 200}, },
			{{-1, REDUCE, 12}, },
			{{-1, REDUCE, 13}, },
			{{-1, REDUCE, 194}, {21, SHIFT, 60}, {34, SHIFT, 61}, },
			{{-1, REDUCE, 11}, },
			{{-1, REDUCE, 194}, {20, SHIFT, 202}, {21, SHIFT, 60}, {34, SHIFT, 61}, },
			{{-1, ERROR, 130}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 129}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 67}, {21, SHIFT, 82}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, REDUCE, 59}, {31, SHIFT, 204}, },
			{{-1, REDUCE, 68}, },
			{{-1, ERROR, 133}, {15, SHIFT, 130}, {22, SHIFT, 206}, },
			{{-1, REDUCE, 212}, },
			{{-1, REDUCE, 67}, },
			{{-1, REDUCE, 69}, },
			{{-1, REDUCE, 70}, },
			{{-1, ERROR, 138}, {15, SHIFT, 130}, {22, SHIFT, 208}, },
			{{-1, ERROR, 139}, {15, SHIFT, 146}, },
			{{-1, REDUCE, 17}, },
			{{-1, REDUCE, 26}, },
			{{-1, REDUCE, 16}, },
			{{-1, REDUCE, 37}, },
			{{-1, REDUCE, 25}, },
			{{-1, REDUCE, 15}, },
			{{-1, ERROR, 146}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 127}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 67}, {21, SHIFT, 12}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, REDUCE, 210}, },
			{{-1, REDUCE, 14}, {32, SHIFT, 106}, },
			{{-1, ERROR, 149}, {15, SHIFT, 146}, {22, SHIFT, 211}, },
			{{-1, REDUCE, 53}, },
			{{-1, REDUCE, 141}, },
			{{-1, ERROR, 152}, {6, SHIFT, 140}, },
			{{-1, ERROR, 153}, {6, SHIFT, 142}, },
			{{-1, REDUCE, 209}, },
			{{-1, ERROR, 155}, {6, SHIFT, 145}, {32, SHIFT, 106}, },
			{{-1, ERROR, 156}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 213}, {5, SHIFT, 6}, {12, SHIFT, 10}, },
			{{-1, REDUCE, 80}, },
			{{-1, REDUCE, 81}, },
			{{-1, REDUCE, 82}, },
			{{-1, REDUCE, 194}, {20, SHIFT, 215}, {21, SHIFT, 60}, {34, SHIFT, 61}, },
			{{-1, ERROR, 161}, {6, SHIFT, 145}, {15, SHIFT, 216}, {32, SHIFT, 106}, },
			{{-1, ERROR, 162}, {15, SHIFT, 217}, },
			{{-1, ERROR, 163}, {15, SHIFT, 218}, },
			{{-1, REDUCE, 73}, },
			{{-1, ERROR, 165}, {15, SHIFT, 81}, {24, SHIFT, 219}, },
			{{-1, REDUCE, 74}, },
			{{-1, ERROR, 167}, {15, SHIFT, 81}, {24, SHIFT, 220}, },
			{{-1, REDUCE, 75}, },
			{{-1, ERROR, 169}, {15, SHIFT, 81}, {24, SHIFT, 221}, },
			{{-1, REDUCE, 76}, },
			{{-1, REDUCE, 215}, },
			{{-1, REDUCE, 169}, },
			{{-1, ERROR, 173}, {26, SHIFT, 222}, },
			{{-1, REDUCE, 165}, },
			{{-1, ERROR, 175}, {15, SHIFT, 93}, {26, SHIFT, 223}, },
			{{-1, ERROR, 176}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 63}, {5, SHIFT, 6}, {9, SHIFT, 224}, {12, SHIFT, 10}, {23, SHIFT, 225}, {25, SHIFT, 226}, },
			{{-1, REDUCE, 166}, },
			{{-1, REDUCE, 221}, },
			{{-1, REDUCE, 10}, },
			{{-1, REDUCE, 207}, },
			{{-1, ERROR, 181}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 127}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 67}, {21, SHIFT, 12}, {22, SHIFT, 68}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, REDUCE, 160}, },
			{{-1, REDUCE, 35}, },
			{{-1, REDUCE, 30}, },
			{{-1, REDUCE, 31}, },
			{{-1, REDUCE, 34}, },
			{{-1, REDUCE, 38}, },
			{{-1, REDUCE, 32}, },
			{{-1, REDUCE, 33}, },
			{{-1, ERROR, 190}, {17, SHIFT, 109}, },
			{{-1, REDUCE, 35}, {6, REDUCE, 142}, {15, REDUCE, 142}, {18, SHIFT, 237}, {22, REDUCE, 142}, {24, REDUCE, 142}, {32, REDUCE, 142}, },
			{{-1, REDUCE, 144}, {18, SHIFT, 237}, },
			{{-1, REDUCE, 35}, {6, REDUCE, 151}, {15, REDUCE, 151}, {19, SHIFT, 241}, {22, REDUCE, 151}, {24, REDUCE, 151}, {32, REDUCE, 151}, },
			{{-1, REDUCE, 153}, {19, SHIFT, 241}, },
			{{-1, ERROR, 195}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 127}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 67}, {21, SHIFT, 12}, {22, SHIFT, 68}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, REDUCE, 137}, },
			{{-1, REDUCE, 136}, },
			{{-1, REDUCE, 35}, {6, REDUCE, 146}, {15, REDUCE, 146}, {18, SHIFT, 237}, {22, REDUCE, 146}, {24, REDUCE, 146}, {32, REDUCE, 146}, },
			{{-1, REDUCE, 148}, {18, SHIFT, 237}, },
			{{-1, REDUCE, 35}, {6, REDUCE, 155}, {15, REDUCE, 155}, {19, SHIFT, 241}, {22, REDUCE, 155}, {24, REDUCE, 155}, {32, REDUCE, 155}, },
			{{-1, REDUCE, 157}, {19, SHIFT, 241}, },
			{{-1, ERROR, 202}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 213}, {5, SHIFT, 6}, {12, SHIFT, 10}, {23, SHIFT, 13}, },
			{{-1, REDUCE, 71}, },
			{{-1, ERROR, 204}, {21, SHIFT, 250}, },
			{{-1, REDUCE, 63}, },
			{{-1, REDUCE, 60}, {31, SHIFT, 204}, },
			{{-1, ERROR, 207}, {15, SHIFT, 130}, {22, SHIFT, 252}, },
			{{-1, REDUCE, 61}, {31, SHIFT, 204}, },
			{{-1, REDUCE, 213}, },
			{{-1, REDUCE, 58}, },
			{{-1, REDUCE, 57}, },
			{{-1, REDUCE, 211}, },
			{{-1, REDUCE, 194}, },
			{{-1, REDUCE, 84}, },
			{{-1, ERROR, 215}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 127}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 67}, {21, SHIFT, 12}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, ERROR, 216}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 127}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 67}, {21, SHIFT, 12}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, {33, SHIFT, 255}, },
			{{-1, ERROR, 217}, {33, SHIFT, 256}, },
			{{-1, ERROR, 218}, {33, SHIFT, 257}, },
			{{-1, REDUCE, 77}, },
			{{-1, REDUCE, 78}, },
			{{-1, REDUCE, 79}, },
			{{-1, REDUCE, 187}, },
			{{-1, REDUCE, 167}, },
			{{-1, ERROR, 224}, {1, SHIFT, 2}, {5, SHIFT, 6}, },
			{{-1, ERROR, 225}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 213}, {5, SHIFT, 6}, {9, SHIFT, 224}, {12, SHIFT, 10}, {15, SHIFT, 259}, {23, SHIFT, 225}, {24, SHIFT, 260}, {25, SHIFT, 226}, },
			{{-1, ERROR, 226}, {4, SHIFT, 173}, {12, SHIFT, 92}, {15, SHIFT, 93}, {25, SHIFT, 94}, {26, SHIFT, 95}, },
			{{-1, REDUCE, 173}, },
			{{-1, REDUCE, 172}, },
			{{-1, REDUCE, 168}, },
			{{-1, REDUCE, 171}, },
			{{-1, REDUCE, 170}, },
			{{-1, REDUCE, 184}, },
			{{-1, REDUCE, 186}, },
			{{-1, REDUCE, 185}, },
			{{-1, ERROR, 235}, {22, SHIFT, 143}, },
			{{-1, ERROR, 236}, {15, SHIFT, 146}, {32, SHIFT, 106}, },
			{{-1, ERROR, 237}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 63}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {21, SHIFT, 181}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, REDUCE, 216}, },
			{{-1, REDUCE, 143}, {18, SHIFT, 237}, },
			{{-1, REDUCE, 145}, {18, SHIFT, 237}, },
			{{-1, ERROR, 241}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 63}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {21, SHIFT, 181}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, REDUCE, 218}, },
			{{-1, REDUCE, 152}, {19, SHIFT, 241}, },
			{{-1, REDUCE, 154}, {19, SHIFT, 241}, },
			{{-1, REDUCE, 147}, {18, SHIFT, 237}, },
			{{-1, REDUCE, 149}, {18, SHIFT, 237}, },
			{{-1, REDUCE, 156}, {19, SHIFT, 241}, },
			{{-1, REDUCE, 158}, {19, SHIFT, 241}, },
			{{-1, REDUCE, 83}, },
			{{-1, ERROR, 250}, {23, SHIFT, 13}, },
			{{-1, REDUCE, 64}, },
			{{-1, REDUCE, 62}, {31, SHIFT, 204}, },
			{{-1, REDUCE, 65}, },
			{{-1, REDUCE, 44}, {15, REDUCE, 84}, },
			{{-1, ERROR, 255}, {15, SHIFT, 273}, },
			{{-1, ERROR, 256}, {15, SHIFT, 274}, },
			{{-1, ERROR, 257}, {15, SHIFT, 275}, },
			{{-1, REDUCE, 188}, },
			{{-1, ERROR, 259}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 213}, {5, SHIFT, 6}, {9, SHIFT, 224}, {12, SHIFT, 10}, {23, SHIFT, 225}, {25, SHIFT, 226}, },
			{{-1, REDUCE, 174}, },
			{{-1, REDUCE, 183}, },
			{{-1, REDUCE, 181}, },
			{{-1, REDUCE, 222}, },
			{{-1, ERROR, 264}, {15, SHIFT, 259}, {24, SHIFT, 277}, },
			{{-1, REDUCE, 182}, },
			{{-1, ERROR, 266}, {15, SHIFT, 259}, {24, SHIFT, 279}, },
			{{-1, REDUCE, 150}, },
			{{-1, REDUCE, 217}, },
			{{-1, REDUCE, 159}, },
			{{-1, REDUCE, 219}, },
			{{-1, ERROR, 271}, {22, SHIFT, 281}, },
			{{-1, REDUCE, 66}, },
			{{-1, ERROR, 273}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 80}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 67}, {21, SHIFT, 82}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, ERROR, 274}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 80}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 67}, {21, SHIFT, 82}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, ERROR, 275}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 80}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 67}, {21, SHIFT, 82}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, REDUCE, 178}, },
			{{-1, REDUCE, 175}, },
			{{-1, ERROR, 278}, {15, SHIFT, 259}, {24, SHIFT, 291}, },
			{{-1, REDUCE, 176}, },
			{{-1, REDUCE, 223}, },
			{{-1, REDUCE, 85}, },
			{{-1, ERROR, 282}, {15, SHIFT, 292}, {22, SHIFT, 293}, },
			{{-1, ERROR, 283}, {15, SHIFT, 294}, {22, SHIFT, 295}, },
			{{-1, ERROR, 284}, {15, SHIFT, 296}, {22, SHIFT, 297}, },
			{{-1, ERROR, 285}, {15, SHIFT, 298}, {22, SHIFT, 299}, },
			{{-1, ERROR, 286}, {15, SHIFT, 300}, {22, SHIFT, 301}, },
			{{-1, ERROR, 287}, {15, SHIFT, 302}, {22, SHIFT, 303}, },
			{{-1, ERROR, 288}, {15, SHIFT, 304}, {22, SHIFT, 305}, },
			{{-1, ERROR, 289}, {15, SHIFT, 306}, {22, SHIFT, 307}, },
			{{-1, ERROR, 290}, {15, SHIFT, 308}, {22, SHIFT, 309}, },
			{{-1, REDUCE, 177}, },
			{{-1, ERROR, 292}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 80}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 67}, {17, SHIFT, 310}, {21, SHIFT, 82}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, REDUCE, 89}, },
			{{-1, ERROR, 294}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 80}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 67}, {17, SHIFT, 314}, {21, SHIFT, 82}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, REDUCE, 90}, },
			{{-1, ERROR, 296}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 80}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 67}, {17, SHIFT, 318}, {21, SHIFT, 82}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, REDUCE, 91}, },
			{{-1, ERROR, 298}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 80}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 67}, {17, SHIFT, 322}, {21, SHIFT, 82}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, REDUCE, 92}, },
			{{-1, ERROR, 300}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 80}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 67}, {17, SHIFT, 326}, {21, SHIFT, 82}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, REDUCE, 93}, },
			{{-1, ERROR, 302}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 80}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 67}, {17, SHIFT, 330}, {21, SHIFT, 82}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, REDUCE, 94}, },
			{{-1, ERROR, 304}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 80}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 67}, {17, SHIFT, 334}, {21, SHIFT, 82}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, REDUCE, 95}, },
			{{-1, ERROR, 306}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 80}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 67}, {17, SHIFT, 338}, {21, SHIFT, 82}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, REDUCE, 96}, },
			{{-1, ERROR, 308}, {0, SHIFT, 1}, {1, SHIFT, 2}, {2, SHIFT, 3}, {4, SHIFT, 80}, {5, SHIFT, 6}, {8, SHIFT, 8}, {9, SHIFT, 9}, {12, SHIFT, 10}, {13, SHIFT, 67}, {17, SHIFT, 342}, {21, SHIFT, 82}, {23, SHIFT, 13}, {25, SHIFT, 14}, {27, SHIFT, 15}, {28, SHIFT, 16}, {29, SHIFT, 17}, },
			{{-1, REDUCE, 97}, },
			{{-1, ERROR, 310}, {22, SHIFT, 346}, },
			{{-1, ERROR, 311}, {22, SHIFT, 347}, },
			{{-1, ERROR, 312}, {22, SHIFT, 348}, },
			{{-1, ERROR, 313}, {22, SHIFT, 349}, },
			{{-1, ERROR, 314}, {22, SHIFT, 350}, },
			{{-1, ERROR, 315}, {22, SHIFT, 351}, },
			{{-1, ERROR, 316}, {22, SHIFT, 352}, },
			{{-1, ERROR, 317}, {22, SHIFT, 353}, },
			{{-1, ERROR, 318}, {22, SHIFT, 354}, },
			{{-1, ERROR, 319}, {22, SHIFT, 355}, },
			{{-1, ERROR, 320}, {22, SHIFT, 356}, },
			{{-1, ERROR, 321}, {22, SHIFT, 357}, },
			{{-1, ERROR, 322}, {22, SHIFT, 358}, },
			{{-1, ERROR, 323}, {22, SHIFT, 359}, },
			{{-1, ERROR, 324}, {22, SHIFT, 360}, },
			{{-1, ERROR, 325}, {22, SHIFT, 361}, },
			{{-1, ERROR, 326}, {22, SHIFT, 362}, },
			{{-1, ERROR, 327}, {22, SHIFT, 363}, },
			{{-1, ERROR, 328}, {22, SHIFT, 364}, },
			{{-1, ERROR, 329}, {22, SHIFT, 365}, },
			{{-1, ERROR, 330}, {22, SHIFT, 366}, },
			{{-1, ERROR, 331}, {22, SHIFT, 367}, },
			{{-1, ERROR, 332}, {22, SHIFT, 368}, },
			{{-1, ERROR, 333}, {22, SHIFT, 369}, },
			{{-1, ERROR, 334}, {22, SHIFT, 370}, },
			{{-1, ERROR, 335}, {22, SHIFT, 371}, },
			{{-1, ERROR, 336}, {22, SHIFT, 372}, },
			{{-1, ERROR, 337}, {22, SHIFT, 373}, },
			{{-1, ERROR, 338}, {22, SHIFT, 374}, },
			{{-1, ERROR, 339}, {22, SHIFT, 375}, },
			{{-1, ERROR, 340}, {22, SHIFT, 376}, },
			{{-1, ERROR, 341}, {22, SHIFT, 377}, },
			{{-1, ERROR, 342}, {22, SHIFT, 378}, },
			{{-1, ERROR, 343}, {22, SHIFT, 379}, },
			{{-1, ERROR, 344}, {22, SHIFT, 380}, },
			{{-1, ERROR, 345}, {22, SHIFT, 381}, },
			{{-1, REDUCE, 98}, },
			{{-1, REDUCE, 107}, },
			{{-1, REDUCE, 108}, },
			{{-1, REDUCE, 109}, },
			{{-1, REDUCE, 99}, },
			{{-1, REDUCE, 110}, },
			{{-1, REDUCE, 111}, },
			{{-1, REDUCE, 112}, },
			{{-1, REDUCE, 100}, },
			{{-1, REDUCE, 113}, },
			{{-1, REDUCE, 114}, },
			{{-1, REDUCE, 115}, },
			{{-1, REDUCE, 101}, },
			{{-1, REDUCE, 116}, },
			{{-1, REDUCE, 117}, },
			{{-1, REDUCE, 118}, },
			{{-1, REDUCE, 102}, },
			{{-1, REDUCE, 119}, },
			{{-1, REDUCE, 120}, },
			{{-1, REDUCE, 121}, },
			{{-1, REDUCE, 103}, },
			{{-1, REDUCE, 122}, },
			{{-1, REDUCE, 123}, },
			{{-1, REDUCE, 124}, },
			{{-1, REDUCE, 104}, },
			{{-1, REDUCE, 125}, },
			{{-1, REDUCE, 126}, },
			{{-1, REDUCE, 127}, },
			{{-1, REDUCE, 105}, },
			{{-1, REDUCE, 128}, },
			{{-1, REDUCE, 129}, },
			{{-1, REDUCE, 130}, },
			{{-1, REDUCE, 106}, },
			{{-1, REDUCE, 131}, },
			{{-1, REDUCE, 132}, },
			{{-1, REDUCE, 133}, },
        };*/
    private static int[][][] gotoTable;
/*      {
			{{-1, 18}, },
			{{-1, 19}, {54, 122}, },
			{{-1, 20}, },
			{{-1, 21}, {58, 125}, {59, 128}, {215, 128}, },
			{{-1, 107}, {108, 180}, {148, 180}, },
			{{-1, 22}, {12, 69}, {58, 126}, {79, 152}, {82, 69}, },
			{{-1, 23}, },
			{{-1, 70}, {79, 153}, {181, 235}, {195, 235}, },
			{{-1, 71}, },
			{{-1, 72}, },
			{{-1, 73}, },
			{{-1, 74}, {79, 154}, },
			{{-1, 75}, },
			{{-1, 24}, {12, 76}, {13, 84}, {60, 132}, {64, 139}, {79, 155}, {81, 157}, {82, 161}, {106, 179}, {130, 132}, {146, 210}, {181, 236}, {195, 236}, {216, 210}, {273, 282}, {274, 285}, {275, 288}, {292, 311}, {294, 315}, {296, 319}, {298, 323}, {300, 327}, {302, 331}, {304, 335}, {306, 339}, {308, 343}, },
			{{-1, 25}, {12, 77}, {64, 77}, {82, 77}, {181, 77}, {195, 77}, },
			{{-1, 26}, {109, 182}, {110, 184}, {111, 185}, {112, 186}, {114, 188}, {115, 189}, {116, 190}, {117, 190}, {118, 190}, {119, 190}, {120, 190}, {121, 190}, {237, 190}, {241, 190}, },
			{{-1, 27}, },
			{{-1, 28}, },
			{{-1, 29}, {8, 65}, {9, 66}, {109, 183}, {110, 183}, {111, 183}, {112, 183}, {113, 187}, {114, 183}, {115, 183}, {116, 191}, {117, 193}, {120, 198}, {121, 200}, {237, 183}, {241, 183}, },
			{{-1, 30}, },
			{{-1, 31}, },
			{{-1, 32}, },
			{{-1, 33}, },
			{{-1, 34}, },
			{{-1, 35}, },
			{{-1, 36}, },
			{{-1, 147}, {149, 212}, },
			{{-1, 37}, {176, 227}, },
			{{-1, 133}, {130, 203}, },
			{{-1, 134}, {138, 209}, {207, 209}, },
			{{-1, 38}, {202, 249}, {250, 271}, },
			{{-1, 85}, {91, 171}, {165, 171}, {167, 171}, {169, 171}, },
			{{-1, 135}, },
			{{-1, 136}, {13, 86}, {81, 158}, {82, 162}, {273, 283}, {274, 286}, {275, 289}, {292, 312}, {294, 316}, {296, 320}, {298, 324}, {300, 328}, {302, 332}, {304, 336}, {306, 340}, {308, 344}, },
			{{-1, 205}, {206, 251}, {208, 253}, {252, 272}, },
			{{-1, 137}, {13, 87}, {81, 159}, {82, 163}, {273, 284}, {274, 287}, {275, 290}, {292, 313}, {294, 317}, {296, 321}, {298, 325}, {300, 329}, {302, 333}, {304, 337}, {306, 341}, {308, 345}, },
			{{-1, 88}, },
			{{-1, 89}, },
			{{-1, 90}, },
			{{-1, 39}, {12, 78}, {82, 78}, {118, 196}, {119, 197}, {195, 78}, },
			{{-1, 40}, },
			{{-1, 41}, },
			{{-1, 42}, },
			{{-1, 238}, {239, 268}, {240, 268}, {245, 268}, {246, 268}, },
			{{-1, 43}, },
			{{-1, 242}, {243, 270}, {244, 270}, {247, 270}, {248, 270}, },
			{{-1, 44}, {116, 192}, {117, 194}, {120, 199}, {121, 201}, {237, 267}, {241, 269}, },
			{{-1, 45}, },
			{{-1, 46}, },
			{{-1, 47}, },
			{{-1, 48}, {176, 228}, {225, 261}, {259, 261}, },
			{{-1, 96}, {93, 172}, },
			{{-1, 97}, {100, 178}, {175, 178}, },
			{{-1, 229}, },
			{{-1, 262}, {176, 230}, },
			{{-1, 263}, {266, 280}, {278, 280}, },
			{{-1, 98}, },
			{{-1, 264}, {259, 276}, },
			{{-1, 265}, {176, 231}, },
			{{-1, 99}, {176, 232}, {225, 232}, {259, 232}, },
			{{-1, 233}, },
			{{-1, 49}, {156, 214}, {176, 234}, {202, 214}, {215, 254}, {225, 234}, {259, 234}, },
			{{-1, 50}, },
			{{-1, 51}, {224, 258}, },
			{{-1, 52}, },
			{{-1, 53}, },
			{{-1, 54}, },
			{{-1, 55}, {21, 103}, {22, 104}, {23, 105}, },
			{{-1, 148}, {24, 108}, },
			{{-1, 79}, },
			{{-1, 149}, },
			{{-1, 138}, {133, 207}, },
			{{-1, 91}, {84, 165}, {86, 167}, {87, 169}, },
			{{-1, 239}, {192, 240}, {198, 245}, {199, 246}, },
			{{-1, 243}, {194, 244}, {200, 247}, {201, 248}, },
			{{-1, 100}, {96, 175}, },
			{{-1, 266}, {264, 278}, },
        };*/
    private static String[] errorMessages;
/*      {
			"expecting: 'null', number, boolean, 'META', id, '.', ';', '+', '-', word, comment, '(', '[', '{', 'f$', 'f.', java, EOF",
			"expecting: ';', '+', '-', '%', '^', '*', ',', '/', comparator, ' AND ', ' OR ', ')', ']', '}', '|'",
			"expecting: number, '.', ';', '+', '-', '%', '^', '*', ',', '/', comparator, ' AND ', ' OR ', ')', ']', '}', '|'",
			"expecting: '|'",
			"expecting: ';', '+', '-', '%', '^', '*', ',', '/', comparator, ' AND ', ' OR ', '=', '(', ')', '|', help token",
			"expecting: number",
			"expecting: 'null', number, boolean, id, '.', '+', '-', word, '(', '[', '{', 'f$', 'f.', java",
			"expecting: 'null', number, boolean, 'META', id, '.', ';', '+', '-', word, comment, '(', '[', '{', 'f$', 'f.', java, '|', EOF",
			"expecting: 'null', number, boolean, id, '.', '+', '-', word, comment, '(', ')', '[', '{', 'f$', 'f.', java",
			"expecting: 'null', number, boolean, id, '.', '+', '-', word, comment, ',', '(', '[', ']', '{', 'f$', 'f.', java",
			"expecting: word, ',', '{', '}'",
			"expecting: id",
			"expecting: ';', '+', '-', '%', '^', '*', ',', '/', comparator, ' AND ', ' OR ', ')', ']', '|'",
			"expecting: EOF",
			"expecting: 'null', number, boolean, 'META', id, '.', '+', '-', word, comment, '(', '[', '{', 'f$', 'f.', java, EOF",
			"expecting: ';'",
			"expecting: ';', ')', '|'",
			"expecting: ';', ',', ')', ']', '|'",
			"expecting: ';', ',', comparator, ')', ']', '|'",
			"expecting: ';', ',', ' AND ', ' OR ', ')', ']', '|'",
			"expecting: ';', EOF",
			"expecting: number, ';', '+', '-', '%', '^', '*', ',', '/', comparator, ' AND ', ' OR ', ')', ']', '}', '|'",
			"expecting: 'null', number, boolean, id, '.', '+', '-', word, comment, '(', '[', '{', 'f$', 'f.', java",
			"expecting: 'null', number, boolean, id, '.', '+', '-', word, comment, ',', '(', ')', '[', '{', 'f$', 'f.', java",
			"expecting: ';', '+', '-', '%', '^', '*', ',', '/', comparator, ' AND ', ' OR ', '(', ')', ']', '}', '|'",
			"expecting: ';', ')'",
			"expecting: ')'",
			"expecting: ';', ',', '|'",
			"expecting: ';', ',', ')', '|'",
			"expecting: '+', '-', '%', '^', '*', ',', '/', comparator, ' AND ', ' OR ', '=', '(', ')', ']', help token",
			"expecting: ',', ']'",
			"expecting: ',', ')', ']'",
			"expecting: ':'",
			"expecting: word, '{'",
			"expecting: ',', '}'",
			"expecting: ';', '+', '-', '%', '^', '*', ',', '/', comparator, ' AND ', ' OR ', '(', ')', '|', help token",
			"expecting: '+', '-', '%', '^', '*', ',', '/', comparator, ' AND ', ' OR ', '=', '(', ')', help token",
			"expecting: ';', '+', '-', '%', '^', '*', ',', '/', comparator, ' AND ', ' OR ', ')', ']', '}', as op, '|'",
			"expecting: ',', ')'",
			"expecting: ','",
			"expecting: ';', '|'",
			"expecting: 'null', number, boolean, id, '.', word",
			"expecting: '}'",
			"expecting: 'null', number, boolean, id, '.', '-', word, '[', '{'",
			"expecting: ';', ',', comparator, ' AND ', ' OR ', ')', ']', '|'",
			"expecting: comparator",
			"expecting: ';', '+', '-', '%', '^', '*', ',', '/', comparator, ' AND ', ')', ']', '|'",
			"expecting: ';', ',', ' AND ', ')', ']', '|'",
			"expecting: ';', '+', '-', '%', '^', '*', ',', '/', comparator, ' OR ', ')', ']', '|'",
			"expecting: ';', ',', ' OR ', ')', ']', '|'",
			"expecting: 'null', number, boolean, id, '.', word, '['",
			"expecting: '('",
			"expecting: 'null', number, boolean, id, '.', '+', '-', word, comment, '(', '[', '{', 'f$', 'f.', java, rel type",
			"expecting: rel type",
			"expecting: ':', ',', ']', '}'",
			"expecting: number, '.'",
			"expecting: 'null', number, boolean, id, '.', '-', word, ',', '[', ']', '{'",
			"expecting: id, word, ',', '{', '}'",
			"expecting: ',', ']', '}'",
			"expecting: ',', '|'",
			"expecting: '['",
			"expecting: ';', '+', '-', '%', '^', '*', ',', '/', comparator, ' AND ', ' OR ', ')', '|'",
			"expecting: 'null', number, boolean, id, '.', '+', '-', word, comment, comparator, '(', '[', '{', 'f$', 'f.', java",
        };*/
    private static int[] errors;
/*      {
			0, 1, 2, 1, 3, 4, 5, 0, 6, 6, 1, 7, 8, 9, 10, 11, 11, 12, 13, 14, 13, 15, 15, 15, 16, 17, 18, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 17, 17, 19, 17, 17, 19, 12, 12, 12, 12, 12, 1, 1, 1, 1, 14, 20, 1, 21, 22, 22, 23, 17, 1, 24, 8, 12, 12, 17, 12, 25, 25, 8, 8, 8, 8, 26, 27, 28, 28, 8, 29, 22, 8, 12, 30, 30, 30, 30, 31, 31, 31, 30, 32, 33, 11, 1, 34, 34, 32, 32, 34, 12, 12, 0, 0, 0, 22, 16, 16, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 14, 0, 1, 15, 15, 35, 25, 36, 22, 37, 38, 38, 38, 38, 38, 38, 38, 39, 8, 17, 8, 12, 17, 8, 22, 38, 16, 38, 12, 19, 15, 15, 8, 40, 41, 30, 30, 30, 4, 27, 39, 39, 12, 30, 12, 30, 12, 30, 12, 30, 34, 42, 1, 34, 43, 1, 34, 16, 16, 8, 19, 12, 44, 44, 44, 12, 44, 44, 45, 46, 47, 48, 49, 8, 17, 17, 46, 47, 48, 49, 50, 38, 51, 1, 37, 38, 37, 38, 38, 12, 38, 31, 31, 22, 52, 53, 53, 12, 12, 12, 54, 1, 55, 56, 57, 34, 34, 34, 34, 34, 58, 58, 58, 26, 59, 6, 47, 47, 47, 6, 49, 49, 49, 47, 47, 49, 49, 38, 60, 1, 37, 1, 61, 39, 39, 39, 58, 43, 58, 30, 30, 30, 30, 30, 30, 47, 47, 49, 49, 26, 1, 22, 22, 22, 30, 58, 30, 58, 30, 1, 38, 38, 38, 38, 38, 38, 38, 38, 38, 58, 62, 31, 62, 31, 62, 31, 62, 31, 62, 31, 62, 31, 62, 31, 62, 31, 62, 31, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 
        };*/

    static 
    {
        try
        {
            DataInputStream s = new DataInputStream(
                new BufferedInputStream(
                Parser.class.getResourceAsStream("parser.dat")));

            // read actionTable
            int length = s.readInt();
            Parser.actionTable = new int[length][][];
            for(int i = 0; i < Parser.actionTable.length; i++)
            {
                length = s.readInt();
                Parser.actionTable[i] = new int[length][3];
                for(int j = 0; j < Parser.actionTable[i].length; j++)
                {
                for(int k = 0; k < 3; k++)
                {
                    Parser.actionTable[i][j][k] = s.readInt();
                }
                }
            }

            // read gotoTable
            length = s.readInt();
            gotoTable = new int[length][][];
            for(int i = 0; i < gotoTable.length; i++)
            {
                length = s.readInt();
                gotoTable[i] = new int[length][2];
                for(int j = 0; j < gotoTable[i].length; j++)
                {
                for(int k = 0; k < 2; k++)
                {
                    gotoTable[i][j][k] = s.readInt();
                }
                }
            }

            // read errorMessages
            length = s.readInt();
            errorMessages = new String[length];
            for(int i = 0; i < errorMessages.length; i++)
            {
                length = s.readInt();
                StringBuffer buffer = new StringBuffer();

                for(int j = 0; j < length; j++)
                {
                buffer.append(s.readChar());
                }
                errorMessages[i] = buffer.toString();
            }

            // read errors
            length = s.readInt();
            errors = new int[length];
            for(int i = 0; i < errors.length; i++)
            {
                errors[i] = s.readInt();
            }

            s.close();
        }
        catch(Exception e)
        {
            throw new RuntimeException("The file \"parser.dat\" is either missing or corrupted.");
        }
    }
}