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

package org.sablecc.sablecc.parser;

import org.sablecc.sablecc.lexer.*;
import org.sablecc.sablecc.node.*;
import org.sablecc.sablecc.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<Object> nodeList;

    private final Lexer lexer;
    private final ListIterator<Object> stack = new LinkedList<Object>().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<Object> 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<Object> 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<Node> ign = null;
        while(true)
        {
            while(index(this.lexer.peek()) == -1)
            {
                if(ign == null)
                {
                    ign = new LinkedList<Node>();
                }

                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<Object> list = new ArrayList<Object>();
		        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();
                        PGrammar node1 = (PGrammar) 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 AAgrammar1Grammar */
            {
                ArrayList<Object> list = new0();
                push(goTo(0), list);
            }
            break;
            case 1: /* reduce AAgrammar2Grammar */
            {
                ArrayList<Object> list = new1();
                push(goTo(0), list);
            }
            break;
            case 2: /* reduce AAgrammar3Grammar */
            {
                ArrayList<Object> list = new2();
                push(goTo(0), list);
            }
            break;
            case 3: /* reduce AAgrammar4Grammar */
            {
                ArrayList<Object> list = new3();
                push(goTo(0), list);
            }
            break;
            case 4: /* reduce AAgrammar5Grammar */
            {
                ArrayList<Object> list = new4();
                push(goTo(0), list);
            }
            break;
            case 5: /* reduce AAgrammar6Grammar */
            {
                ArrayList<Object> list = new5();
                push(goTo(0), list);
            }
            break;
            case 6: /* reduce AAgrammar7Grammar */
            {
                ArrayList<Object> list = new6();
                push(goTo(0), list);
            }
            break;
            case 7: /* reduce AAgrammar8Grammar */
            {
                ArrayList<Object> list = new7();
                push(goTo(0), list);
            }
            break;
            case 8: /* reduce AAgrammar9Grammar */
            {
                ArrayList<Object> list = new8();
                push(goTo(0), list);
            }
            break;
            case 9: /* reduce AAgrammar10Grammar */
            {
                ArrayList<Object> list = new9();
                push(goTo(0), list);
            }
            break;
            case 10: /* reduce AAgrammar11Grammar */
            {
                ArrayList<Object> list = new10();
                push(goTo(0), list);
            }
            break;
            case 11: /* reduce AAgrammar12Grammar */
            {
                ArrayList<Object> list = new11();
                push(goTo(0), list);
            }
            break;
            case 12: /* reduce AAgrammar13Grammar */
            {
                ArrayList<Object> list = new12();
                push(goTo(0), list);
            }
            break;
            case 13: /* reduce AAgrammar14Grammar */
            {
                ArrayList<Object> list = new13();
                push(goTo(0), list);
            }
            break;
            case 14: /* reduce AAgrammar15Grammar */
            {
                ArrayList<Object> list = new14();
                push(goTo(0), list);
            }
            break;
            case 15: /* reduce AAgrammar16Grammar */
            {
                ArrayList<Object> list = new15();
                push(goTo(0), list);
            }
            break;
            case 16: /* reduce AAgrammar17Grammar */
            {
                ArrayList<Object> list = new16();
                push(goTo(0), list);
            }
            break;
            case 17: /* reduce AAgrammar18Grammar */
            {
                ArrayList<Object> list = new17();
                push(goTo(0), list);
            }
            break;
            case 18: /* reduce AAgrammar19Grammar */
            {
                ArrayList<Object> list = new18();
                push(goTo(0), list);
            }
            break;
            case 19: /* reduce AAgrammar20Grammar */
            {
                ArrayList<Object> list = new19();
                push(goTo(0), list);
            }
            break;
            case 20: /* reduce AAgrammar21Grammar */
            {
                ArrayList<Object> list = new20();
                push(goTo(0), list);
            }
            break;
            case 21: /* reduce AAgrammar22Grammar */
            {
                ArrayList<Object> list = new21();
                push(goTo(0), list);
            }
            break;
            case 22: /* reduce AAgrammar23Grammar */
            {
                ArrayList<Object> list = new22();
                push(goTo(0), list);
            }
            break;
            case 23: /* reduce AAgrammar24Grammar */
            {
                ArrayList<Object> list = new23();
                push(goTo(0), list);
            }
            break;
            case 24: /* reduce AAgrammar25Grammar */
            {
                ArrayList<Object> list = new24();
                push(goTo(0), list);
            }
            break;
            case 25: /* reduce AAgrammar26Grammar */
            {
                ArrayList<Object> list = new25();
                push(goTo(0), list);
            }
            break;
            case 26: /* reduce AAgrammar27Grammar */
            {
                ArrayList<Object> list = new26();
                push(goTo(0), list);
            }
            break;
            case 27: /* reduce AAgrammar28Grammar */
            {
                ArrayList<Object> list = new27();
                push(goTo(0), list);
            }
            break;
            case 28: /* reduce AAgrammar29Grammar */
            {
                ArrayList<Object> list = new28();
                push(goTo(0), list);
            }
            break;
            case 29: /* reduce AAgrammar30Grammar */
            {
                ArrayList<Object> list = new29();
                push(goTo(0), list);
            }
            break;
            case 30: /* reduce AAgrammar31Grammar */
            {
                ArrayList<Object> list = new30();
                push(goTo(0), list);
            }
            break;
            case 31: /* reduce AAgrammar32Grammar */
            {
                ArrayList<Object> list = new31();
                push(goTo(0), list);
            }
            break;
            case 32: /* reduce AAgrammar33Grammar */
            {
                ArrayList<Object> list = new32();
                push(goTo(0), list);
            }
            break;
            case 33: /* reduce AAgrammar34Grammar */
            {
                ArrayList<Object> list = new33();
                push(goTo(0), list);
            }
            break;
            case 34: /* reduce AAgrammar35Grammar */
            {
                ArrayList<Object> list = new34();
                push(goTo(0), list);
            }
            break;
            case 35: /* reduce AAgrammar36Grammar */
            {
                ArrayList<Object> list = new35();
                push(goTo(0), list);
            }
            break;
            case 36: /* reduce AAgrammar37Grammar */
            {
                ArrayList<Object> list = new36();
                push(goTo(0), list);
            }
            break;
            case 37: /* reduce AAgrammar38Grammar */
            {
                ArrayList<Object> list = new37();
                push(goTo(0), list);
            }
            break;
            case 38: /* reduce AAgrammar39Grammar */
            {
                ArrayList<Object> list = new38();
                push(goTo(0), list);
            }
            break;
            case 39: /* reduce AAgrammar40Grammar */
            {
                ArrayList<Object> list = new39();
                push(goTo(0), list);
            }
            break;
            case 40: /* reduce AAgrammar41Grammar */
            {
                ArrayList<Object> list = new40();
                push(goTo(0), list);
            }
            break;
            case 41: /* reduce AAgrammar42Grammar */
            {
                ArrayList<Object> list = new41();
                push(goTo(0), list);
            }
            break;
            case 42: /* reduce AAgrammar43Grammar */
            {
                ArrayList<Object> list = new42();
                push(goTo(0), list);
            }
            break;
            case 43: /* reduce AAgrammar44Grammar */
            {
                ArrayList<Object> list = new43();
                push(goTo(0), list);
            }
            break;
            case 44: /* reduce AAgrammar45Grammar */
            {
                ArrayList<Object> list = new44();
                push(goTo(0), list);
            }
            break;
            case 45: /* reduce AAgrammar46Grammar */
            {
                ArrayList<Object> list = new45();
                push(goTo(0), list);
            }
            break;
            case 46: /* reduce AAgrammar47Grammar */
            {
                ArrayList<Object> list = new46();
                push(goTo(0), list);
            }
            break;
            case 47: /* reduce AAgrammar48Grammar */
            {
                ArrayList<Object> list = new47();
                push(goTo(0), list);
            }
            break;
            case 48: /* reduce AAgrammar49Grammar */
            {
                ArrayList<Object> list = new48();
                push(goTo(0), list);
            }
            break;
            case 49: /* reduce AAgrammar50Grammar */
            {
                ArrayList<Object> list = new49();
                push(goTo(0), list);
            }
            break;
            case 50: /* reduce AAgrammar51Grammar */
            {
                ArrayList<Object> list = new50();
                push(goTo(0), list);
            }
            break;
            case 51: /* reduce AAgrammar52Grammar */
            {
                ArrayList<Object> list = new51();
                push(goTo(0), list);
            }
            break;
            case 52: /* reduce AAgrammar53Grammar */
            {
                ArrayList<Object> list = new52();
                push(goTo(0), list);
            }
            break;
            case 53: /* reduce AAgrammar54Grammar */
            {
                ArrayList<Object> list = new53();
                push(goTo(0), list);
            }
            break;
            case 54: /* reduce AAgrammar55Grammar */
            {
                ArrayList<Object> list = new54();
                push(goTo(0), list);
            }
            break;
            case 55: /* reduce AAgrammar56Grammar */
            {
                ArrayList<Object> list = new55();
                push(goTo(0), list);
            }
            break;
            case 56: /* reduce AAgrammar57Grammar */
            {
                ArrayList<Object> list = new56();
                push(goTo(0), list);
            }
            break;
            case 57: /* reduce AAgrammar58Grammar */
            {
                ArrayList<Object> list = new57();
                push(goTo(0), list);
            }
            break;
            case 58: /* reduce AAgrammar59Grammar */
            {
                ArrayList<Object> list = new58();
                push(goTo(0), list);
            }
            break;
            case 59: /* reduce AAgrammar60Grammar */
            {
                ArrayList<Object> list = new59();
                push(goTo(0), list);
            }
            break;
            case 60: /* reduce AAgrammar61Grammar */
            {
                ArrayList<Object> list = new60();
                push(goTo(0), list);
            }
            break;
            case 61: /* reduce AAgrammar62Grammar */
            {
                ArrayList<Object> list = new61();
                push(goTo(0), list);
            }
            break;
            case 62: /* reduce AAgrammar63Grammar */
            {
                ArrayList<Object> list = new62();
                push(goTo(0), list);
            }
            break;
            case 63: /* reduce AAgrammar64Grammar */
            {
                ArrayList<Object> list = new63();
                push(goTo(0), list);
            }
            break;
            case 64: /* reduce AAgrammar65Grammar */
            {
                ArrayList<Object> list = new64();
                push(goTo(0), list);
            }
            break;
            case 65: /* reduce AAgrammar66Grammar */
            {
                ArrayList<Object> list = new65();
                push(goTo(0), list);
            }
            break;
            case 66: /* reduce AAgrammar67Grammar */
            {
                ArrayList<Object> list = new66();
                push(goTo(0), list);
            }
            break;
            case 67: /* reduce AAgrammar68Grammar */
            {
                ArrayList<Object> list = new67();
                push(goTo(0), list);
            }
            break;
            case 68: /* reduce AAgrammar69Grammar */
            {
                ArrayList<Object> list = new68();
                push(goTo(0), list);
            }
            break;
            case 69: /* reduce AAgrammar70Grammar */
            {
                ArrayList<Object> list = new69();
                push(goTo(0), list);
            }
            break;
            case 70: /* reduce AAgrammar71Grammar */
            {
                ArrayList<Object> list = new70();
                push(goTo(0), list);
            }
            break;
            case 71: /* reduce AAgrammar72Grammar */
            {
                ArrayList<Object> list = new71();
                push(goTo(0), list);
            }
            break;
            case 72: /* reduce AAgrammar73Grammar */
            {
                ArrayList<Object> list = new72();
                push(goTo(0), list);
            }
            break;
            case 73: /* reduce AAgrammar74Grammar */
            {
                ArrayList<Object> list = new73();
                push(goTo(0), list);
            }
            break;
            case 74: /* reduce AAgrammar75Grammar */
            {
                ArrayList<Object> list = new74();
                push(goTo(0), list);
            }
            break;
            case 75: /* reduce AAgrammar76Grammar */
            {
                ArrayList<Object> list = new75();
                push(goTo(0), list);
            }
            break;
            case 76: /* reduce AAgrammar77Grammar */
            {
                ArrayList<Object> list = new76();
                push(goTo(0), list);
            }
            break;
            case 77: /* reduce AAgrammar78Grammar */
            {
                ArrayList<Object> list = new77();
                push(goTo(0), list);
            }
            break;
            case 78: /* reduce AAgrammar79Grammar */
            {
                ArrayList<Object> list = new78();
                push(goTo(0), list);
            }
            break;
            case 79: /* reduce AAgrammar80Grammar */
            {
                ArrayList<Object> list = new79();
                push(goTo(0), list);
            }
            break;
            case 80: /* reduce AAgrammar81Grammar */
            {
                ArrayList<Object> list = new80();
                push(goTo(0), list);
            }
            break;
            case 81: /* reduce AAgrammar82Grammar */
            {
                ArrayList<Object> list = new81();
                push(goTo(0), list);
            }
            break;
            case 82: /* reduce AAgrammar83Grammar */
            {
                ArrayList<Object> list = new82();
                push(goTo(0), list);
            }
            break;
            case 83: /* reduce AAgrammar84Grammar */
            {
                ArrayList<Object> list = new83();
                push(goTo(0), list);
            }
            break;
            case 84: /* reduce AAgrammar85Grammar */
            {
                ArrayList<Object> list = new84();
                push(goTo(0), list);
            }
            break;
            case 85: /* reduce AAgrammar86Grammar */
            {
                ArrayList<Object> list = new85();
                push(goTo(0), list);
            }
            break;
            case 86: /* reduce AAgrammar87Grammar */
            {
                ArrayList<Object> list = new86();
                push(goTo(0), list);
            }
            break;
            case 87: /* reduce AAgrammar88Grammar */
            {
                ArrayList<Object> list = new87();
                push(goTo(0), list);
            }
            break;
            case 88: /* reduce AAgrammar89Grammar */
            {
                ArrayList<Object> list = new88();
                push(goTo(0), list);
            }
            break;
            case 89: /* reduce AAgrammar90Grammar */
            {
                ArrayList<Object> list = new89();
                push(goTo(0), list);
            }
            break;
            case 90: /* reduce AAgrammar91Grammar */
            {
                ArrayList<Object> list = new90();
                push(goTo(0), list);
            }
            break;
            case 91: /* reduce AAgrammar92Grammar */
            {
                ArrayList<Object> list = new91();
                push(goTo(0), list);
            }
            break;
            case 92: /* reduce AAgrammar93Grammar */
            {
                ArrayList<Object> list = new92();
                push(goTo(0), list);
            }
            break;
            case 93: /* reduce AAgrammar94Grammar */
            {
                ArrayList<Object> list = new93();
                push(goTo(0), list);
            }
            break;
            case 94: /* reduce AAgrammar95Grammar */
            {
                ArrayList<Object> list = new94();
                push(goTo(0), list);
            }
            break;
            case 95: /* reduce AAgrammar96Grammar */
            {
                ArrayList<Object> list = new95();
                push(goTo(0), list);
            }
            break;
            case 96: /* reduce AAgrammar97Grammar */
            {
                ArrayList<Object> list = new96();
                push(goTo(0), list);
            }
            break;
            case 97: /* reduce AAgrammar98Grammar */
            {
                ArrayList<Object> list = new97();
                push(goTo(0), list);
            }
            break;
            case 98: /* reduce AAgrammar99Grammar */
            {
                ArrayList<Object> list = new98();
                push(goTo(0), list);
            }
            break;
            case 99: /* reduce AAgrammar100Grammar */
            {
                ArrayList<Object> list = new99();
                push(goTo(0), list);
            }
            break;
            case 100: /* reduce AAgrammar101Grammar */
            {
                ArrayList<Object> list = new100();
                push(goTo(0), list);
            }
            break;
            case 101: /* reduce AAgrammar102Grammar */
            {
                ArrayList<Object> list = new101();
                push(goTo(0), list);
            }
            break;
            case 102: /* reduce AAgrammar103Grammar */
            {
                ArrayList<Object> list = new102();
                push(goTo(0), list);
            }
            break;
            case 103: /* reduce AAgrammar104Grammar */
            {
                ArrayList<Object> list = new103();
                push(goTo(0), list);
            }
            break;
            case 104: /* reduce AAgrammar105Grammar */
            {
                ArrayList<Object> list = new104();
                push(goTo(0), list);
            }
            break;
            case 105: /* reduce AAgrammar106Grammar */
            {
                ArrayList<Object> list = new105();
                push(goTo(0), list);
            }
            break;
            case 106: /* reduce AAgrammar107Grammar */
            {
                ArrayList<Object> list = new106();
                push(goTo(0), list);
            }
            break;
            case 107: /* reduce AAgrammar108Grammar */
            {
                ArrayList<Object> list = new107();
                push(goTo(0), list);
            }
            break;
            case 108: /* reduce AAgrammar109Grammar */
            {
                ArrayList<Object> list = new108();
                push(goTo(0), list);
            }
            break;
            case 109: /* reduce AAgrammar110Grammar */
            {
                ArrayList<Object> list = new109();
                push(goTo(0), list);
            }
            break;
            case 110: /* reduce AAgrammar111Grammar */
            {
                ArrayList<Object> list = new110();
                push(goTo(0), list);
            }
            break;
            case 111: /* reduce AAgrammar112Grammar */
            {
                ArrayList<Object> list = new111();
                push(goTo(0), list);
            }
            break;
            case 112: /* reduce AAgrammar113Grammar */
            {
                ArrayList<Object> list = new112();
                push(goTo(0), list);
            }
            break;
            case 113: /* reduce AAgrammar114Grammar */
            {
                ArrayList<Object> list = new113();
                push(goTo(0), list);
            }
            break;
            case 114: /* reduce AAgrammar115Grammar */
            {
                ArrayList<Object> list = new114();
                push(goTo(0), list);
            }
            break;
            case 115: /* reduce AAgrammar116Grammar */
            {
                ArrayList<Object> list = new115();
                push(goTo(0), list);
            }
            break;
            case 116: /* reduce AAgrammar117Grammar */
            {
                ArrayList<Object> list = new116();
                push(goTo(0), list);
            }
            break;
            case 117: /* reduce AAgrammar118Grammar */
            {
                ArrayList<Object> list = new117();
                push(goTo(0), list);
            }
            break;
            case 118: /* reduce AAgrammar119Grammar */
            {
                ArrayList<Object> list = new118();
                push(goTo(0), list);
            }
            break;
            case 119: /* reduce AAgrammar120Grammar */
            {
                ArrayList<Object> list = new119();
                push(goTo(0), list);
            }
            break;
            case 120: /* reduce AAgrammar121Grammar */
            {
                ArrayList<Object> list = new120();
                push(goTo(0), list);
            }
            break;
            case 121: /* reduce AAgrammar122Grammar */
            {
                ArrayList<Object> list = new121();
                push(goTo(0), list);
            }
            break;
            case 122: /* reduce AAgrammar123Grammar */
            {
                ArrayList<Object> list = new122();
                push(goTo(0), list);
            }
            break;
            case 123: /* reduce AAgrammar124Grammar */
            {
                ArrayList<Object> list = new123();
                push(goTo(0), list);
            }
            break;
            case 124: /* reduce AAgrammar125Grammar */
            {
                ArrayList<Object> list = new124();
                push(goTo(0), list);
            }
            break;
            case 125: /* reduce AAgrammar126Grammar */
            {
                ArrayList<Object> list = new125();
                push(goTo(0), list);
            }
            break;
            case 126: /* reduce AAgrammar127Grammar */
            {
                ArrayList<Object> list = new126();
                push(goTo(0), list);
            }
            break;
            case 127: /* reduce AAgrammar128Grammar */
            {
                ArrayList<Object> list = new127();
                push(goTo(0), list);
            }
            break;
            case 128: /* reduce APackage */
            {
                ArrayList<Object> list = new128();
                push(goTo(1), list);
            }
            break;
            case 129: /* reduce AApkgname1PkgName */
            {
                ArrayList<Object> list = new129();
                push(goTo(2), list);
            }
            break;
            case 130: /* reduce AApkgname2PkgName */
            {
                ArrayList<Object> list = new130();
                push(goTo(2), list);
            }
            break;
            case 131: /* reduce APkgNameTail */
            {
                ArrayList<Object> list = new131();
                push(goTo(3), list);
            }
            break;
            case 132: /* reduce AHelpers */
            {
                ArrayList<Object> list = new132();
                push(goTo(4), list);
            }
            break;
            case 133: /* reduce AHelperDef */
            {
                ArrayList<Object> list = new133();
                push(goTo(5), list);
            }
            break;
            case 134: /* reduce AStates */
            {
                ArrayList<Object> list = new134();
                push(goTo(6), list);
            }
            break;
            case 135: /* reduce AAidlist1IdList */
            {
                ArrayList<Object> list = new135();
                push(goTo(7), list);
            }
            break;
            case 136: /* reduce AAidlist2IdList */
            {
                ArrayList<Object> list = new136();
                push(goTo(7), list);
            }
            break;
            case 137: /* reduce AIdListTail */
            {
                ArrayList<Object> list = new137();
                push(goTo(8), list);
            }
            break;
            case 138: /* reduce ATokens */
            {
                ArrayList<Object> list = new138();
                push(goTo(9), list);
            }
            break;
            case 139: /* reduce AAtokendef1TokenDef */
            {
                ArrayList<Object> list = new139();
                push(goTo(10), list);
            }
            break;
            case 140: /* reduce AAtokendef2TokenDef */
            {
                ArrayList<Object> list = new140();
                push(goTo(10), list);
            }
            break;
            case 141: /* reduce AAtokendef3TokenDef */
            {
                ArrayList<Object> list = new141();
                push(goTo(10), list);
            }
            break;
            case 142: /* reduce AAtokendef4TokenDef */
            {
                ArrayList<Object> list = new142();
                push(goTo(10), list);
            }
            break;
            case 143: /* reduce AAstatelist1StateList */
            {
                ArrayList<Object> list = new143();
                push(goTo(11), list);
            }
            break;
            case 144: /* reduce AAstatelist2StateList */
            {
                ArrayList<Object> list = new144();
                push(goTo(11), list);
            }
            break;
            case 145: /* reduce AAstatelist3StateList */
            {
                ArrayList<Object> list = new145();
                push(goTo(11), list);
            }
            break;
            case 146: /* reduce AAstatelist4StateList */
            {
                ArrayList<Object> list = new146();
                push(goTo(11), list);
            }
            break;
            case 147: /* reduce AAstatelisttail1StateListTail */
            {
                ArrayList<Object> list = new147();
                push(goTo(12), list);
            }
            break;
            case 148: /* reduce AAstatelisttail2StateListTail */
            {
                ArrayList<Object> list = new148();
                push(goTo(12), list);
            }
            break;
            case 149: /* reduce ATransition */
            {
                ArrayList<Object> list = new149();
                push(goTo(13), list);
            }
            break;
            case 150: /* reduce AAigntokens1IgnTokens */
            {
                ArrayList<Object> list = new150();
                push(goTo(14), list);
            }
            break;
            case 151: /* reduce AAigntokens2IgnTokens */
            {
                ArrayList<Object> list = new151();
                push(goTo(14), list);
            }
            break;
            case 152: /* reduce ALookAhead */
            {
                ArrayList<Object> list = new152();
                push(goTo(15), list);
            }
            break;
            case 153: /* reduce AAregexp1RegExp */
            {
                ArrayList<Object> list = new153();
                push(goTo(16), list);
            }
            break;
            case 154: /* reduce AAregexp2RegExp */
            {
                ArrayList<Object> list = new154();
                push(goTo(16), list);
            }
            break;
            case 155: /* reduce ARegExpTail */
            {
                ArrayList<Object> list = new155();
                push(goTo(17), list);
            }
            break;
            case 156: /* reduce AAconcat1Concat */
            {
                ArrayList<Object> list = new156();
                push(goTo(18), list);
            }
            break;
            case 157: /* reduce AAconcat2Concat */
            {
                ArrayList<Object> list = new157();
                push(goTo(18), list);
            }
            break;
            case 158: /* reduce AAunexp1UnExp */
            {
                ArrayList<Object> list = new158();
                push(goTo(19), list);
            }
            break;
            case 159: /* reduce AAunexp2UnExp */
            {
                ArrayList<Object> list = new159();
                push(goTo(19), list);
            }
            break;
            case 160: /* reduce ACharBasic */
            {
                ArrayList<Object> list = new160();
                push(goTo(20), list);
            }
            break;
            case 161: /* reduce ASetBasic */
            {
                ArrayList<Object> list = new161();
                push(goTo(20), list);
            }
            break;
            case 162: /* reduce AStringBasic */
            {
                ArrayList<Object> list = new162();
                push(goTo(20), list);
            }
            break;
            case 163: /* reduce AIdBasic */
            {
                ArrayList<Object> list = new163();
                push(goTo(20), list);
            }
            break;
            case 164: /* reduce ARegExpBasic */
            {
                ArrayList<Object> list = new164();
                push(goTo(20), list);
            }
            break;
            case 165: /* reduce ACharChar */
            {
                ArrayList<Object> list = new165();
                push(goTo(21), list);
            }
            break;
            case 166: /* reduce ADecChar */
            {
                ArrayList<Object> list = new166();
                push(goTo(21), list);
            }
            break;
            case 167: /* reduce AHexChar */
            {
                ArrayList<Object> list = new167();
                push(goTo(21), list);
            }
            break;
            case 168: /* reduce AOperationSet */
            {
                ArrayList<Object> list = new168();
                push(goTo(22), list);
            }
            break;
            case 169: /* reduce AIntervalSet */
            {
                ArrayList<Object> list = new169();
                push(goTo(22), list);
            }
            break;
            case 170: /* reduce AStarUnOp */
            {
                ArrayList<Object> list = new170();
                push(goTo(23), list);
            }
            break;
            case 171: /* reduce AQMarkUnOp */
            {
                ArrayList<Object> list = new171();
                push(goTo(23), list);
            }
            break;
            case 172: /* reduce APlusUnOp */
            {
                ArrayList<Object> list = new172();
                push(goTo(23), list);
            }
            break;
            case 173: /* reduce APlusBinOp */
            {
                ArrayList<Object> list = new173();
                push(goTo(24), list);
            }
            break;
            case 174: /* reduce AMinusBinOp */
            {
                ArrayList<Object> list = new174();
                push(goTo(24), list);
            }
            break;
            case 175: /* reduce AProductions */
            {
                ArrayList<Object> list = new175();
                push(goTo(25), list);
            }
            break;
            case 176: /* reduce AAprod1Prod */
            {
                ArrayList<Object> list = new176();
                push(goTo(26), list);
            }
            break;
            case 177: /* reduce AAprod2Prod */
            {
                ArrayList<Object> list = new177();
                push(goTo(26), list);
            }
            break;
            case 178: /* reduce AAprodtransform1ProdTransform */
            {
                ArrayList<Object> list = new178();
                push(goTo(27), list);
            }
            break;
            case 179: /* reduce AAprodtransform2ProdTransform */
            {
                ArrayList<Object> list = new179();
                push(goTo(27), list);
            }
            break;
            case 180: /* reduce AAalts1Alts */
            {
                ArrayList<Object> list = new180();
                push(goTo(28), list);
            }
            break;
            case 181: /* reduce AAalts2Alts */
            {
                ArrayList<Object> list = new181();
                push(goTo(28), list);
            }
            break;
            case 182: /* reduce AAltsTail */
            {
                ArrayList<Object> list = new182();
                push(goTo(29), list);
            }
            break;
            case 183: /* reduce AAalt1Alt */
            {
                ArrayList<Object> list = new183();
                push(goTo(30), list);
            }
            break;
            case 184: /* reduce AAalt2Alt */
            {
                ArrayList<Object> list = new184();
                push(goTo(30), list);
            }
            break;
            case 185: /* reduce AAalt3Alt */
            {
                ArrayList<Object> list = new185();
                push(goTo(30), list);
            }
            break;
            case 186: /* reduce AAalt4Alt */
            {
                ArrayList<Object> list = new186();
                push(goTo(30), list);
            }
            break;
            case 187: /* reduce AAalt5Alt */
            {
                ArrayList<Object> list = new187();
                push(goTo(30), list);
            }
            break;
            case 188: /* reduce AAalt6Alt */
            {
                ArrayList<Object> list = new188();
                push(goTo(30), list);
            }
            break;
            case 189: /* reduce AAalt7Alt */
            {
                ArrayList<Object> list = new189();
                push(goTo(30), list);
            }
            break;
            case 190: /* reduce AAalt8Alt */
            {
                ArrayList<Object> list = new190();
                push(goTo(30), list);
            }
            break;
            case 191: /* reduce AAalttransform1AltTransform */
            {
                ArrayList<Object> list = new191();
                push(goTo(31), list);
            }
            break;
            case 192: /* reduce AAalttransform2AltTransform */
            {
                ArrayList<Object> list = new192();
                push(goTo(31), list);
            }
            break;
            case 193: /* reduce AAnewterm1Term */
            {
                ArrayList<Object> list = new193();
                push(goTo(32), list);
            }
            break;
            case 194: /* reduce AAnewterm2Term */
            {
                ArrayList<Object> list = new194();
                push(goTo(32), list);
            }
            break;
            case 195: /* reduce AAlistterm1Term */
            {
                ArrayList<Object> list = new195();
                push(goTo(32), list);
            }
            break;
            case 196: /* reduce AAlistterm2Term */
            {
                ArrayList<Object> list = new196();
                push(goTo(32), list);
            }
            break;
            case 197: /* reduce AAsimpleterm1Term */
            {
                ArrayList<Object> list = new197();
                push(goTo(32), list);
            }
            break;
            case 198: /* reduce AAsimpleterm2Term */
            {
                ArrayList<Object> list = new198();
                push(goTo(32), list);
            }
            break;
            case 199: /* reduce AAsimpleterm3Term */
            {
                ArrayList<Object> list = new199();
                push(goTo(32), list);
            }
            break;
            case 200: /* reduce AAsimpleterm4Term */
            {
                ArrayList<Object> list = new200();
                push(goTo(32), list);
            }
            break;
            case 201: /* reduce ANullTerm */
            {
                ArrayList<Object> list = new201();
                push(goTo(32), list);
            }
            break;
            case 202: /* reduce AAlistoflistterm1ListOfListTerm */
            {
                ArrayList<Object> list = new202();
                push(goTo(33), list);
            }
            break;
            case 203: /* reduce AAlistoflistterm2ListOfListTerm */
            {
                ArrayList<Object> list = new203();
                push(goTo(33), list);
            }
            break;
            case 204: /* reduce AAnewlistterm1ListTerm */
            {
                ArrayList<Object> list = new204();
                push(goTo(34), list);
            }
            break;
            case 205: /* reduce AAnewlistterm2ListTerm */
            {
                ArrayList<Object> list = new205();
                push(goTo(34), list);
            }
            break;
            case 206: /* reduce AAsimplelistterm1ListTerm */
            {
                ArrayList<Object> list = new206();
                push(goTo(34), list);
            }
            break;
            case 207: /* reduce AAsimplelistterm2ListTerm */
            {
                ArrayList<Object> list = new207();
                push(goTo(34), list);
            }
            break;
            case 208: /* reduce AAsimplelistterm3ListTerm */
            {
                ArrayList<Object> list = new208();
                push(goTo(34), list);
            }
            break;
            case 209: /* reduce AAsimplelistterm4ListTerm */
            {
                ArrayList<Object> list = new209();
                push(goTo(34), list);
            }
            break;
            case 210: /* reduce AListTermTail */
            {
                ArrayList<Object> list = new210();
                push(goTo(35), list);
            }
            break;
            case 211: /* reduce ASimpleTermTail */
            {
                ArrayList<Object> list = new211();
                push(goTo(36), list);
            }
            break;
            case 212: /* reduce AAprodname1ProdName */
            {
                ArrayList<Object> list = new212();
                push(goTo(37), list);
            }
            break;
            case 213: /* reduce AAprodname2ProdName */
            {
                ArrayList<Object> list = new213();
                push(goTo(37), list);
            }
            break;
            case 214: /* reduce AProdNameTail */
            {
                ArrayList<Object> list = new214();
                push(goTo(38), list);
            }
            break;
            case 215: /* reduce AAparams1Params */
            {
                ArrayList<Object> list = new215();
                push(goTo(39), list);
            }
            break;
            case 216: /* reduce AAparams2Params */
            {
                ArrayList<Object> list = new216();
                push(goTo(39), list);
            }
            break;
            case 217: /* reduce AParamsTail */
            {
                ArrayList<Object> list = new217();
                push(goTo(40), list);
            }
            break;
            case 218: /* reduce AAltName */
            {
                ArrayList<Object> list = new218();
                push(goTo(41), list);
            }
            break;
            case 219: /* reduce AAelem1Elem */
            {
                ArrayList<Object> list = new219();
                push(goTo(42), list);
            }
            break;
            case 220: /* reduce AAelem2Elem */
            {
                ArrayList<Object> list = new220();
                push(goTo(42), list);
            }
            break;
            case 221: /* reduce AAelem3Elem */
            {
                ArrayList<Object> list = new221();
                push(goTo(42), list);
            }
            break;
            case 222: /* reduce AAelem4Elem */
            {
                ArrayList<Object> list = new222();
                push(goTo(42), list);
            }
            break;
            case 223: /* reduce AAelem5Elem */
            {
                ArrayList<Object> list = new223();
                push(goTo(42), list);
            }
            break;
            case 224: /* reduce AAelem6Elem */
            {
                ArrayList<Object> list = new224();
                push(goTo(42), list);
            }
            break;
            case 225: /* reduce AAelem7Elem */
            {
                ArrayList<Object> list = new225();
                push(goTo(42), list);
            }
            break;
            case 226: /* reduce AAelem8Elem */
            {
                ArrayList<Object> list = new226();
                push(goTo(42), list);
            }
            break;
            case 227: /* reduce AElemName */
            {
                ArrayList<Object> list = new227();
                push(goTo(43), list);
            }
            break;
            case 228: /* reduce ATokenSpecifier */
            {
                ArrayList<Object> list = new228();
                push(goTo(44), list);
            }
            break;
            case 229: /* reduce AProductionSpecifier */
            {
                ArrayList<Object> list = new229();
                push(goTo(44), list);
            }
            break;
            case 230: /* reduce AAst */
            {
                ArrayList<Object> list = new230();
                push(goTo(45), list);
            }
            break;
            case 231: /* reduce AAstProd */
            {
                ArrayList<Object> list = new231();
                push(goTo(46), list);
            }
            break;
            case 232: /* reduce AAastalts1AstAlts */
            {
                ArrayList<Object> list = new232();
                push(goTo(47), list);
            }
            break;
            case 233: /* reduce AAastalts2AstAlts */
            {
                ArrayList<Object> list = new233();
                push(goTo(47), list);
            }
            break;
            case 234: /* reduce AAstAltsTail */
            {
                ArrayList<Object> list = new234();
                push(goTo(48), list);
            }
            break;
            case 235: /* reduce AAastalt1AstAlt */
            {
                ArrayList<Object> list = new235();
                push(goTo(49), list);
            }
            break;
            case 236: /* reduce AAastalt2AstAlt */
            {
                ArrayList<Object> list = new236();
                push(goTo(49), list);
            }
            break;
            case 237: /* reduce AAastalt3AstAlt */
            {
                ArrayList<Object> list = new237();
                push(goTo(49), list);
            }
            break;
            case 238: /* reduce AAastalt4AstAlt */
            {
                ArrayList<Object> list = new238();
                push(goTo(49), list);
            }
            break;
            case 239: /* reduce ATerminal$PkgNameTail */
            {
                ArrayList<Object> list = new239();
                push(goTo(50), list);
            }
            break;
            case 240: /* reduce ANonTerminal$PkgNameTail */
            {
                ArrayList<Object> list = new240();
                push(goTo(50), list);
            }
            break;
            case 241: /* reduce ATerminal$HelperDef */
            {
                ArrayList<Object> list = new241();
                push(goTo(51), list);
            }
            break;
            case 242: /* reduce ANonTerminal$HelperDef */
            {
                ArrayList<Object> list = new242();
                push(goTo(51), list);
            }
            break;
            case 243: /* reduce ATerminal$IdListTail */
            {
                ArrayList<Object> list = new243();
                push(goTo(52), list);
            }
            break;
            case 244: /* reduce ANonTerminal$IdListTail */
            {
                ArrayList<Object> list = new244();
                push(goTo(52), list);
            }
            break;
            case 245: /* reduce ATerminal$TokenDef */
            {
                ArrayList<Object> list = new245();
                push(goTo(53), list);
            }
            break;
            case 246: /* reduce ANonTerminal$TokenDef */
            {
                ArrayList<Object> list = new246();
                push(goTo(53), list);
            }
            break;
            case 247: /* reduce ATerminal$StateListTail */
            {
                ArrayList<Object> list = new247();
                push(goTo(54), list);
            }
            break;
            case 248: /* reduce ANonTerminal$StateListTail */
            {
                ArrayList<Object> list = new248();
                push(goTo(54), list);
            }
            break;
            case 249: /* reduce ATerminal$RegExpTail */
            {
                ArrayList<Object> list = new249();
                push(goTo(55), list);
            }
            break;
            case 250: /* reduce ANonTerminal$RegExpTail */
            {
                ArrayList<Object> list = new250();
                push(goTo(55), list);
            }
            break;
            case 251: /* reduce ATerminal$UnExp */
            {
                ArrayList<Object> list = new251();
                push(goTo(56), list);
            }
            break;
            case 252: /* reduce ANonTerminal$UnExp */
            {
                ArrayList<Object> list = new252();
                push(goTo(56), list);
            }
            break;
            case 253: /* reduce ATerminal$Prod */
            {
                ArrayList<Object> list = new253();
                push(goTo(57), list);
            }
            break;
            case 254: /* reduce ANonTerminal$Prod */
            {
                ArrayList<Object> list = new254();
                push(goTo(57), list);
            }
            break;
            case 255: /* reduce ATerminal$Elem */
            {
                ArrayList<Object> list = new255();
                push(goTo(58), list);
            }
            break;
            case 256: /* reduce ANonTerminal$Elem */
            {
                ArrayList<Object> list = new256();
                push(goTo(58), list);
            }
            break;
            case 257: /* reduce ATerminal$AltsTail */
            {
                ArrayList<Object> list = new257();
                push(goTo(59), list);
            }
            break;
            case 258: /* reduce ANonTerminal$AltsTail */
            {
                ArrayList<Object> list = new258();
                push(goTo(59), list);
            }
            break;
            case 259: /* reduce ATerminal$Term */
            {
                ArrayList<Object> list = new259();
                push(goTo(60), list);
            }
            break;
            case 260: /* reduce ANonTerminal$Term */
            {
                ArrayList<Object> list = new260();
                push(goTo(60), list);
            }
            break;
            case 261: /* reduce ATerminal$ListTermTail */
            {
                ArrayList<Object> list = new261();
                push(goTo(61), list);
            }
            break;
            case 262: /* reduce ANonTerminal$ListTermTail */
            {
                ArrayList<Object> list = new262();
                push(goTo(61), list);
            }
            break;
            case 263: /* reduce ATerminal$ParamsTail */
            {
                ArrayList<Object> list = new263();
                push(goTo(62), list);
            }
            break;
            case 264: /* reduce ANonTerminal$ParamsTail */
            {
                ArrayList<Object> list = new264();
                push(goTo(62), list);
            }
            break;
            case 265: /* reduce ATerminal$AstProd */
            {
                ArrayList<Object> list = new265();
                push(goTo(63), list);
            }
            break;
            case 266: /* reduce ANonTerminal$AstProd */
            {
                ArrayList<Object> list = new266();
                push(goTo(63), list);
            }
            break;
            case 267: /* reduce ATerminal$AstAltsTail */
            {
                ArrayList<Object> list = new267();
                push(goTo(64), list);
            }
            break;
            case 268: /* reduce ANonTerminal$AstAltsTail */
            {
                ArrayList<Object> list = new268();
                push(goTo(64), list);
            }
            break;
        }
    }



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

        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }

        pgrammarNode1 = new AGrammar(listNode2, null, null, null, null, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }

        pgrammarNode1 = new AGrammar(listNode3, null, null, null, null, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, null, null, null, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, null, null, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        PStates pstatesNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        pstatesNode4 = (PStates)nodeArrayList1.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, pstatesNode4, null, null, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        PStates pstatesNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        pstatesNode5 = (PStates)nodeArrayList2.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, null, null, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        PStates pstatesNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        pstatesNode4 = (PStates)nodeArrayList2.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, pstatesNode4, null, null, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        PStates pstatesNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        pstatesNode5 = (PStates)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, null, null, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        @SuppressWarnings("unused") Object nullNode4 = null;
        PTokens ptokensNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        ptokensNode5 = (PTokens)nodeArrayList1.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, null, ptokensNode5, null, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PTokens ptokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        ptokensNode6 = (PTokens)nodeArrayList2.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, null, ptokensNode6, null, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        @SuppressWarnings("unused") Object nullNode4 = null;
        PTokens ptokensNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        ptokensNode5 = (PTokens)nodeArrayList2.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, null, ptokensNode5, null, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PTokens ptokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        ptokensNode6 = (PTokens)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, ptokensNode6, null, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        PStates pstatesNode4;
        PTokens ptokensNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        pstatesNode4 = (PStates)nodeArrayList1.get(0);
        ptokensNode5 = (PTokens)nodeArrayList2.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, pstatesNode4, ptokensNode5, null, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        PStates pstatesNode5;
        PTokens ptokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        pstatesNode5 = (PStates)nodeArrayList2.get(0);
        ptokensNode6 = (PTokens)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, ptokensNode6, null, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        PStates pstatesNode4;
        PTokens ptokensNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        pstatesNode4 = (PStates)nodeArrayList2.get(0);
        ptokensNode5 = (PTokens)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, pstatesNode4, ptokensNode5, null, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        PStates pstatesNode5;
        PTokens ptokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        pstatesNode5 = (PStates)nodeArrayList3.get(0);
        ptokensNode6 = (PTokens)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, ptokensNode6, null, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PIgnTokens pigntokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        pigntokensNode6 = (PIgnTokens)nodeArrayList1.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, null, null, pigntokensNode6, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PIgnTokens pigntokensNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        pigntokensNode7 = (PIgnTokens)nodeArrayList2.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, null, null, pigntokensNode7, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PIgnTokens pigntokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        pigntokensNode6 = (PIgnTokens)nodeArrayList2.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, null, null, pigntokensNode6, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PIgnTokens pigntokensNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        pigntokensNode7 = (PIgnTokens)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, null, pigntokensNode7, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        PStates pstatesNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PIgnTokens pigntokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        pstatesNode4 = (PStates)nodeArrayList1.get(0);
        pigntokensNode6 = (PIgnTokens)nodeArrayList2.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, pstatesNode4, null, pigntokensNode6, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        PStates pstatesNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PIgnTokens pigntokensNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        pstatesNode5 = (PStates)nodeArrayList2.get(0);
        pigntokensNode7 = (PIgnTokens)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, null, pigntokensNode7, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        PStates pstatesNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PIgnTokens pigntokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        pstatesNode4 = (PStates)nodeArrayList2.get(0);
        pigntokensNode6 = (PIgnTokens)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, pstatesNode4, null, pigntokensNode6, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        PStates pstatesNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PIgnTokens pigntokensNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        pstatesNode5 = (PStates)nodeArrayList3.get(0);
        pigntokensNode7 = (PIgnTokens)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, null, pigntokensNode7, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        @SuppressWarnings("unused") Object nullNode4 = null;
        PTokens ptokensNode5;
        PIgnTokens pigntokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        ptokensNode5 = (PTokens)nodeArrayList1.get(0);
        pigntokensNode6 = (PIgnTokens)nodeArrayList2.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, null, ptokensNode5, pigntokensNode6, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PTokens ptokensNode6;
        PIgnTokens pigntokensNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        ptokensNode6 = (PTokens)nodeArrayList2.get(0);
        pigntokensNode7 = (PIgnTokens)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, null, ptokensNode6, pigntokensNode7, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        @SuppressWarnings("unused") Object nullNode4 = null;
        PTokens ptokensNode5;
        PIgnTokens pigntokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        ptokensNode5 = (PTokens)nodeArrayList2.get(0);
        pigntokensNode6 = (PIgnTokens)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, null, ptokensNode5, pigntokensNode6, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PTokens ptokensNode6;
        PIgnTokens pigntokensNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        ptokensNode6 = (PTokens)nodeArrayList3.get(0);
        pigntokensNode7 = (PIgnTokens)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, ptokensNode6, pigntokensNode7, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        PStates pstatesNode4;
        PTokens ptokensNode5;
        PIgnTokens pigntokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        pstatesNode4 = (PStates)nodeArrayList1.get(0);
        ptokensNode5 = (PTokens)nodeArrayList2.get(0);
        pigntokensNode6 = (PIgnTokens)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, pstatesNode4, ptokensNode5, pigntokensNode6, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        PStates pstatesNode5;
        PTokens ptokensNode6;
        PIgnTokens pigntokensNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        pstatesNode5 = (PStates)nodeArrayList2.get(0);
        ptokensNode6 = (PTokens)nodeArrayList3.get(0);
        pigntokensNode7 = (PIgnTokens)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, ptokensNode6, pigntokensNode7, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        PStates pstatesNode4;
        PTokens ptokensNode5;
        PIgnTokens pigntokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        pstatesNode4 = (PStates)nodeArrayList2.get(0);
        ptokensNode5 = (PTokens)nodeArrayList3.get(0);
        pigntokensNode6 = (PIgnTokens)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, pstatesNode4, ptokensNode5, pigntokensNode6, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        PStates pstatesNode5;
        PTokens ptokensNode6;
        PIgnTokens pigntokensNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        pstatesNode5 = (PStates)nodeArrayList3.get(0);
        ptokensNode6 = (PTokens)nodeArrayList4.get(0);
        pigntokensNode7 = (PIgnTokens)nodeArrayList5.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, ptokensNode6, pigntokensNode7, null, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PProductions pproductionsNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        pproductionsNode7 = (PProductions)nodeArrayList1.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, null, null, null, pproductionsNode7, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PProductions pproductionsNode8;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        pproductionsNode8 = (PProductions)nodeArrayList2.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, null, null, null, pproductionsNode8, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PProductions pproductionsNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList2.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, null, null, null, pproductionsNode7, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PProductions pproductionsNode8;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, null, null, pproductionsNode8, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        PStates pstatesNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PProductions pproductionsNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        pstatesNode4 = (PStates)nodeArrayList1.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList2.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, pstatesNode4, null, null, pproductionsNode7, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        PStates pstatesNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PProductions pproductionsNode8;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        pstatesNode5 = (PStates)nodeArrayList2.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, null, null, pproductionsNode8, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        PStates pstatesNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PProductions pproductionsNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        pstatesNode4 = (PStates)nodeArrayList2.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, pstatesNode4, null, null, pproductionsNode7, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        PStates pstatesNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PProductions pproductionsNode8;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        pstatesNode5 = (PStates)nodeArrayList3.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, null, null, pproductionsNode8, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        @SuppressWarnings("unused") Object nullNode4 = null;
        PTokens ptokensNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PProductions pproductionsNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        ptokensNode5 = (PTokens)nodeArrayList1.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList2.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, null, ptokensNode5, null, pproductionsNode7, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PTokens ptokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PProductions pproductionsNode8;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        ptokensNode6 = (PTokens)nodeArrayList2.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, null, ptokensNode6, null, pproductionsNode8, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        @SuppressWarnings("unused") Object nullNode4 = null;
        PTokens ptokensNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PProductions pproductionsNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        ptokensNode5 = (PTokens)nodeArrayList2.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, null, ptokensNode5, null, pproductionsNode7, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PTokens ptokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PProductions pproductionsNode8;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        ptokensNode6 = (PTokens)nodeArrayList3.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, ptokensNode6, null, pproductionsNode8, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        PStates pstatesNode4;
        PTokens ptokensNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PProductions pproductionsNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        pstatesNode4 = (PStates)nodeArrayList1.get(0);
        ptokensNode5 = (PTokens)nodeArrayList2.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, pstatesNode4, ptokensNode5, null, pproductionsNode7, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        PStates pstatesNode5;
        PTokens ptokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PProductions pproductionsNode8;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        pstatesNode5 = (PStates)nodeArrayList2.get(0);
        ptokensNode6 = (PTokens)nodeArrayList3.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, ptokensNode6, null, pproductionsNode8, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        PStates pstatesNode4;
        PTokens ptokensNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PProductions pproductionsNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        pstatesNode4 = (PStates)nodeArrayList2.get(0);
        ptokensNode5 = (PTokens)nodeArrayList3.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, pstatesNode4, ptokensNode5, null, pproductionsNode7, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        PStates pstatesNode5;
        PTokens ptokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PProductions pproductionsNode8;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        pstatesNode5 = (PStates)nodeArrayList3.get(0);
        ptokensNode6 = (PTokens)nodeArrayList4.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList5.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, ptokensNode6, null, pproductionsNode8, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PIgnTokens pigntokensNode6;
        PProductions pproductionsNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        pigntokensNode6 = (PIgnTokens)nodeArrayList1.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList2.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, null, null, pigntokensNode6, pproductionsNode7, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PIgnTokens pigntokensNode7;
        PProductions pproductionsNode8;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        pigntokensNode7 = (PIgnTokens)nodeArrayList2.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, null, null, pigntokensNode7, pproductionsNode8, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PIgnTokens pigntokensNode6;
        PProductions pproductionsNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        pigntokensNode6 = (PIgnTokens)nodeArrayList2.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, null, null, pigntokensNode6, pproductionsNode7, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PIgnTokens pigntokensNode7;
        PProductions pproductionsNode8;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        pigntokensNode7 = (PIgnTokens)nodeArrayList3.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, null, pigntokensNode7, pproductionsNode8, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        PStates pstatesNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PIgnTokens pigntokensNode6;
        PProductions pproductionsNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        pstatesNode4 = (PStates)nodeArrayList1.get(0);
        pigntokensNode6 = (PIgnTokens)nodeArrayList2.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, pstatesNode4, null, pigntokensNode6, pproductionsNode7, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        PStates pstatesNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PIgnTokens pigntokensNode7;
        PProductions pproductionsNode8;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        pstatesNode5 = (PStates)nodeArrayList2.get(0);
        pigntokensNode7 = (PIgnTokens)nodeArrayList3.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, null, pigntokensNode7, pproductionsNode8, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        PStates pstatesNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PIgnTokens pigntokensNode6;
        PProductions pproductionsNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        pstatesNode4 = (PStates)nodeArrayList2.get(0);
        pigntokensNode6 = (PIgnTokens)nodeArrayList3.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, pstatesNode4, null, pigntokensNode6, pproductionsNode7, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        PStates pstatesNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PIgnTokens pigntokensNode7;
        PProductions pproductionsNode8;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        pstatesNode5 = (PStates)nodeArrayList3.get(0);
        pigntokensNode7 = (PIgnTokens)nodeArrayList4.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList5.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, null, pigntokensNode7, pproductionsNode8, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        @SuppressWarnings("unused") Object nullNode4 = null;
        PTokens ptokensNode5;
        PIgnTokens pigntokensNode6;
        PProductions pproductionsNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        ptokensNode5 = (PTokens)nodeArrayList1.get(0);
        pigntokensNode6 = (PIgnTokens)nodeArrayList2.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, null, ptokensNode5, pigntokensNode6, pproductionsNode7, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PTokens ptokensNode6;
        PIgnTokens pigntokensNode7;
        PProductions pproductionsNode8;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        ptokensNode6 = (PTokens)nodeArrayList2.get(0);
        pigntokensNode7 = (PIgnTokens)nodeArrayList3.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, null, ptokensNode6, pigntokensNode7, pproductionsNode8, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        @SuppressWarnings("unused") Object nullNode4 = null;
        PTokens ptokensNode5;
        PIgnTokens pigntokensNode6;
        PProductions pproductionsNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        ptokensNode5 = (PTokens)nodeArrayList2.get(0);
        pigntokensNode6 = (PIgnTokens)nodeArrayList3.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, null, ptokensNode5, pigntokensNode6, pproductionsNode7, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PTokens ptokensNode6;
        PIgnTokens pigntokensNode7;
        PProductions pproductionsNode8;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        ptokensNode6 = (PTokens)nodeArrayList3.get(0);
        pigntokensNode7 = (PIgnTokens)nodeArrayList4.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList5.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, ptokensNode6, pigntokensNode7, pproductionsNode8, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        PStates pstatesNode4;
        PTokens ptokensNode5;
        PIgnTokens pigntokensNode6;
        PProductions pproductionsNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        pstatesNode4 = (PStates)nodeArrayList1.get(0);
        ptokensNode5 = (PTokens)nodeArrayList2.get(0);
        pigntokensNode6 = (PIgnTokens)nodeArrayList3.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, pstatesNode4, ptokensNode5, pigntokensNode6, pproductionsNode7, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        PStates pstatesNode5;
        PTokens ptokensNode6;
        PIgnTokens pigntokensNode7;
        PProductions pproductionsNode8;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        pstatesNode5 = (PStates)nodeArrayList2.get(0);
        ptokensNode6 = (PTokens)nodeArrayList3.get(0);
        pigntokensNode7 = (PIgnTokens)nodeArrayList4.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList5.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, ptokensNode6, pigntokensNode7, pproductionsNode8, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        PStates pstatesNode4;
        PTokens ptokensNode5;
        PIgnTokens pigntokensNode6;
        PProductions pproductionsNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        pstatesNode4 = (PStates)nodeArrayList2.get(0);
        ptokensNode5 = (PTokens)nodeArrayList3.get(0);
        pigntokensNode6 = (PIgnTokens)nodeArrayList4.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList5.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, pstatesNode4, ptokensNode5, pigntokensNode6, pproductionsNode7, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        PStates pstatesNode5;
        PTokens ptokensNode6;
        PIgnTokens pigntokensNode7;
        PProductions pproductionsNode8;
        @SuppressWarnings("unused") Object nullNode9 = null;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        pstatesNode5 = (PStates)nodeArrayList3.get(0);
        ptokensNode6 = (PTokens)nodeArrayList4.get(0);
        pigntokensNode7 = (PIgnTokens)nodeArrayList5.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList6.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, ptokensNode6, pigntokensNode7, pproductionsNode8, null);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PAst pastNode8;
        {
            // Block
        }
        pastNode8 = (PAst)nodeArrayList1.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, null, null, null, null, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        pastNode9 = (PAst)nodeArrayList2.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, null, null, null, null, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PAst pastNode8;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        pastNode8 = (PAst)nodeArrayList2.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, null, null, null, null, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        pastNode9 = (PAst)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, null, null, null, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new68() /* reduce AAgrammar69Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        PStates pstatesNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PAst pastNode8;
        {
            // Block
        }
        pstatesNode4 = (PStates)nodeArrayList1.get(0);
        pastNode8 = (PAst)nodeArrayList2.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, pstatesNode4, null, null, null, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new69() /* reduce AAgrammar70Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        PStates pstatesNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        pstatesNode5 = (PStates)nodeArrayList2.get(0);
        pastNode9 = (PAst)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, null, null, null, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new70() /* reduce AAgrammar71Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        PStates pstatesNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PAst pastNode8;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        pstatesNode4 = (PStates)nodeArrayList2.get(0);
        pastNode8 = (PAst)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, pstatesNode4, null, null, null, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        PStates pstatesNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        pstatesNode5 = (PStates)nodeArrayList3.get(0);
        pastNode9 = (PAst)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, null, null, null, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        @SuppressWarnings("unused") Object nullNode4 = null;
        PTokens ptokensNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PAst pastNode8;
        {
            // Block
        }
        ptokensNode5 = (PTokens)nodeArrayList1.get(0);
        pastNode8 = (PAst)nodeArrayList2.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, null, ptokensNode5, null, null, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new73() /* reduce AAgrammar74Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PTokens ptokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        ptokensNode6 = (PTokens)nodeArrayList2.get(0);
        pastNode9 = (PAst)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, null, ptokensNode6, null, null, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new74() /* reduce AAgrammar75Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        @SuppressWarnings("unused") Object nullNode4 = null;
        PTokens ptokensNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PAst pastNode8;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        ptokensNode5 = (PTokens)nodeArrayList2.get(0);
        pastNode8 = (PAst)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, null, ptokensNode5, null, null, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new75() /* reduce AAgrammar76Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PTokens ptokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        ptokensNode6 = (PTokens)nodeArrayList3.get(0);
        pastNode9 = (PAst)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, ptokensNode6, null, null, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        PStates pstatesNode4;
        PTokens ptokensNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PAst pastNode8;
        {
            // Block
        }
        pstatesNode4 = (PStates)nodeArrayList1.get(0);
        ptokensNode5 = (PTokens)nodeArrayList2.get(0);
        pastNode8 = (PAst)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, pstatesNode4, ptokensNode5, null, null, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new77() /* reduce AAgrammar78Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        PStates pstatesNode5;
        PTokens ptokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        pstatesNode5 = (PStates)nodeArrayList2.get(0);
        ptokensNode6 = (PTokens)nodeArrayList3.get(0);
        pastNode9 = (PAst)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, ptokensNode6, null, null, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new78() /* reduce AAgrammar79Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        PStates pstatesNode4;
        PTokens ptokensNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PAst pastNode8;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        pstatesNode4 = (PStates)nodeArrayList2.get(0);
        ptokensNode5 = (PTokens)nodeArrayList3.get(0);
        pastNode8 = (PAst)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, pstatesNode4, ptokensNode5, null, null, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new79() /* reduce AAgrammar80Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        PStates pstatesNode5;
        PTokens ptokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        @SuppressWarnings("unused") Object nullNode8 = null;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        pstatesNode5 = (PStates)nodeArrayList3.get(0);
        ptokensNode6 = (PTokens)nodeArrayList4.get(0);
        pastNode9 = (PAst)nodeArrayList5.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, ptokensNode6, null, null, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PIgnTokens pigntokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PAst pastNode8;
        {
            // Block
        }
        pigntokensNode6 = (PIgnTokens)nodeArrayList1.get(0);
        pastNode8 = (PAst)nodeArrayList2.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, null, null, pigntokensNode6, null, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PIgnTokens pigntokensNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        pigntokensNode7 = (PIgnTokens)nodeArrayList2.get(0);
        pastNode9 = (PAst)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, null, null, pigntokensNode7, null, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PIgnTokens pigntokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PAst pastNode8;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        pigntokensNode6 = (PIgnTokens)nodeArrayList2.get(0);
        pastNode8 = (PAst)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, null, null, pigntokensNode6, null, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PIgnTokens pigntokensNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        pigntokensNode7 = (PIgnTokens)nodeArrayList3.get(0);
        pastNode9 = (PAst)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, null, pigntokensNode7, null, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        PStates pstatesNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PIgnTokens pigntokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PAst pastNode8;
        {
            // Block
        }
        pstatesNode4 = (PStates)nodeArrayList1.get(0);
        pigntokensNode6 = (PIgnTokens)nodeArrayList2.get(0);
        pastNode8 = (PAst)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, pstatesNode4, null, pigntokensNode6, null, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        PStates pstatesNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PIgnTokens pigntokensNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        pstatesNode5 = (PStates)nodeArrayList2.get(0);
        pigntokensNode7 = (PIgnTokens)nodeArrayList3.get(0);
        pastNode9 = (PAst)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, null, pigntokensNode7, null, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        PStates pstatesNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PIgnTokens pigntokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PAst pastNode8;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        pstatesNode4 = (PStates)nodeArrayList2.get(0);
        pigntokensNode6 = (PIgnTokens)nodeArrayList3.get(0);
        pastNode8 = (PAst)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, pstatesNode4, null, pigntokensNode6, null, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        PStates pstatesNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PIgnTokens pigntokensNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        pstatesNode5 = (PStates)nodeArrayList3.get(0);
        pigntokensNode7 = (PIgnTokens)nodeArrayList4.get(0);
        pastNode9 = (PAst)nodeArrayList5.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, null, pigntokensNode7, null, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        @SuppressWarnings("unused") Object nullNode4 = null;
        PTokens ptokensNode5;
        PIgnTokens pigntokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PAst pastNode8;
        {
            // Block
        }
        ptokensNode5 = (PTokens)nodeArrayList1.get(0);
        pigntokensNode6 = (PIgnTokens)nodeArrayList2.get(0);
        pastNode8 = (PAst)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, null, ptokensNode5, pigntokensNode6, null, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new89() /* reduce AAgrammar90Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PTokens ptokensNode6;
        PIgnTokens pigntokensNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        ptokensNode6 = (PTokens)nodeArrayList2.get(0);
        pigntokensNode7 = (PIgnTokens)nodeArrayList3.get(0);
        pastNode9 = (PAst)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, null, ptokensNode6, pigntokensNode7, null, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new90() /* reduce AAgrammar91Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        @SuppressWarnings("unused") Object nullNode4 = null;
        PTokens ptokensNode5;
        PIgnTokens pigntokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PAst pastNode8;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        ptokensNode5 = (PTokens)nodeArrayList2.get(0);
        pigntokensNode6 = (PIgnTokens)nodeArrayList3.get(0);
        pastNode8 = (PAst)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, null, ptokensNode5, pigntokensNode6, null, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new91() /* reduce AAgrammar92Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PTokens ptokensNode6;
        PIgnTokens pigntokensNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        ptokensNode6 = (PTokens)nodeArrayList3.get(0);
        pigntokensNode7 = (PIgnTokens)nodeArrayList4.get(0);
        pastNode9 = (PAst)nodeArrayList5.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, ptokensNode6, pigntokensNode7, null, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new92() /* reduce AAgrammar93Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        PStates pstatesNode4;
        PTokens ptokensNode5;
        PIgnTokens pigntokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PAst pastNode8;
        {
            // Block
        }
        pstatesNode4 = (PStates)nodeArrayList1.get(0);
        ptokensNode5 = (PTokens)nodeArrayList2.get(0);
        pigntokensNode6 = (PIgnTokens)nodeArrayList3.get(0);
        pastNode8 = (PAst)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, pstatesNode4, ptokensNode5, pigntokensNode6, null, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new93() /* reduce AAgrammar94Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        PStates pstatesNode5;
        PTokens ptokensNode6;
        PIgnTokens pigntokensNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        pstatesNode5 = (PStates)nodeArrayList2.get(0);
        ptokensNode6 = (PTokens)nodeArrayList3.get(0);
        pigntokensNode7 = (PIgnTokens)nodeArrayList4.get(0);
        pastNode9 = (PAst)nodeArrayList5.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, ptokensNode6, pigntokensNode7, null, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new94() /* reduce AAgrammar95Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        PStates pstatesNode4;
        PTokens ptokensNode5;
        PIgnTokens pigntokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PAst pastNode8;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        pstatesNode4 = (PStates)nodeArrayList2.get(0);
        ptokensNode5 = (PTokens)nodeArrayList3.get(0);
        pigntokensNode6 = (PIgnTokens)nodeArrayList4.get(0);
        pastNode8 = (PAst)nodeArrayList5.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, pstatesNode4, ptokensNode5, pigntokensNode6, null, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new95() /* reduce AAgrammar96Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        PStates pstatesNode5;
        PTokens ptokensNode6;
        PIgnTokens pigntokensNode7;
        @SuppressWarnings("unused") Object nullNode8 = null;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        pstatesNode5 = (PStates)nodeArrayList3.get(0);
        ptokensNode6 = (PTokens)nodeArrayList4.get(0);
        pigntokensNode7 = (PIgnTokens)nodeArrayList5.get(0);
        pastNode9 = (PAst)nodeArrayList6.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, ptokensNode6, pigntokensNode7, null, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new96() /* reduce AAgrammar97Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PProductions pproductionsNode7;
        PAst pastNode8;
        {
            // Block
        }
        pproductionsNode7 = (PProductions)nodeArrayList1.get(0);
        pastNode8 = (PAst)nodeArrayList2.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, null, null, null, pproductionsNode7, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new97() /* reduce AAgrammar98Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PProductions pproductionsNode8;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        pproductionsNode8 = (PProductions)nodeArrayList2.get(0);
        pastNode9 = (PAst)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, null, null, null, pproductionsNode8, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new98() /* reduce AAgrammar99Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PProductions pproductionsNode7;
        PAst pastNode8;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList2.get(0);
        pastNode8 = (PAst)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, null, null, null, pproductionsNode7, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new99() /* reduce AAgrammar100Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PProductions pproductionsNode8;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList3.get(0);
        pastNode9 = (PAst)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, null, null, pproductionsNode8, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new100() /* reduce AAgrammar101Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        PStates pstatesNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PProductions pproductionsNode7;
        PAst pastNode8;
        {
            // Block
        }
        pstatesNode4 = (PStates)nodeArrayList1.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList2.get(0);
        pastNode8 = (PAst)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, pstatesNode4, null, null, pproductionsNode7, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new101() /* reduce AAgrammar102Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        PStates pstatesNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PProductions pproductionsNode8;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        pstatesNode5 = (PStates)nodeArrayList2.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList3.get(0);
        pastNode9 = (PAst)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, null, null, pproductionsNode8, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new102() /* reduce AAgrammar103Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        PStates pstatesNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PProductions pproductionsNode7;
        PAst pastNode8;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        pstatesNode4 = (PStates)nodeArrayList2.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList3.get(0);
        pastNode8 = (PAst)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, pstatesNode4, null, null, pproductionsNode7, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new103() /* reduce AAgrammar104Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        PStates pstatesNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PProductions pproductionsNode8;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        pstatesNode5 = (PStates)nodeArrayList3.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList4.get(0);
        pastNode9 = (PAst)nodeArrayList5.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, null, null, pproductionsNode8, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new104() /* reduce AAgrammar105Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        @SuppressWarnings("unused") Object nullNode4 = null;
        PTokens ptokensNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PProductions pproductionsNode7;
        PAst pastNode8;
        {
            // Block
        }
        ptokensNode5 = (PTokens)nodeArrayList1.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList2.get(0);
        pastNode8 = (PAst)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, null, ptokensNode5, null, pproductionsNode7, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new105() /* reduce AAgrammar106Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PTokens ptokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PProductions pproductionsNode8;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        ptokensNode6 = (PTokens)nodeArrayList2.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList3.get(0);
        pastNode9 = (PAst)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, null, ptokensNode6, null, pproductionsNode8, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new106() /* reduce AAgrammar107Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        @SuppressWarnings("unused") Object nullNode4 = null;
        PTokens ptokensNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PProductions pproductionsNode7;
        PAst pastNode8;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        ptokensNode5 = (PTokens)nodeArrayList2.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList3.get(0);
        pastNode8 = (PAst)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, null, ptokensNode5, null, pproductionsNode7, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new107() /* reduce AAgrammar108Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PTokens ptokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PProductions pproductionsNode8;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        ptokensNode6 = (PTokens)nodeArrayList3.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList4.get(0);
        pastNode9 = (PAst)nodeArrayList5.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, ptokensNode6, null, pproductionsNode8, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new108() /* reduce AAgrammar109Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        PStates pstatesNode4;
        PTokens ptokensNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PProductions pproductionsNode7;
        PAst pastNode8;
        {
            // Block
        }
        pstatesNode4 = (PStates)nodeArrayList1.get(0);
        ptokensNode5 = (PTokens)nodeArrayList2.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList3.get(0);
        pastNode8 = (PAst)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, pstatesNode4, ptokensNode5, null, pproductionsNode7, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new109() /* reduce AAgrammar110Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        PStates pstatesNode5;
        PTokens ptokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PProductions pproductionsNode8;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        pstatesNode5 = (PStates)nodeArrayList2.get(0);
        ptokensNode6 = (PTokens)nodeArrayList3.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList4.get(0);
        pastNode9 = (PAst)nodeArrayList5.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, ptokensNode6, null, pproductionsNode8, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new110() /* reduce AAgrammar111Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        PStates pstatesNode4;
        PTokens ptokensNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PProductions pproductionsNode7;
        PAst pastNode8;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        pstatesNode4 = (PStates)nodeArrayList2.get(0);
        ptokensNode5 = (PTokens)nodeArrayList3.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList4.get(0);
        pastNode8 = (PAst)nodeArrayList5.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, pstatesNode4, ptokensNode5, null, pproductionsNode7, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new111() /* reduce AAgrammar112Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        PStates pstatesNode5;
        PTokens ptokensNode6;
        @SuppressWarnings("unused") Object nullNode7 = null;
        PProductions pproductionsNode8;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        pstatesNode5 = (PStates)nodeArrayList3.get(0);
        ptokensNode6 = (PTokens)nodeArrayList4.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList5.get(0);
        pastNode9 = (PAst)nodeArrayList6.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, ptokensNode6, null, pproductionsNode8, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new112() /* reduce AAgrammar113Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PIgnTokens pigntokensNode6;
        PProductions pproductionsNode7;
        PAst pastNode8;
        {
            // Block
        }
        pigntokensNode6 = (PIgnTokens)nodeArrayList1.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList2.get(0);
        pastNode8 = (PAst)nodeArrayList3.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, null, null, pigntokensNode6, pproductionsNode7, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new113() /* reduce AAgrammar114Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PIgnTokens pigntokensNode7;
        PProductions pproductionsNode8;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        pigntokensNode7 = (PIgnTokens)nodeArrayList2.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList3.get(0);
        pastNode9 = (PAst)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, null, null, pigntokensNode7, pproductionsNode8, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new114() /* reduce AAgrammar115Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PIgnTokens pigntokensNode6;
        PProductions pproductionsNode7;
        PAst pastNode8;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        pigntokensNode6 = (PIgnTokens)nodeArrayList2.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList3.get(0);
        pastNode8 = (PAst)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, null, null, pigntokensNode6, pproductionsNode7, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new115() /* reduce AAgrammar116Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PIgnTokens pigntokensNode7;
        PProductions pproductionsNode8;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        pigntokensNode7 = (PIgnTokens)nodeArrayList3.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList4.get(0);
        pastNode9 = (PAst)nodeArrayList5.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, null, pigntokensNode7, pproductionsNode8, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new116() /* reduce AAgrammar117Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        PStates pstatesNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PIgnTokens pigntokensNode6;
        PProductions pproductionsNode7;
        PAst pastNode8;
        {
            // Block
        }
        pstatesNode4 = (PStates)nodeArrayList1.get(0);
        pigntokensNode6 = (PIgnTokens)nodeArrayList2.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList3.get(0);
        pastNode8 = (PAst)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, pstatesNode4, null, pigntokensNode6, pproductionsNode7, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new117() /* reduce AAgrammar118Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        PStates pstatesNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PIgnTokens pigntokensNode7;
        PProductions pproductionsNode8;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        pstatesNode5 = (PStates)nodeArrayList2.get(0);
        pigntokensNode7 = (PIgnTokens)nodeArrayList3.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList4.get(0);
        pastNode9 = (PAst)nodeArrayList5.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, null, pigntokensNode7, pproductionsNode8, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new118() /* reduce AAgrammar119Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        PStates pstatesNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PIgnTokens pigntokensNode6;
        PProductions pproductionsNode7;
        PAst pastNode8;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        pstatesNode4 = (PStates)nodeArrayList2.get(0);
        pigntokensNode6 = (PIgnTokens)nodeArrayList3.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList4.get(0);
        pastNode8 = (PAst)nodeArrayList5.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, pstatesNode4, null, pigntokensNode6, pproductionsNode7, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new119() /* reduce AAgrammar120Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        PStates pstatesNode5;
        @SuppressWarnings("unused") Object nullNode6 = null;
        PIgnTokens pigntokensNode7;
        PProductions pproductionsNode8;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        pstatesNode5 = (PStates)nodeArrayList3.get(0);
        pigntokensNode7 = (PIgnTokens)nodeArrayList4.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList5.get(0);
        pastNode9 = (PAst)nodeArrayList6.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, null, pigntokensNode7, pproductionsNode8, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new120() /* reduce AAgrammar121Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        @SuppressWarnings("unused") Object nullNode4 = null;
        PTokens ptokensNode5;
        PIgnTokens pigntokensNode6;
        PProductions pproductionsNode7;
        PAst pastNode8;
        {
            // Block
        }
        ptokensNode5 = (PTokens)nodeArrayList1.get(0);
        pigntokensNode6 = (PIgnTokens)nodeArrayList2.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList3.get(0);
        pastNode8 = (PAst)nodeArrayList4.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, null, ptokensNode5, pigntokensNode6, pproductionsNode7, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new121() /* reduce AAgrammar122Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PTokens ptokensNode6;
        PIgnTokens pigntokensNode7;
        PProductions pproductionsNode8;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        ptokensNode6 = (PTokens)nodeArrayList2.get(0);
        pigntokensNode7 = (PIgnTokens)nodeArrayList3.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList4.get(0);
        pastNode9 = (PAst)nodeArrayList5.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, null, ptokensNode6, pigntokensNode7, pproductionsNode8, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new122() /* reduce AAgrammar123Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        @SuppressWarnings("unused") Object nullNode4 = null;
        PTokens ptokensNode5;
        PIgnTokens pigntokensNode6;
        PProductions pproductionsNode7;
        PAst pastNode8;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        ptokensNode5 = (PTokens)nodeArrayList2.get(0);
        pigntokensNode6 = (PIgnTokens)nodeArrayList3.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList4.get(0);
        pastNode8 = (PAst)nodeArrayList5.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, null, ptokensNode5, pigntokensNode6, pproductionsNode7, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new123() /* reduce AAgrammar124Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        PTokens ptokensNode6;
        PIgnTokens pigntokensNode7;
        PProductions pproductionsNode8;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        ptokensNode6 = (PTokens)nodeArrayList3.get(0);
        pigntokensNode7 = (PIgnTokens)nodeArrayList4.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList5.get(0);
        pastNode9 = (PAst)nodeArrayList6.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, null, ptokensNode6, pigntokensNode7, pproductionsNode8, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new124() /* reduce AAgrammar125Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode3 = null;
        PStates pstatesNode4;
        PTokens ptokensNode5;
        PIgnTokens pigntokensNode6;
        PProductions pproductionsNode7;
        PAst pastNode8;
        {
            // Block
        }
        pstatesNode4 = (PStates)nodeArrayList1.get(0);
        ptokensNode5 = (PTokens)nodeArrayList2.get(0);
        pigntokensNode6 = (PIgnTokens)nodeArrayList3.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList4.get(0);
        pastNode8 = (PAst)nodeArrayList5.get(0);

        pgrammarNode1 = new AGrammar(listNode2, null, pstatesNode4, ptokensNode5, pigntokensNode6, pproductionsNode7, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new125() /* reduce AAgrammar126Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        PStates pstatesNode5;
        PTokens ptokensNode6;
        PIgnTokens pigntokensNode7;
        PProductions pproductionsNode8;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        pstatesNode5 = (PStates)nodeArrayList2.get(0);
        ptokensNode6 = (PTokens)nodeArrayList3.get(0);
        pigntokensNode7 = (PIgnTokens)nodeArrayList4.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList5.get(0);
        pastNode9 = (PAst)nodeArrayList6.get(0);

        pgrammarNode1 = new AGrammar(listNode3, null, pstatesNode5, ptokensNode6, pigntokensNode7, pproductionsNode8, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new126() /* reduce AAgrammar127Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        PHelpers phelpersNode3;
        PStates pstatesNode4;
        PTokens ptokensNode5;
        PIgnTokens pigntokensNode6;
        PProductions pproductionsNode7;
        PAst pastNode8;
        {
            // Block
        }
        phelpersNode3 = (PHelpers)nodeArrayList1.get(0);
        pstatesNode4 = (PStates)nodeArrayList2.get(0);
        ptokensNode5 = (PTokens)nodeArrayList3.get(0);
        pigntokensNode6 = (PIgnTokens)nodeArrayList4.get(0);
        pproductionsNode7 = (PProductions)nodeArrayList5.get(0);
        pastNode8 = (PAst)nodeArrayList6.get(0);

        pgrammarNode1 = new AGrammar(listNode2, phelpersNode3, pstatesNode4, ptokensNode5, pigntokensNode6, pproductionsNode7, pastNode8);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new127() /* reduce AAgrammar128Grammar */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList7 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PGrammar pgrammarNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PHelpers phelpersNode4;
        PStates pstatesNode5;
        PTokens ptokensNode6;
        PIgnTokens pigntokensNode7;
        PProductions pproductionsNode8;
        PAst pastNode9;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
        phelpersNode4 = (PHelpers)nodeArrayList2.get(0);
        pstatesNode5 = (PStates)nodeArrayList3.get(0);
        ptokensNode6 = (PTokens)nodeArrayList4.get(0);
        pigntokensNode7 = (PIgnTokens)nodeArrayList5.get(0);
        pproductionsNode8 = (PProductions)nodeArrayList6.get(0);
        pastNode9 = (PAst)nodeArrayList7.get(0);

        pgrammarNode1 = new AGrammar(listNode3, phelpersNode4, pstatesNode5, ptokensNode6, pigntokensNode7, pproductionsNode8, pastNode9);
        }
	nodeList.add(pgrammarNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new128() /* reduce APackage */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

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



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new129() /* reduce AApkgname1PkgName */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        {
            // Block
        TPkgId tpkgidNode1;
        tpkgidNode1 = (TPkgId)nodeArrayList1.get(0);
	if(tpkgidNode1 != null)
	{
	  listNode2.add(tpkgidNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new130() /* reduce AApkgname2PkgName */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        {
            // Block
        TPkgId tpkgidNode1;
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        tpkgidNode1 = (TPkgId)nodeArrayList1.get(0);
        listNode2 = (LinkedList)nodeArrayList2.get(0);
	if(tpkgidNode1 != null)
	{
	  listNode3.add(tpkgidNode1);
	}
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
	nodeList.add(listNode3);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new131() /* reduce APkgNameTail */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        TPkgId tpkgidNode1;
        tpkgidNode1 = (TPkgId)nodeArrayList2.get(0);
	nodeList.add(tpkgidNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new132() /* reduce AHelpers */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PHelpers phelpersNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList2.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }

        phelpersNode1 = new AHelpers(listNode3);
        }
	nodeList.add(phelpersNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new133() /* reduce AHelperDef */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PHelperDef phelperdefNode1;
        {
            // Block
        TId tidNode2;
        PRegExp pregexpNode3;
        tidNode2 = (TId)nodeArrayList1.get(0);
        pregexpNode3 = (PRegExp)nodeArrayList3.get(0);

        phelperdefNode1 = new AHelperDef(tidNode2, pregexpNode3);
        }
	nodeList.add(phelperdefNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PStates pstatesNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList2.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }

        pstatesNode1 = new AStates(listNode3);
        }
	nodeList.add(pstatesNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        {
            // Block
        TId tidNode1;
        tidNode1 = (TId)nodeArrayList1.get(0);
	if(tidNode1 != null)
	{
	  listNode2.add(tidNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        {
            // Block
        TId tidNode1;
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        tidNode1 = (TId)nodeArrayList1.get(0);
        listNode2 = (LinkedList)nodeArrayList2.get(0);
	if(tidNode1 != null)
	{
	  listNode3.add(tidNode1);
	}
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
	nodeList.add(listNode3);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        TId tidNode1;
        tidNode1 = (TId)nodeArrayList2.get(0);
	nodeList.add(tidNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PTokens ptokensNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList2.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }

        ptokensNode1 = new ATokens(listNode3);
        }
	nodeList.add(ptokensNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PTokenDef ptokendefNode1;
        {
            // Block
        @SuppressWarnings("unused") Object nullNode2 = null;
        TId tidNode3;
        PRegExp pregexpNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        tidNode3 = (TId)nodeArrayList1.get(0);
        pregexpNode4 = (PRegExp)nodeArrayList3.get(0);

        ptokendefNode1 = new ATokenDef(null, tidNode3, pregexpNode4, null, null);
        }
	nodeList.add(ptokendefNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PTokenDef ptokendefNode1;
        {
            // Block
        PStateList pstatelistNode2;
        TId tidNode3;
        PRegExp pregexpNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        @SuppressWarnings("unused") Object nullNode6 = null;
        pstatelistNode2 = (PStateList)nodeArrayList1.get(0);
        tidNode3 = (TId)nodeArrayList2.get(0);
        pregexpNode4 = (PRegExp)nodeArrayList4.get(0);

        ptokendefNode1 = new ATokenDef(pstatelistNode2, tidNode3, pregexpNode4, null, null);
        }
	nodeList.add(ptokendefNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PTokenDef ptokendefNode1;
        {
            // Block
        @SuppressWarnings("unused") Object nullNode2 = null;
        TId tidNode3;
        PRegExp pregexpNode4;
        TSlash tslashNode5;
        PRegExp pregexpNode6;
        tidNode3 = (TId)nodeArrayList1.get(0);
        pregexpNode4 = (PRegExp)nodeArrayList3.get(0);
        tslashNode5 = (TSlash)nodeArrayList4.get(0);
        pregexpNode6 = (PRegExp)nodeArrayList4.get(1);

        ptokendefNode1 = new ATokenDef(null, tidNode3, pregexpNode4, tslashNode5, pregexpNode6);
        }
	nodeList.add(ptokendefNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList6 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PTokenDef ptokendefNode1;
        {
            // Block
        PStateList pstatelistNode2;
        TId tidNode3;
        PRegExp pregexpNode4;
        TSlash tslashNode5;
        PRegExp pregexpNode6;
        pstatelistNode2 = (PStateList)nodeArrayList1.get(0);
        tidNode3 = (TId)nodeArrayList2.get(0);
        pregexpNode4 = (PRegExp)nodeArrayList4.get(0);
        tslashNode5 = (TSlash)nodeArrayList5.get(0);
        pregexpNode6 = (PRegExp)nodeArrayList5.get(1);

        ptokendefNode1 = new ATokenDef(pstatelistNode2, tidNode3, pregexpNode4, tslashNode5, pregexpNode6);
        }
	nodeList.add(ptokendefNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PStateList pstatelistNode1;
        {
            // Block
        TId tidNode2;
        @SuppressWarnings("unused") Object nullNode3 = null;
        LinkedList<Object> listNode4 = new LinkedList<Object>();
        tidNode2 = (TId)nodeArrayList2.get(0);
        {
            // Block
        }

        pstatelistNode1 = new AStateList(tidNode2, null, listNode4);
        }
	nodeList.add(pstatelistNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PStateList pstatelistNode1;
        {
            // Block
        TId tidNode2;
        PTransition ptransitionNode3;
        LinkedList<Object> listNode4 = new LinkedList<Object>();
        tidNode2 = (TId)nodeArrayList2.get(0);
        ptransitionNode3 = (PTransition)nodeArrayList3.get(0);
        {
            // Block
        }

        pstatelistNode1 = new AStateList(tidNode2, ptransitionNode3, listNode4);
        }
	nodeList.add(pstatelistNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PStateList pstatelistNode1;
        {
            // Block
        TId tidNode2;
        @SuppressWarnings("unused") Object nullNode3 = null;
        LinkedList<Object> listNode5 = new LinkedList<Object>();
        tidNode2 = (TId)nodeArrayList2.get(0);
        {
            // Block
        LinkedList<Object> listNode4 = new LinkedList<Object>();
        listNode4 = (LinkedList)nodeArrayList3.get(0);
	if(listNode4 != null)
	{
	  listNode5.addAll(listNode4);
	}
        }

        pstatelistNode1 = new AStateList(tidNode2, null, listNode5);
        }
	nodeList.add(pstatelistNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PStateList pstatelistNode1;
        {
            // Block
        TId tidNode2;
        PTransition ptransitionNode3;
        LinkedList<Object> listNode5 = new LinkedList<Object>();
        tidNode2 = (TId)nodeArrayList2.get(0);
        ptransitionNode3 = (PTransition)nodeArrayList3.get(0);
        {
            // Block
        LinkedList<Object> listNode4 = new LinkedList<Object>();
        listNode4 = (LinkedList)nodeArrayList4.get(0);
	if(listNode4 != null)
	{
	  listNode5.addAll(listNode4);
	}
        }

        pstatelistNode1 = new AStateList(tidNode2, ptransitionNode3, listNode5);
        }
	nodeList.add(pstatelistNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PStateListTail pstatelisttailNode1;
        {
            // Block
        TId tidNode2;
        @SuppressWarnings("unused") Object nullNode3 = null;
        tidNode2 = (TId)nodeArrayList2.get(0);

        pstatelisttailNode1 = new AStateListTail(tidNode2, null);
        }
	nodeList.add(pstatelisttailNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PStateListTail pstatelisttailNode1;
        {
            // Block
        TId tidNode2;
        PTransition ptransitionNode3;
        tidNode2 = (TId)nodeArrayList2.get(0);
        ptransitionNode3 = (PTransition)nodeArrayList3.get(0);

        pstatelisttailNode1 = new AStateListTail(tidNode2, ptransitionNode3);
        }
	nodeList.add(pstatelisttailNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PTransition ptransitionNode1;
        {
            // Block
        TId tidNode2;
        tidNode2 = (TId)nodeArrayList2.get(0);

        ptransitionNode1 = new ATransition(tidNode2);
        }
	nodeList.add(ptransitionNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PIgnTokens pigntokensNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        {
            // Block
        }

        pigntokensNode1 = new AIgnTokens(listNode2);
        }
	nodeList.add(pigntokensNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PIgnTokens pigntokensNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList3.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }

        pigntokensNode1 = new AIgnTokens(listNode3);
        }
	nodeList.add(pigntokensNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        TSlash tslashNode1;
        PRegExp pregexpNode2;
        tslashNode1 = (TSlash)nodeArrayList1.get(0);
        pregexpNode2 = (PRegExp)nodeArrayList2.get(0);
	nodeList.add(tslashNode1);
	nodeList.add(pregexpNode2);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PRegExp pregexpNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        {
            // Block
        PConcat pconcatNode2;
        pconcatNode2 = (PConcat)nodeArrayList1.get(0);
	if(pconcatNode2 != null)
	{
	  listNode3.add(pconcatNode2);
	}
        }

        pregexpNode1 = new ARegExp(listNode3);
        }
	nodeList.add(pregexpNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PRegExp pregexpNode1;
        {
            // Block
        LinkedList<Object> listNode4 = new LinkedList<Object>();
        {
            // Block
        PConcat pconcatNode2;
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        pconcatNode2 = (PConcat)nodeArrayList1.get(0);
        listNode3 = (LinkedList)nodeArrayList2.get(0);
	if(pconcatNode2 != null)
	{
	  listNode4.add(pconcatNode2);
	}
	if(listNode3 != null)
	{
	  listNode4.addAll(listNode3);
	}
        }

        pregexpNode1 = new ARegExp(listNode4);
        }
	nodeList.add(pregexpNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PConcat pconcatNode1;
        pconcatNode1 = (PConcat)nodeArrayList2.get(0);
	nodeList.add(pconcatNode1);
        return nodeList;
    }



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

        PConcat pconcatNode1;
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        {
            // Block
        }

        pconcatNode1 = new AConcat(listNode2);
        }
	nodeList.add(pconcatNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PConcat pconcatNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList1.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }

        pconcatNode1 = new AConcat(listNode3);
        }
	nodeList.add(pconcatNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PUnExp punexpNode1;
        {
            // Block
        PBasic pbasicNode2;
        @SuppressWarnings("unused") Object nullNode3 = null;
        pbasicNode2 = (PBasic)nodeArrayList1.get(0);

        punexpNode1 = new AUnExp(pbasicNode2, null);
        }
	nodeList.add(punexpNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PUnExp punexpNode1;
        {
            // Block
        PBasic pbasicNode2;
        PUnOp punopNode3;
        pbasicNode2 = (PBasic)nodeArrayList1.get(0);
        punopNode3 = (PUnOp)nodeArrayList2.get(0);

        punexpNode1 = new AUnExp(pbasicNode2, punopNode3);
        }
	nodeList.add(punexpNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PBasic pbasicNode1;
        {
            // Block
        PChar pcharNode2;
        pcharNode2 = (PChar)nodeArrayList1.get(0);

        pbasicNode1 = new ACharBasic(pcharNode2);
        }
	nodeList.add(pbasicNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PBasic pbasicNode1;
        {
            // Block
        PSet psetNode2;
        psetNode2 = (PSet)nodeArrayList1.get(0);

        pbasicNode1 = new ASetBasic(psetNode2);
        }
	nodeList.add(pbasicNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PBasic pbasicNode1;
        {
            // Block
        TString tstringNode2;
        tstringNode2 = (TString)nodeArrayList1.get(0);

        pbasicNode1 = new AStringBasic(tstringNode2);
        }
	nodeList.add(pbasicNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PBasic pbasicNode1;
        {
            // Block
        TId tidNode2;
        tidNode2 = (TId)nodeArrayList1.get(0);

        pbasicNode1 = new AIdBasic(tidNode2);
        }
	nodeList.add(pbasicNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PBasic pbasicNode1;
        {
            // Block
        PRegExp pregexpNode2;
        pregexpNode2 = (PRegExp)nodeArrayList2.get(0);

        pbasicNode1 = new ARegExpBasic(pregexpNode2);
        }
	nodeList.add(pbasicNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PChar pcharNode1;
        {
            // Block
        TChar tcharNode2;
        tcharNode2 = (TChar)nodeArrayList1.get(0);

        pcharNode1 = new ACharChar(tcharNode2);
        }
	nodeList.add(pcharNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PChar pcharNode1;
        {
            // Block
        TDecChar tdeccharNode2;
        tdeccharNode2 = (TDecChar)nodeArrayList1.get(0);

        pcharNode1 = new ADecChar(tdeccharNode2);
        }
	nodeList.add(pcharNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PChar pcharNode1;
        {
            // Block
        THexChar thexcharNode2;
        thexcharNode2 = (THexChar)nodeArrayList1.get(0);

        pcharNode1 = new AHexChar(thexcharNode2);
        }
	nodeList.add(pcharNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PSet psetNode1;
        {
            // Block
        PBasic pbasicNode2;
        PBinOp pbinopNode3;
        PBasic pbasicNode4;
        pbasicNode2 = (PBasic)nodeArrayList2.get(0);
        pbinopNode3 = (PBinOp)nodeArrayList3.get(0);
        pbasicNode4 = (PBasic)nodeArrayList4.get(0);

        psetNode1 = new AOperationSet(pbasicNode2, pbinopNode3, pbasicNode4);
        }
	nodeList.add(psetNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PSet psetNode1;
        {
            // Block
        PChar pcharNode2;
        PChar pcharNode3;
        pcharNode2 = (PChar)nodeArrayList2.get(0);
        pcharNode3 = (PChar)nodeArrayList4.get(0);

        psetNode1 = new AIntervalSet(pcharNode2, pcharNode3);
        }
	nodeList.add(psetNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PUnOp punopNode1;
        {
            // Block
        TStar tstarNode2;
        tstarNode2 = (TStar)nodeArrayList1.get(0);

        punopNode1 = new AStarUnOp(tstarNode2);
        }
	nodeList.add(punopNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PUnOp punopNode1;
        {
            // Block
        TQMark tqmarkNode2;
        tqmarkNode2 = (TQMark)nodeArrayList1.get(0);

        punopNode1 = new AQMarkUnOp(tqmarkNode2);
        }
	nodeList.add(punopNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PUnOp punopNode1;
        {
            // Block
        TPlus tplusNode2;
        tplusNode2 = (TPlus)nodeArrayList1.get(0);

        punopNode1 = new APlusUnOp(tplusNode2);
        }
	nodeList.add(punopNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PBinOp pbinopNode1;
        {
            // Block

        pbinopNode1 = new APlusBinOp();
        }
	nodeList.add(pbinopNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PBinOp pbinopNode1;
        {
            // Block

        pbinopNode1 = new AMinusBinOp();
        }
	nodeList.add(pbinopNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PProductions pproductionsNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList2.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }

        pproductionsNode1 = new AProductions(listNode3);
        }
	nodeList.add(pproductionsNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PProd pprodNode1;
        {
            // Block
        TId tidNode2;
        @SuppressWarnings("unused") Object nullNode3 = null;
        LinkedList<Object> listNode4 = new LinkedList<Object>();
        LinkedList<Object> listNode6 = new LinkedList<Object>();
        tidNode2 = (TId)nodeArrayList1.get(0);
        {
            // Block
        }
        {
            // Block
        LinkedList<Object> listNode5 = new LinkedList<Object>();
        listNode5 = (LinkedList)nodeArrayList3.get(0);
	if(listNode5 != null)
	{
	  listNode6.addAll(listNode5);
	}
        }

        pprodNode1 = new AProd(tidNode2, null, listNode4, listNode6);
        }
	nodeList.add(pprodNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PProd pprodNode1;
        {
            // Block
        TId tidNode2;
        TArrow tarrowNode3;
        LinkedList<Object> listNode5 = new LinkedList<Object>();
        LinkedList<Object> listNode7 = new LinkedList<Object>();
        tidNode2 = (TId)nodeArrayList1.get(0);
        tarrowNode3 = (TArrow)nodeArrayList2.get(0);
        {
            // Block
        LinkedList<Object> listNode4 = new LinkedList<Object>();
        listNode4 = (LinkedList)nodeArrayList2.get(1);
	if(listNode4 != null)
	{
	  listNode5.addAll(listNode4);
	}
        }
        {
            // Block
        LinkedList<Object> listNode6 = new LinkedList<Object>();
        listNode6 = (LinkedList)nodeArrayList4.get(0);
	if(listNode6 != null)
	{
	  listNode7.addAll(listNode6);
	}
        }

        pprodNode1 = new AProd(tidNode2, tarrowNode3, listNode5, listNode7);
        }
	nodeList.add(pprodNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        TArrow tarrowNode1;
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        tarrowNode1 = (TArrow)nodeArrayList2.get(0);
        {
            // Block
        }
	nodeList.add(tarrowNode1);
	nodeList.add(listNode2);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        TArrow tarrowNode1;
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        tarrowNode1 = (TArrow)nodeArrayList2.get(0);
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList3.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
	nodeList.add(tarrowNode1);
	nodeList.add(listNode3);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        {
            // Block
        PAlt paltNode1;
        paltNode1 = (PAlt)nodeArrayList1.get(0);
	if(paltNode1 != null)
	{
	  listNode2.add(paltNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        {
            // Block
        PAlt paltNode1;
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        paltNode1 = (PAlt)nodeArrayList1.get(0);
        listNode2 = (LinkedList)nodeArrayList2.get(0);
	if(paltNode1 != null)
	{
	  listNode3.add(paltNode1);
	}
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
	nodeList.add(listNode3);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PAlt paltNode1;
        paltNode1 = (PAlt)nodeArrayList2.get(0);
	nodeList.add(paltNode1);
        return nodeList;
    }



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

        PAlt paltNode1;
        {
            // Block
        @SuppressWarnings("unused") Object nullNode2 = null;
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        {
            // Block
        }

        paltNode1 = new AAlt(null, listNode3, null);
        }
	nodeList.add(paltNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PAlt paltNode1;
        {
            // Block
        TId tidNode2;
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode4 = null;
        tidNode2 = (TId)nodeArrayList1.get(0);
        {
            // Block
        }

        paltNode1 = new AAlt(tidNode2, listNode3, null);
        }
	nodeList.add(paltNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PAlt paltNode1;
        {
            // Block
        @SuppressWarnings("unused") Object nullNode2 = null;
        LinkedList<Object> listNode4 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode5 = null;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        listNode3 = (LinkedList)nodeArrayList1.get(0);
	if(listNode3 != null)
	{
	  listNode4.addAll(listNode3);
	}
        }

        paltNode1 = new AAlt(null, listNode4, null);
        }
	nodeList.add(paltNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PAlt paltNode1;
        {
            // Block
        TId tidNode2;
        LinkedList<Object> listNode4 = new LinkedList<Object>();
        @SuppressWarnings("unused") Object nullNode5 = null;
        tidNode2 = (TId)nodeArrayList1.get(0);
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        listNode3 = (LinkedList)nodeArrayList2.get(0);
	if(listNode3 != null)
	{
	  listNode4.addAll(listNode3);
	}
        }

        paltNode1 = new AAlt(tidNode2, listNode4, null);
        }
	nodeList.add(paltNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PAlt paltNode1;
        {
            // Block
        @SuppressWarnings("unused") Object nullNode2 = null;
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PAltTransform palttransformNode4;
        {
            // Block
        }
        palttransformNode4 = (PAltTransform)nodeArrayList1.get(0);

        paltNode1 = new AAlt(null, listNode3, palttransformNode4);
        }
	nodeList.add(paltNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PAlt paltNode1;
        {
            // Block
        TId tidNode2;
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        PAltTransform palttransformNode4;
        tidNode2 = (TId)nodeArrayList1.get(0);
        {
            // Block
        }
        palttransformNode4 = (PAltTransform)nodeArrayList2.get(0);

        paltNode1 = new AAlt(tidNode2, listNode3, palttransformNode4);
        }
	nodeList.add(paltNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PAlt paltNode1;
        {
            // Block
        @SuppressWarnings("unused") Object nullNode2 = null;
        LinkedList<Object> listNode4 = new LinkedList<Object>();
        PAltTransform palttransformNode5;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        listNode3 = (LinkedList)nodeArrayList1.get(0);
	if(listNode3 != null)
	{
	  listNode4.addAll(listNode3);
	}
        }
        palttransformNode5 = (PAltTransform)nodeArrayList2.get(0);

        paltNode1 = new AAlt(null, listNode4, palttransformNode5);
        }
	nodeList.add(paltNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PAlt paltNode1;
        {
            // Block
        TId tidNode2;
        LinkedList<Object> listNode4 = new LinkedList<Object>();
        PAltTransform palttransformNode5;
        tidNode2 = (TId)nodeArrayList1.get(0);
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        listNode3 = (LinkedList)nodeArrayList2.get(0);
	if(listNode3 != null)
	{
	  listNode4.addAll(listNode3);
	}
        }
        palttransformNode5 = (PAltTransform)nodeArrayList3.get(0);

        paltNode1 = new AAlt(tidNode2, listNode4, palttransformNode5);
        }
	nodeList.add(paltNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PAltTransform palttransformNode1;
        {
            // Block
        TLBrace tlbraceNode2;
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        TRBrace trbraceNode4;
        tlbraceNode2 = (TLBrace)nodeArrayList1.get(0);
        {
            // Block
        }
        trbraceNode4 = (TRBrace)nodeArrayList3.get(0);

        palttransformNode1 = new AAltTransform(tlbraceNode2, listNode3, trbraceNode4);
        }
	nodeList.add(palttransformNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PAltTransform palttransformNode1;
        {
            // Block
        TLBrace tlbraceNode2;
        LinkedList<Object> listNode4 = new LinkedList<Object>();
        TRBrace trbraceNode5;
        tlbraceNode2 = (TLBrace)nodeArrayList1.get(0);
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        listNode3 = (LinkedList)nodeArrayList3.get(0);
	if(listNode3 != null)
	{
	  listNode4.addAll(listNode3);
	}
        }
        trbraceNode5 = (TRBrace)nodeArrayList4.get(0);

        palttransformNode1 = new AAltTransform(tlbraceNode2, listNode4, trbraceNode5);
        }
	nodeList.add(palttransformNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PTerm ptermNode1;
        {
            // Block
        PProdName pprodnameNode2;
        TLPar tlparNode3;
        LinkedList<Object> listNode4 = new LinkedList<Object>();
        pprodnameNode2 = (PProdName)nodeArrayList2.get(0);
        tlparNode3 = (TLPar)nodeArrayList3.get(0);
        {
            // Block
        }

        ptermNode1 = new ANewTerm(pprodnameNode2, tlparNode3, listNode4);
        }
	nodeList.add(ptermNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PTerm ptermNode1;
        {
            // Block
        PProdName pprodnameNode2;
        TLPar tlparNode3;
        LinkedList<Object> listNode5 = new LinkedList<Object>();
        pprodnameNode2 = (PProdName)nodeArrayList2.get(0);
        tlparNode3 = (TLPar)nodeArrayList3.get(0);
        {
            // Block
        LinkedList<Object> listNode4 = new LinkedList<Object>();
        listNode4 = (LinkedList)nodeArrayList4.get(0);
	if(listNode4 != null)
	{
	  listNode5.addAll(listNode4);
	}
        }

        ptermNode1 = new ANewTerm(pprodnameNode2, tlparNode3, listNode5);
        }
	nodeList.add(ptermNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PTerm ptermNode1;
        {
            // Block
        TLBkt tlbktNode2;
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        tlbktNode2 = (TLBkt)nodeArrayList1.get(0);
        {
            // Block
        }

        ptermNode1 = new AListTerm(tlbktNode2, listNode3);
        }
	nodeList.add(ptermNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PTerm ptermNode1;
        {
            // Block
        TLBkt tlbktNode2;
        LinkedList<Object> listNode4 = new LinkedList<Object>();
        tlbktNode2 = (TLBkt)nodeArrayList1.get(0);
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        listNode3 = (LinkedList)nodeArrayList2.get(0);
	if(listNode3 != null)
	{
	  listNode4.addAll(listNode3);
	}
        }

        ptermNode1 = new AListTerm(tlbktNode2, listNode4);
        }
	nodeList.add(ptermNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PTerm ptermNode1;
        {
            // Block
        @SuppressWarnings("unused") Object nullNode2 = null;
        TId tidNode3;
        @SuppressWarnings("unused") Object nullNode4 = null;
        tidNode3 = (TId)nodeArrayList1.get(0);

        ptermNode1 = new ASimpleTerm(null, tidNode3, null);
        }
	nodeList.add(ptermNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PTerm ptermNode1;
        {
            // Block
        PSpecifier pspecifierNode2;
        TId tidNode3;
        @SuppressWarnings("unused") Object nullNode4 = null;
        pspecifierNode2 = (PSpecifier)nodeArrayList1.get(0);
        tidNode3 = (TId)nodeArrayList2.get(0);

        ptermNode1 = new ASimpleTerm(pspecifierNode2, tidNode3, null);
        }
	nodeList.add(ptermNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PTerm ptermNode1;
        {
            // Block
        @SuppressWarnings("unused") Object nullNode2 = null;
        TId tidNode3;
        TId tidNode4;
        tidNode3 = (TId)nodeArrayList1.get(0);
        tidNode4 = (TId)nodeArrayList2.get(0);

        ptermNode1 = new ASimpleTerm(null, tidNode3, tidNode4);
        }
	nodeList.add(ptermNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PTerm ptermNode1;
        {
            // Block
        PSpecifier pspecifierNode2;
        TId tidNode3;
        TId tidNode4;
        pspecifierNode2 = (PSpecifier)nodeArrayList1.get(0);
        tidNode3 = (TId)nodeArrayList2.get(0);
        tidNode4 = (TId)nodeArrayList3.get(0);

        ptermNode1 = new ASimpleTerm(pspecifierNode2, tidNode3, tidNode4);
        }
	nodeList.add(ptermNode1);
        return nodeList;
    }



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

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PTerm ptermNode1;
        {
            // Block

        ptermNode1 = new ANullTerm();
        }
	nodeList.add(ptermNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new202() /* reduce AAlistoflistterm1ListOfListTerm */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        {
            // Block
        PListTerm plisttermNode1;
        plisttermNode1 = (PListTerm)nodeArrayList1.get(0);
	if(plisttermNode1 != null)
	{
	  listNode2.add(plisttermNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new203() /* reduce AAlistoflistterm2ListOfListTerm */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        {
            // Block
        PListTerm plisttermNode1;
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        plisttermNode1 = (PListTerm)nodeArrayList1.get(0);
        listNode2 = (LinkedList)nodeArrayList2.get(0);
	if(plisttermNode1 != null)
	{
	  listNode3.add(plisttermNode1);
	}
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
	nodeList.add(listNode3);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new204() /* reduce AAnewlistterm1ListTerm */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PListTerm plisttermNode1;
        {
            // Block
        PProdName pprodnameNode2;
        TLPar tlparNode3;
        LinkedList<Object> listNode4 = new LinkedList<Object>();
        pprodnameNode2 = (PProdName)nodeArrayList2.get(0);
        tlparNode3 = (TLPar)nodeArrayList3.get(0);
        {
            // Block
        }

        plisttermNode1 = new ANewListTerm(pprodnameNode2, tlparNode3, listNode4);
        }
	nodeList.add(plisttermNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new205() /* reduce AAnewlistterm2ListTerm */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList5 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PListTerm plisttermNode1;
        {
            // Block
        PProdName pprodnameNode2;
        TLPar tlparNode3;
        LinkedList<Object> listNode5 = new LinkedList<Object>();
        pprodnameNode2 = (PProdName)nodeArrayList2.get(0);
        tlparNode3 = (TLPar)nodeArrayList3.get(0);
        {
            // Block
        LinkedList<Object> listNode4 = new LinkedList<Object>();
        listNode4 = (LinkedList)nodeArrayList4.get(0);
	if(listNode4 != null)
	{
	  listNode5.addAll(listNode4);
	}
        }

        plisttermNode1 = new ANewListTerm(pprodnameNode2, tlparNode3, listNode5);
        }
	nodeList.add(plisttermNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new206() /* reduce AAsimplelistterm1ListTerm */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PListTerm plisttermNode1;
        {
            // Block
        @SuppressWarnings("unused") Object nullNode2 = null;
        TId tidNode3;
        @SuppressWarnings("unused") Object nullNode4 = null;
        tidNode3 = (TId)nodeArrayList1.get(0);

        plisttermNode1 = new ASimpleListTerm(null, tidNode3, null);
        }
	nodeList.add(plisttermNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new207() /* reduce AAsimplelistterm2ListTerm */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PListTerm plisttermNode1;
        {
            // Block
        PSpecifier pspecifierNode2;
        TId tidNode3;
        @SuppressWarnings("unused") Object nullNode4 = null;
        pspecifierNode2 = (PSpecifier)nodeArrayList1.get(0);
        tidNode3 = (TId)nodeArrayList2.get(0);

        plisttermNode1 = new ASimpleListTerm(pspecifierNode2, tidNode3, null);
        }
	nodeList.add(plisttermNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new208() /* reduce AAsimplelistterm3ListTerm */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PListTerm plisttermNode1;
        {
            // Block
        @SuppressWarnings("unused") Object nullNode2 = null;
        TId tidNode3;
        TId tidNode4;
        tidNode3 = (TId)nodeArrayList1.get(0);
        tidNode4 = (TId)nodeArrayList2.get(0);

        plisttermNode1 = new ASimpleListTerm(null, tidNode3, tidNode4);
        }
	nodeList.add(plisttermNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new209() /* reduce AAsimplelistterm4ListTerm */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PListTerm plisttermNode1;
        {
            // Block
        PSpecifier pspecifierNode2;
        TId tidNode3;
        TId tidNode4;
        pspecifierNode2 = (PSpecifier)nodeArrayList1.get(0);
        tidNode3 = (TId)nodeArrayList2.get(0);
        tidNode4 = (TId)nodeArrayList3.get(0);

        plisttermNode1 = new ASimpleListTerm(pspecifierNode2, tidNode3, tidNode4);
        }
	nodeList.add(plisttermNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new210() /* reduce AListTermTail */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PListTerm plisttermNode1;
        plisttermNode1 = (PListTerm)nodeArrayList2.get(0);
	nodeList.add(plisttermNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new211() /* reduce ASimpleTermTail */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        TId tidNode1;
        tidNode1 = (TId)nodeArrayList2.get(0);
	nodeList.add(tidNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new212() /* reduce AAprodname1ProdName */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PProdName pprodnameNode1;
        {
            // Block
        TId tidNode2;
        @SuppressWarnings("unused") Object nullNode3 = null;
        tidNode2 = (TId)nodeArrayList1.get(0);

        pprodnameNode1 = new AProdName(tidNode2, null);
        }
	nodeList.add(pprodnameNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new213() /* reduce AAprodname2ProdName */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PProdName pprodnameNode1;
        {
            // Block
        TId tidNode2;
        TId tidNode3;
        tidNode2 = (TId)nodeArrayList1.get(0);
        tidNode3 = (TId)nodeArrayList2.get(0);

        pprodnameNode1 = new AProdName(tidNode2, tidNode3);
        }
	nodeList.add(pprodnameNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new214() /* reduce AProdNameTail */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        TId tidNode1;
        tidNode1 = (TId)nodeArrayList2.get(0);
	nodeList.add(tidNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new215() /* reduce AAparams1Params */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        {
            // Block
        PTerm ptermNode1;
        ptermNode1 = (PTerm)nodeArrayList1.get(0);
	if(ptermNode1 != null)
	{
	  listNode2.add(ptermNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new216() /* reduce AAparams2Params */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        {
            // Block
        PTerm ptermNode1;
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        ptermNode1 = (PTerm)nodeArrayList1.get(0);
        listNode2 = (LinkedList)nodeArrayList2.get(0);
	if(ptermNode1 != null)
	{
	  listNode3.add(ptermNode1);
	}
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
	nodeList.add(listNode3);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new217() /* reduce AParamsTail */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PTerm ptermNode1;
        ptermNode1 = (PTerm)nodeArrayList2.get(0);
	nodeList.add(ptermNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new218() /* reduce AAltName */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        TId tidNode1;
        tidNode1 = (TId)nodeArrayList2.get(0);
	nodeList.add(tidNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new219() /* reduce AAelem1Elem */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PElem pelemNode1;
        {
            // Block
        @SuppressWarnings("unused") Object nullNode2 = null;
        @SuppressWarnings("unused") Object nullNode3 = null;
        TId tidNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        tidNode4 = (TId)nodeArrayList1.get(0);

        pelemNode1 = new AElem(null, null, tidNode4, null);
        }
	nodeList.add(pelemNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new220() /* reduce AAelem2Elem */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PElem pelemNode1;
        {
            // Block
        TId tidNode2;
        @SuppressWarnings("unused") Object nullNode3 = null;
        TId tidNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        tidNode2 = (TId)nodeArrayList1.get(0);
        tidNode4 = (TId)nodeArrayList2.get(0);

        pelemNode1 = new AElem(tidNode2, null, tidNode4, null);
        }
	nodeList.add(pelemNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new221() /* reduce AAelem3Elem */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PElem pelemNode1;
        {
            // Block
        @SuppressWarnings("unused") Object nullNode2 = null;
        PSpecifier pspecifierNode3;
        TId tidNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        pspecifierNode3 = (PSpecifier)nodeArrayList1.get(0);
        tidNode4 = (TId)nodeArrayList2.get(0);

        pelemNode1 = new AElem(null, pspecifierNode3, tidNode4, null);
        }
	nodeList.add(pelemNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new222() /* reduce AAelem4Elem */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PElem pelemNode1;
        {
            // Block
        TId tidNode2;
        PSpecifier pspecifierNode3;
        TId tidNode4;
        @SuppressWarnings("unused") Object nullNode5 = null;
        tidNode2 = (TId)nodeArrayList1.get(0);
        pspecifierNode3 = (PSpecifier)nodeArrayList2.get(0);
        tidNode4 = (TId)nodeArrayList3.get(0);

        pelemNode1 = new AElem(tidNode2, pspecifierNode3, tidNode4, null);
        }
	nodeList.add(pelemNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new223() /* reduce AAelem5Elem */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PElem pelemNode1;
        {
            // Block
        @SuppressWarnings("unused") Object nullNode2 = null;
        @SuppressWarnings("unused") Object nullNode3 = null;
        TId tidNode4;
        PUnOp punopNode5;
        tidNode4 = (TId)nodeArrayList1.get(0);
        punopNode5 = (PUnOp)nodeArrayList2.get(0);

        pelemNode1 = new AElem(null, null, tidNode4, punopNode5);
        }
	nodeList.add(pelemNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new224() /* reduce AAelem6Elem */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PElem pelemNode1;
        {
            // Block
        TId tidNode2;
        @SuppressWarnings("unused") Object nullNode3 = null;
        TId tidNode4;
        PUnOp punopNode5;
        tidNode2 = (TId)nodeArrayList1.get(0);
        tidNode4 = (TId)nodeArrayList2.get(0);
        punopNode5 = (PUnOp)nodeArrayList3.get(0);

        pelemNode1 = new AElem(tidNode2, null, tidNode4, punopNode5);
        }
	nodeList.add(pelemNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new225() /* reduce AAelem7Elem */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PElem pelemNode1;
        {
            // Block
        @SuppressWarnings("unused") Object nullNode2 = null;
        PSpecifier pspecifierNode3;
        TId tidNode4;
        PUnOp punopNode5;
        pspecifierNode3 = (PSpecifier)nodeArrayList1.get(0);
        tidNode4 = (TId)nodeArrayList2.get(0);
        punopNode5 = (PUnOp)nodeArrayList3.get(0);

        pelemNode1 = new AElem(null, pspecifierNode3, tidNode4, punopNode5);
        }
	nodeList.add(pelemNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new226() /* reduce AAelem8Elem */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PElem pelemNode1;
        {
            // Block
        TId tidNode2;
        PSpecifier pspecifierNode3;
        TId tidNode4;
        PUnOp punopNode5;
        tidNode2 = (TId)nodeArrayList1.get(0);
        pspecifierNode3 = (PSpecifier)nodeArrayList2.get(0);
        tidNode4 = (TId)nodeArrayList3.get(0);
        punopNode5 = (PUnOp)nodeArrayList4.get(0);

        pelemNode1 = new AElem(tidNode2, pspecifierNode3, tidNode4, punopNode5);
        }
	nodeList.add(pelemNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new227() /* reduce AElemName */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        TId tidNode1;
        tidNode1 = (TId)nodeArrayList2.get(0);
	nodeList.add(tidNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new228() /* reduce ATokenSpecifier */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PSpecifier pspecifierNode1;
        {
            // Block

        pspecifierNode1 = new ATokenSpecifier();
        }
	nodeList.add(pspecifierNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new229() /* reduce AProductionSpecifier */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PSpecifier pspecifierNode1;
        {
            // Block

        pspecifierNode1 = new AProductionSpecifier();
        }
	nodeList.add(pspecifierNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new230() /* reduce AAst */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PAst pastNode1;
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        {
            // Block
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        listNode2 = (LinkedList)nodeArrayList4.get(0);
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }

        pastNode1 = new AAst(listNode3);
        }
	nodeList.add(pastNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new231() /* reduce AAstProd */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList4 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList3 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PAstProd pastprodNode1;
        {
            // Block
        TId tidNode2;
        LinkedList<Object> listNode4 = new LinkedList<Object>();
        tidNode2 = (TId)nodeArrayList1.get(0);
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        listNode3 = (LinkedList)nodeArrayList3.get(0);
	if(listNode3 != null)
	{
	  listNode4.addAll(listNode3);
	}
        }

        pastprodNode1 = new AAstProd(tidNode2, listNode4);
        }
	nodeList.add(pastprodNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new232() /* reduce AAastalts1AstAlts */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        {
            // Block
        PAstAlt pastaltNode1;
        pastaltNode1 = (PAstAlt)nodeArrayList1.get(0);
	if(pastaltNode1 != null)
	{
	  listNode2.add(pastaltNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new233() /* reduce AAastalts2AstAlts */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        {
            // Block
        PAstAlt pastaltNode1;
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        pastaltNode1 = (PAstAlt)nodeArrayList1.get(0);
        listNode2 = (LinkedList)nodeArrayList2.get(0);
	if(pastaltNode1 != null)
	{
	  listNode3.add(pastaltNode1);
	}
	if(listNode2 != null)
	{
	  listNode3.addAll(listNode2);
	}
        }
	nodeList.add(listNode3);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new234() /* reduce AAstAltsTail */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PAstAlt pastaltNode1;
        pastaltNode1 = (PAstAlt)nodeArrayList2.get(0);
	nodeList.add(pastaltNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new235() /* reduce AAastalt1AstAlt */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        PAstAlt pastaltNode1;
        {
            // Block
        @SuppressWarnings("unused") Object nullNode2 = null;
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        {
            // Block
        }

        pastaltNode1 = new AAstAlt(null, listNode3);
        }
	nodeList.add(pastaltNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new236() /* reduce AAastalt2AstAlt */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PAstAlt pastaltNode1;
        {
            // Block
        TId tidNode2;
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        tidNode2 = (TId)nodeArrayList1.get(0);
        {
            // Block
        }

        pastaltNode1 = new AAstAlt(tidNode2, listNode3);
        }
	nodeList.add(pastaltNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new237() /* reduce AAastalt3AstAlt */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PAstAlt pastaltNode1;
        {
            // Block
        @SuppressWarnings("unused") Object nullNode2 = null;
        LinkedList<Object> listNode4 = new LinkedList<Object>();
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        listNode3 = (LinkedList)nodeArrayList1.get(0);
	if(listNode3 != null)
	{
	  listNode4.addAll(listNode3);
	}
        }

        pastaltNode1 = new AAstAlt(null, listNode4);
        }
	nodeList.add(pastaltNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new238() /* reduce AAastalt4AstAlt */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList2 = pop();
        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        PAstAlt pastaltNode1;
        {
            // Block
        TId tidNode2;
        LinkedList<Object> listNode4 = new LinkedList<Object>();
        tidNode2 = (TId)nodeArrayList1.get(0);
        {
            // Block
        LinkedList<Object> listNode3 = new LinkedList<Object>();
        listNode3 = (LinkedList)nodeArrayList2.get(0);
	if(listNode3 != null)
	{
	  listNode4.addAll(listNode3);
	}
        }

        pastaltNode1 = new AAstAlt(tidNode2, listNode4);
        }
	nodeList.add(pastaltNode1);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new239() /* reduce ATerminal$PkgNameTail */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        {
            // Block
        TPkgId tpkgidNode1;
        tpkgidNode1 = (TPkgId)nodeArrayList1.get(0);
	if(tpkgidNode1 != null)
	{
	  listNode2.add(tpkgidNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new240() /* reduce ANonTerminal$PkgNameTail */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

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



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new241() /* reduce ATerminal$HelperDef */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        {
            // Block
        PHelperDef phelperdefNode1;
        phelperdefNode1 = (PHelperDef)nodeArrayList1.get(0);
	if(phelperdefNode1 != null)
	{
	  listNode2.add(phelperdefNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new242() /* reduce ANonTerminal$HelperDef */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

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



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new243() /* reduce ATerminal$IdListTail */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        {
            // Block
        TId tidNode1;
        tidNode1 = (TId)nodeArrayList1.get(0);
	if(tidNode1 != null)
	{
	  listNode2.add(tidNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new244() /* reduce ANonTerminal$IdListTail */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

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



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new245() /* reduce ATerminal$TokenDef */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        {
            // Block
        PTokenDef ptokendefNode1;
        ptokendefNode1 = (PTokenDef)nodeArrayList1.get(0);
	if(ptokendefNode1 != null)
	{
	  listNode2.add(ptokendefNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new246() /* reduce ANonTerminal$TokenDef */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

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



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new247() /* reduce ATerminal$StateListTail */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        {
            // Block
        PStateListTail pstatelisttailNode1;
        pstatelisttailNode1 = (PStateListTail)nodeArrayList1.get(0);
	if(pstatelisttailNode1 != null)
	{
	  listNode2.add(pstatelisttailNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new248() /* reduce ANonTerminal$StateListTail */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

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



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new249() /* reduce ATerminal$RegExpTail */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        {
            // Block
        PConcat pconcatNode1;
        pconcatNode1 = (PConcat)nodeArrayList1.get(0);
	if(pconcatNode1 != null)
	{
	  listNode2.add(pconcatNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new250() /* reduce ANonTerminal$RegExpTail */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

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



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new251() /* reduce ATerminal$UnExp */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        {
            // Block
        PUnExp punexpNode1;
        punexpNode1 = (PUnExp)nodeArrayList1.get(0);
	if(punexpNode1 != null)
	{
	  listNode2.add(punexpNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new252() /* reduce ANonTerminal$UnExp */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

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



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new253() /* reduce ATerminal$Prod */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        {
            // Block
        PProd pprodNode1;
        pprodNode1 = (PProd)nodeArrayList1.get(0);
	if(pprodNode1 != null)
	{
	  listNode2.add(pprodNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new254() /* reduce ANonTerminal$Prod */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

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



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new255() /* reduce ATerminal$Elem */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        {
            // Block
        PElem pelemNode1;
        pelemNode1 = (PElem)nodeArrayList1.get(0);
	if(pelemNode1 != null)
	{
	  listNode2.add(pelemNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new256() /* reduce ANonTerminal$Elem */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

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



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new257() /* reduce ATerminal$AltsTail */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        {
            // Block
        PAlt paltNode1;
        paltNode1 = (PAlt)nodeArrayList1.get(0);
	if(paltNode1 != null)
	{
	  listNode2.add(paltNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new258() /* reduce ANonTerminal$AltsTail */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

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



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new259() /* reduce ATerminal$Term */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        {
            // Block
        PTerm ptermNode1;
        ptermNode1 = (PTerm)nodeArrayList1.get(0);
	if(ptermNode1 != null)
	{
	  listNode2.add(ptermNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new260() /* reduce ANonTerminal$Term */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

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



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new261() /* reduce ATerminal$ListTermTail */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        {
            // Block
        PListTerm plisttermNode1;
        plisttermNode1 = (PListTerm)nodeArrayList1.get(0);
	if(plisttermNode1 != null)
	{
	  listNode2.add(plisttermNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new262() /* reduce ANonTerminal$ListTermTail */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

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



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new263() /* reduce ATerminal$ParamsTail */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        {
            // Block
        PTerm ptermNode1;
        ptermNode1 = (PTerm)nodeArrayList1.get(0);
	if(ptermNode1 != null)
	{
	  listNode2.add(ptermNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new264() /* reduce ANonTerminal$ParamsTail */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

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



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new265() /* reduce ATerminal$AstProd */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        {
            // Block
        PAstProd pastprodNode1;
        pastprodNode1 = (PAstProd)nodeArrayList1.get(0);
	if(pastprodNode1 != null)
	{
	  listNode2.add(pastprodNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new266() /* reduce ANonTerminal$AstProd */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

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



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new267() /* reduce ATerminal$AstAltsTail */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

        @SuppressWarnings("unused") ArrayList<Object> nodeArrayList1 = pop();
        LinkedList<Object> listNode2 = new LinkedList<Object>();
        {
            // Block
        PAstAlt pastaltNode1;
        pastaltNode1 = (PAstAlt)nodeArrayList1.get(0);
	if(pastaltNode1 != null)
	{
	  listNode2.add(pastaltNode1);
	}
        }
	nodeList.add(listNode2);
        return nodeList;
    }



    @SuppressWarnings({ "unchecked", "rawtypes" })
    ArrayList<Object> new268() /* reduce ANonTerminal$AstAltsTail */
    {
        @SuppressWarnings("hiding") ArrayList<Object> nodeList = new ArrayList<Object>();

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



    private static int[][][] actionTable;
/*      {
			{{-1, REDUCE, 0}, {1, SHIFT, 1}, {2, SHIFT, 2}, {3, SHIFT, 3}, {4, SHIFT, 4}, {5, SHIFT, 5}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, ERROR, 1}, {0, SHIFT, 16}, },
			{{-1, ERROR, 2}, {33, SHIFT, 18}, },
			{{-1, ERROR, 3}, {33, SHIFT, 20}, },
			{{-1, ERROR, 4}, {22, SHIFT, 23}, {33, SHIFT, 24}, },
			{{-1, ERROR, 5}, {4, SHIFT, 28}, },
			{{-1, ERROR, 6}, {33, SHIFT, 29}, },
			{{-1, ERROR, 7}, {8, SHIFT, 32}, },
			{{-1, ERROR, 8}, {38, ACCEPT, -1}, },
			{{-1, REDUCE, 1}, {2, SHIFT, 2}, {3, SHIFT, 3}, {4, SHIFT, 4}, {5, SHIFT, 5}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 2}, {2, SHIFT, 2}, {4, SHIFT, 4}, {5, SHIFT, 5}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 4}, {4, SHIFT, 4}, {5, SHIFT, 5}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 8}, {5, SHIFT, 5}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 16}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 32}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 64}, },
			{{-1, ERROR, 16}, {14, SHIFT, 54}, {16, SHIFT, 55}, },
			{{-1, REDUCE, 128}, },
			{{-1, REDUCE, 135}, {29, SHIFT, 58}, },
			{{-1, ERROR, 19}, {16, SHIFT, 61}, },
			{{-1, ERROR, 20}, {17, SHIFT, 62}, },
			{{-1, REDUCE, 241}, },
			{{-1, REDUCE, 132}, {33, SHIFT, 20}, },
			{{-1, ERROR, 23}, {33, SHIFT, 64}, },
			{{-1, ERROR, 24}, {17, SHIFT, 65}, },
			{{-1, REDUCE, 245}, },
			{{-1, ERROR, 26}, {33, SHIFT, 66}, },
			{{-1, REDUCE, 138}, {22, SHIFT, 23}, {33, SHIFT, 24}, },
			{{-1, ERROR, 28}, {16, SHIFT, 68}, {33, SHIFT, 18}, },
			{{-1, ERROR, 29}, {17, SHIFT, 70}, {22, SHIFT, 71}, },
			{{-1, REDUCE, 253}, },
			{{-1, REDUCE, 175}, {33, SHIFT, 29}, },
			{{-1, ERROR, 32}, {9, SHIFT, 74}, },
			{{-1, REDUCE, 3}, {2, SHIFT, 2}, {4, SHIFT, 4}, {5, SHIFT, 5}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 5}, {4, SHIFT, 4}, {5, SHIFT, 5}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 9}, {5, SHIFT, 5}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 17}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 33}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 65}, },
			{{-1, REDUCE, 6}, {4, SHIFT, 4}, {5, SHIFT, 5}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 10}, {5, SHIFT, 5}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 18}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 34}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 66}, },
			{{-1, REDUCE, 12}, {5, SHIFT, 5}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 20}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 36}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 68}, },
			{{-1, REDUCE, 24}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 40}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 72}, },
			{{-1, REDUCE, 48}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 80}, },
			{{-1, REDUCE, 96}, },
			{{-1, ERROR, 54}, {0, SHIFT, 110}, },
			{{-1, REDUCE, 129}, },
			{{-1, REDUCE, 239}, },
			{{-1, ERROR, 57}, {14, SHIFT, 54}, {16, SHIFT, 111}, },
			{{-1, ERROR, 58}, {33, SHIFT, 113}, },
			{{-1, REDUCE, 243}, },
			{{-1, REDUCE, 136}, {29, SHIFT, 58}, },
			{{-1, REDUCE, 134}, },
			{{-1, REDUCE, 156}, {18, SHIFT, 115}, {20, SHIFT, 116}, {33, SHIFT, 117}, {34, SHIFT, 118}, {35, SHIFT, 119}, {36, SHIFT, 120}, {37, SHIFT, 121}, },
			{{-1, REDUCE, 242}, },
			{{-1, ERROR, 64}, {23, SHIFT, 129}, {29, SHIFT, 130}, {31, SHIFT, 131}, },
			{{-1, REDUCE, 156}, {18, SHIFT, 115}, {20, SHIFT, 116}, {33, SHIFT, 117}, {34, SHIFT, 118}, {35, SHIFT, 119}, {36, SHIFT, 120}, {37, SHIFT, 121}, },
			{{-1, ERROR, 66}, {17, SHIFT, 136}, },
			{{-1, REDUCE, 246}, },
			{{-1, REDUCE, 150}, },
			{{-1, ERROR, 69}, {16, SHIFT, 137}, },
			{{-1, REDUCE, 183}, {12, SHIFT, 138}, {13, SHIFT, 139}, {18, SHIFT, 140}, {22, SHIFT, 141}, {33, SHIFT, 142}, },
			{{-1, ERROR, 71}, {31, SHIFT, 151}, },
			{{-1, ERROR, 72}, {17, SHIFT, 152}, },
			{{-1, REDUCE, 254}, },
			{{-1, ERROR, 74}, {33, SHIFT, 153}, },
			{{-1, REDUCE, 7}, {4, SHIFT, 4}, {5, SHIFT, 5}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 11}, {5, SHIFT, 5}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 19}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 35}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 67}, },
			{{-1, REDUCE, 13}, {5, SHIFT, 5}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 21}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 37}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 69}, },
			{{-1, REDUCE, 25}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 41}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 73}, },
			{{-1, REDUCE, 49}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 81}, },
			{{-1, REDUCE, 97}, },
			{{-1, REDUCE, 14}, {5, SHIFT, 5}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 22}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 38}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 70}, },
			{{-1, REDUCE, 26}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 42}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 74}, },
			{{-1, REDUCE, 50}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 82}, },
			{{-1, REDUCE, 98}, },
			{{-1, REDUCE, 28}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 44}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 76}, },
			{{-1, REDUCE, 52}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 84}, },
			{{-1, REDUCE, 100}, },
			{{-1, REDUCE, 56}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 88}, },
			{{-1, REDUCE, 104}, },
			{{-1, REDUCE, 112}, },
			{{-1, REDUCE, 131}, },
			{{-1, REDUCE, 130}, },
			{{-1, REDUCE, 240}, },
			{{-1, REDUCE, 137}, },
			{{-1, REDUCE, 244}, },
			{{-1, ERROR, 115}, {18, SHIFT, 115}, {20, SHIFT, 116}, {33, SHIFT, 117}, {34, SHIFT, 118}, {35, SHIFT, 119}, {36, SHIFT, 120}, {37, SHIFT, 121}, },
			{{-1, REDUCE, 156}, {18, SHIFT, 115}, {20, SHIFT, 116}, {33, SHIFT, 117}, {34, SHIFT, 118}, {35, SHIFT, 119}, {36, SHIFT, 120}, {37, SHIFT, 121}, },
			{{-1, REDUCE, 163}, },
			{{-1, REDUCE, 165}, },
			{{-1, REDUCE, 166}, },
			{{-1, REDUCE, 167}, },
			{{-1, REDUCE, 162}, },
			{{-1, ERROR, 122}, {16, SHIFT, 194}, },
			{{-1, REDUCE, 153}, {28, SHIFT, 195}, },
			{{-1, REDUCE, 251}, },
			{{-1, REDUCE, 158}, {24, SHIFT, 198}, {26, SHIFT, 199}, {27, SHIFT, 200}, },
			{{-1, REDUCE, 160}, },
			{{-1, REDUCE, 161}, },
			{{-1, REDUCE, 157}, {18, SHIFT, 115}, {20, SHIFT, 116}, {33, SHIFT, 117}, {34, SHIFT, 118}, {35, SHIFT, 119}, {36, SHIFT, 120}, {37, SHIFT, 121}, },
			{{-1, REDUCE, 143}, },
			{{-1, ERROR, 130}, {33, SHIFT, 203}, },
			{{-1, ERROR, 131}, {33, SHIFT, 204}, },
			{{-1, REDUCE, 247}, },
			{{-1, ERROR, 133}, {23, SHIFT, 205}, {29, SHIFT, 130}, },
			{{-1, ERROR, 134}, {23, SHIFT, 207}, {29, SHIFT, 130}, },
			{{-1, ERROR, 135}, {16, SHIFT, 209}, {30, SHIFT, 210}, },
			{{-1, REDUCE, 156}, {18, SHIFT, 115}, {20, SHIFT, 116}, {33, SHIFT, 117}, {34, SHIFT, 118}, {35, SHIFT, 119}, {36, SHIFT, 120}, {37, SHIFT, 121}, },
			{{-1, REDUCE, 151}, },
			{{-1, ERROR, 138}, {14, SHIFT, 213}, },
			{{-1, ERROR, 139}, {14, SHIFT, 214}, },
			{{-1, ERROR, 140}, {33, SHIFT, 215}, },
			{{-1, ERROR, 141}, {31, SHIFT, 216}, {33, SHIFT, 217}, },
			{{-1, REDUCE, 219}, {24, SHIFT, 198}, {26, SHIFT, 199}, {27, SHIFT, 200}, },
			{{-1, ERROR, 143}, {16, SHIFT, 219}, },
			{{-1, REDUCE, 180}, {28, SHIFT, 220}, },
			{{-1, REDUCE, 187}, },
			{{-1, REDUCE, 184}, {12, SHIFT, 138}, {13, SHIFT, 139}, {18, SHIFT, 140}, {22, SHIFT, 223}, {33, SHIFT, 142}, },
			{{-1, REDUCE, 255}, },
			{{-1, ERROR, 148}, {12, SHIFT, 138}, {13, SHIFT, 139}, {33, SHIFT, 226}, },
			{{-1, ERROR, 149}, {33, SHIFT, 228}, },
			{{-1, REDUCE, 185}, {12, SHIFT, 138}, {13, SHIFT, 139}, {18, SHIFT, 140}, {22, SHIFT, 223}, {33, SHIFT, 142}, },
			{{-1, ERROR, 151}, {12, SHIFT, 138}, {13, SHIFT, 139}, {18, SHIFT, 140}, {23, SHIFT, 231}, {33, SHIFT, 142}, },
			{{-1, REDUCE, 183}, {12, SHIFT, 138}, {13, SHIFT, 139}, {18, SHIFT, 140}, {22, SHIFT, 141}, {33, SHIFT, 142}, },
			{{-1, ERROR, 153}, {17, SHIFT, 234}, },
			{{-1, REDUCE, 265}, },
			{{-1, REDUCE, 230}, {33, SHIFT, 153}, },
			{{-1, REDUCE, 15}, {5, SHIFT, 5}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 23}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 39}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 71}, },
			{{-1, REDUCE, 27}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 43}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 75}, },
			{{-1, REDUCE, 51}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 83}, },
			{{-1, REDUCE, 99}, },
			{{-1, REDUCE, 29}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 45}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 77}, },
			{{-1, REDUCE, 53}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 85}, },
			{{-1, REDUCE, 101}, },
			{{-1, REDUCE, 57}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 89}, },
			{{-1, REDUCE, 105}, },
			{{-1, REDUCE, 113}, },
			{{-1, REDUCE, 30}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 46}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 78}, },
			{{-1, REDUCE, 54}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 86}, },
			{{-1, REDUCE, 102}, },
			{{-1, REDUCE, 58}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 90}, },
			{{-1, REDUCE, 106}, },
			{{-1, REDUCE, 114}, },
			{{-1, REDUCE, 60}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 92}, },
			{{-1, REDUCE, 108}, },
			{{-1, REDUCE, 116}, },
			{{-1, REDUCE, 120}, },
			{{-1, ERROR, 191}, {24, SHIFT, 257}, {25, SHIFT, 258}, },
			{{-1, REDUCE, 160}, {15, SHIFT, 260}, },
			{{-1, ERROR, 193}, {21, SHIFT, 261}, },
			{{-1, REDUCE, 133}, },
			{{-1, REDUCE, 156}, {18, SHIFT, 115}, {20, SHIFT, 116}, {33, SHIFT, 117}, {34, SHIFT, 118}, {35, SHIFT, 119}, {36, SHIFT, 120}, {37, SHIFT, 121}, },
			{{-1, REDUCE, 249}, },
			{{-1, REDUCE, 154}, {28, SHIFT, 195}, },
			{{-1, REDUCE, 172}, },
			{{-1, REDUCE, 171}, },
			{{-1, REDUCE, 170}, },
			{{-1, REDUCE, 159}, },
			{{-1, REDUCE, 252}, },
			{{-1, REDUCE, 147}, {31, SHIFT, 131}, },
			{{-1, REDUCE, 149}, },
			{{-1, REDUCE, 144}, },
			{{-1, ERROR, 206}, {23, SHIFT, 265}, {29, SHIFT, 130}, },
			{{-1, REDUCE, 145}, },
			{{-1, REDUCE, 248}, },
			{{-1, REDUCE, 139}, },
			{{-1, REDUCE, 156}, {18, SHIFT, 115}, {20, SHIFT, 116}, {33, SHIFT, 117}, {34, SHIFT, 118}, {35, SHIFT, 119}, {36, SHIFT, 120}, {37, SHIFT, 121}, },
			{{-1, ERROR, 211}, {16, SHIFT, 267}, },
			{{-1, ERROR, 212}, {16, SHIFT, 268}, {30, SHIFT, 210}, },
			{{-1, REDUCE, 228}, },
			{{-1, REDUCE, 229}, },
			{{-1, ERROR, 215}, {19, SHIFT, 270}, },
			{{-1, ERROR, 216}, {10, SHIFT, 271}, {11, SHIFT, 272}, {12, SHIFT, 138}, {13, SHIFT, 139}, {18, SHIFT, 273}, {23, SHIFT, 274}, {33, SHIFT, 275}, },
			{{-1, ERROR, 217}, {23, SHIFT, 279}, },
			{{-1, REDUCE, 223}, },
			{{-1, REDUCE, 176}, },
			{{-1, REDUCE, 183}, {12, SHIFT, 138}, {13, SHIFT, 139}, {18, SHIFT, 140}, {22, SHIFT, 141}, {33, SHIFT, 142}, },
			{{-1, REDUCE, 257}, },
			{{-1, REDUCE, 181}, {28, SHIFT, 220}, },
			{{-1, ERROR, 223}, {31, SHIFT, 216}, },
			{{-1, REDUCE, 188}, },
			{{-1, REDUCE, 186}, {12, SHIFT, 138}, {13, SHIFT, 139}, {18, SHIFT, 140}, {22, SHIFT, 223}, {33, SHIFT, 142}, },
			{{-1, REDUCE, 220}, {24, SHIFT, 198}, {26, SHIFT, 199}, {27, SHIFT, 200}, },
			{{-1, ERROR, 227}, {33, SHIFT, 284}, },
			{{-1, REDUCE, 221}, {24, SHIFT, 198}, {26, SHIFT, 199}, {27, SHIFT, 200}, },
			{{-1, REDUCE, 189}, },
			{{-1, REDUCE, 256}, },
			{{-1, REDUCE, 178}, },
			{{-1, ERROR, 232}, {12, SHIFT, 138}, {13, SHIFT, 139}, {18, SHIFT, 140}, {23, SHIFT, 286}, {33, SHIFT, 142}, },
			{{-1, ERROR, 233}, {16, SHIFT, 287}, },
			{{-1, REDUCE, 235}, {12, SHIFT, 138}, {13, SHIFT, 139}, {18, SHIFT, 140}, {22, SHIFT, 288}, {33, SHIFT, 142}, },
			{{-1, REDUCE, 266}, },
			{{-1, REDUCE, 31}, {6, SHIFT, 6}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 47}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 79}, },
			{{-1, REDUCE, 55}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 87}, },
			{{-1, REDUCE, 103}, },
			{{-1, REDUCE, 59}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 91}, },
			{{-1, REDUCE, 107}, },
			{{-1, REDUCE, 115}, },
			{{-1, REDUCE, 61}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 93}, },
			{{-1, REDUCE, 109}, },
			{{-1, REDUCE, 117}, },
			{{-1, REDUCE, 121}, },
			{{-1, REDUCE, 62}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 94}, },
			{{-1, REDUCE, 110}, },
			{{-1, REDUCE, 118}, },
			{{-1, REDUCE, 122}, },
			{{-1, REDUCE, 124}, },
			{{-1, REDUCE, 173}, },
			{{-1, REDUCE, 174}, },
			{{-1, ERROR, 259}, {18, SHIFT, 115}, {20, SHIFT, 116}, {33, SHIFT, 117}, {34, SHIFT, 118}, {35, SHIFT, 119}, {36, SHIFT, 120}, {37, SHIFT, 121}, },
			{{-1, ERROR, 260}, {34, SHIFT, 118}, {35, SHIFT, 119}, {36, SHIFT, 120}, },
			{{-1, REDUCE, 164}, },
			{{-1, REDUCE, 155}, },
			{{-1, REDUCE, 250}, },
			{{-1, REDUCE, 148}, },
			{{-1, REDUCE, 146}, },
			{{-1, REDUCE, 152}, },
			{{-1, REDUCE, 141}, },
			{{-1, REDUCE, 140}, },
			{{-1, ERROR, 269}, {16, SHIFT, 302}, },
			{{-1, ERROR, 270}, {32, SHIFT, 303}, },
			{{-1, ERROR, 271}, {33, SHIFT, 304}, },
			{{-1, REDUCE, 201}, },
			{{-1, ERROR, 273}, {10, SHIFT, 306}, {12, SHIFT, 138}, {13, SHIFT, 139}, {19, SHIFT, 307}, {33, SHIFT, 308}, },
			{{-1, REDUCE, 191}, },
			{{-1, REDUCE, 197}, {14, SHIFT, 312}, },
			{{-1, REDUCE, 259}, },
			{{-1, ERROR, 277}, {33, SHIFT, 314}, },
			{{-1, ERROR, 278}, {10, SHIFT, 271}, {11, SHIFT, 272}, {12, SHIFT, 138}, {13, SHIFT, 139}, {18, SHIFT, 273}, {23, SHIFT, 315}, {33, SHIFT, 275}, },
			{{-1, REDUCE, 218}, },
			{{-1, REDUCE, 182}, },
			{{-1, REDUCE, 258}, },
			{{-1, REDUCE, 190}, },
			{{-1, REDUCE, 224}, },
			{{-1, REDUCE, 222}, {24, SHIFT, 198}, {26, SHIFT, 199}, {27, SHIFT, 200}, },
			{{-1, REDUCE, 225}, },
			{{-1, REDUCE, 179}, },
			{{-1, REDUCE, 177}, },
			{{-1, ERROR, 288}, {33, SHIFT, 217}, },
			{{-1, REDUCE, 236}, {12, SHIFT, 138}, {13, SHIFT, 139}, {18, SHIFT, 140}, {33, SHIFT, 142}, },
			{{-1, ERROR, 290}, {16, SHIFT, 319}, },
			{{-1, REDUCE, 232}, {28, SHIFT, 320}, },
			{{-1, REDUCE, 237}, {12, SHIFT, 138}, {13, SHIFT, 139}, {18, SHIFT, 140}, {33, SHIFT, 142}, },
			{{-1, REDUCE, 63}, {7, SHIFT, 7}, },
			{{-1, REDUCE, 95}, },
			{{-1, REDUCE, 111}, },
			{{-1, REDUCE, 119}, },
			{{-1, REDUCE, 123}, },
			{{-1, REDUCE, 125}, },
			{{-1, REDUCE, 126}, },
			{{-1, ERROR, 300}, {19, SHIFT, 324}, },
			{{-1, ERROR, 301}, {19, SHIFT, 325}, },
			{{-1, REDUCE, 142}, },
			{{-1, REDUCE, 227}, },
			{{-1, REDUCE, 212}, {14, SHIFT, 326}, },
			{{-1, ERROR, 305}, {20, SHIFT, 328}, },
			{{-1, ERROR, 306}, {33, SHIFT, 304}, },
			{{-1, REDUCE, 195}, },
			{{-1, REDUCE, 206}, {14, SHIFT, 312}, },
			{{-1, ERROR, 309}, {19, SHIFT, 331}, },
			{{-1, REDUCE, 202}, {29, SHIFT, 332}, },
			{{-1, ERROR, 311}, {33, SHIFT, 335}, },
			{{-1, ERROR, 312}, {33, SHIFT, 336}, },
			{{-1, REDUCE, 199}, },
			{{-1, REDUCE, 198}, {14, SHIFT, 312}, },
			{{-1, REDUCE, 192}, },
			{{-1, REDUCE, 260}, },
			{{-1, REDUCE, 226}, },
			{{-1, REDUCE, 238}, {12, SHIFT, 138}, {13, SHIFT, 139}, {18, SHIFT, 140}, {33, SHIFT, 142}, },
			{{-1, REDUCE, 231}, },
			{{-1, REDUCE, 235}, {12, SHIFT, 138}, {13, SHIFT, 139}, {18, SHIFT, 140}, {22, SHIFT, 288}, {33, SHIFT, 142}, },
			{{-1, REDUCE, 267}, },
			{{-1, REDUCE, 233}, {28, SHIFT, 320}, },
			{{-1, REDUCE, 127}, },
			{{-1, REDUCE, 168}, },
			{{-1, REDUCE, 169}, },
			{{-1, ERROR, 326}, {33, SHIFT, 340}, },
			{{-1, REDUCE, 213}, },
			{{-1, ERROR, 328}, {10, SHIFT, 271}, {11, SHIFT, 272}, {12, SHIFT, 138}, {13, SHIFT, 139}, {18, SHIFT, 273}, {21, SHIFT, 341}, {33, SHIFT, 275}, },
			{{-1, ERROR, 329}, {20, SHIFT, 344}, },
			{{-1, REDUCE, 208}, },
			{{-1, REDUCE, 196}, },
			{{-1, ERROR, 332}, {10, SHIFT, 306}, {12, SHIFT, 138}, {13, SHIFT, 139}, {33, SHIFT, 308}, },
			{{-1, REDUCE, 261}, },
			{{-1, REDUCE, 203}, {29, SHIFT, 332}, },
			{{-1, REDUCE, 207}, {14, SHIFT, 312}, },
			{{-1, REDUCE, 211}, },
			{{-1, REDUCE, 200}, },
			{{-1, REDUCE, 234}, },
			{{-1, REDUCE, 268}, },
			{{-1, REDUCE, 214}, },
			{{-1, REDUCE, 193}, },
			{{-1, REDUCE, 215}, {29, SHIFT, 348}, },
			{{-1, ERROR, 343}, {21, SHIFT, 351}, },
			{{-1, ERROR, 344}, {10, SHIFT, 271}, {11, SHIFT, 272}, {12, SHIFT, 138}, {13, SHIFT, 139}, {18, SHIFT, 273}, {21, SHIFT, 352}, {33, SHIFT, 275}, },
			{{-1, REDUCE, 210}, },
			{{-1, REDUCE, 262}, },
			{{-1, REDUCE, 209}, },
			{{-1, ERROR, 348}, {10, SHIFT, 271}, {11, SHIFT, 272}, {12, SHIFT, 138}, {13, SHIFT, 139}, {18, SHIFT, 273}, {33, SHIFT, 275}, },
			{{-1, REDUCE, 263}, },
			{{-1, REDUCE, 216}, {29, SHIFT, 348}, },
			{{-1, REDUCE, 194}, },
			{{-1, REDUCE, 204}, },
			{{-1, ERROR, 353}, {21, SHIFT, 356}, },
			{{-1, REDUCE, 217}, },
			{{-1, REDUCE, 264}, },
			{{-1, REDUCE, 205}, },
        };*/
    private static int[][][] gotoTable;
/*      {
			{{-1, 8}, },
			{{-1, 9}, },
			{{-1, 17}, },
			{{-1, 56}, {57, 112}, },
			{{-1, 10}, {9, 33}, },
			{{-1, 21}, {22, 63}, },
			{{-1, 11}, {9, 34}, {10, 39}, {33, 75}, },
			{{-1, 19}, {28, 69}, },
			{{-1, 59}, {60, 114}, },
			{{-1, 12}, {9, 35}, {10, 40}, {11, 44}, {33, 76}, {34, 80}, {39, 90}, {75, 156}, },
			{{-1, 25}, {27, 67}, },
			{{-1, 26}, },
			{{-1, 132}, {134, 208}, {206, 208}, },
			{{-1, 133}, {203, 264}, },
			{{-1, 13}, {9, 36}, {10, 41}, {11, 45}, {12, 48}, {33, 77}, {34, 81}, {35, 84}, {39, 91}, {40, 94}, {44, 100}, {75, 157}, {76, 160}, {80, 166}, {90, 176}, {156, 236}, },
			{{-1, 211}, {212, 269}, },
			{{-1, 122}, {65, 135}, {116, 193}, {136, 212}, {210, 266}, },
			{{-1, 196}, {197, 263}, },
			{{-1, 123}, {195, 262}, },
			{{-1, 124}, {128, 202}, },
			{{-1, 125}, {115, 191}, {259, 300}, },
			{{-1, 126}, {115, 192}, {260, 301}, },
			{{-1, 127}, },
			{{-1, 201}, {142, 218}, {226, 283}, {228, 285}, {284, 317}, },
			{{-1, 259}, },
			{{-1, 14}, {9, 37}, {10, 42}, {11, 46}, {12, 49}, {13, 51}, {33, 78}, {34, 82}, {35, 85}, {36, 87}, {39, 92}, {40, 95}, {41, 97}, {44, 101}, {45, 103}, {48, 106}, {75, 158}, {76, 161}, {77, 163}, {80, 167}, {81, 169}, {84, 172}, {90, 177}, {91, 179}, {94, 182}, {100, 186}, {156, 237}, {157, 239}, {160, 242}, {166, 246}, {176, 251}, {236, 293}, },
			{{-1, 30}, {31, 73}, },
			{{-1, 72}, },
			{{-1, 143}, {152, 233}, },
			{{-1, 221}, {222, 281}, },
			{{-1, 144}, {220, 280}, },
			{{-1, 145}, {146, 224}, {150, 229}, {225, 282}, },
			{{-1, 342}, {216, 276}, {278, 316}, {348, 354}, },
			{{-1, 309}, },
			{{-1, 310}, {332, 345}, },
			{{-1, 333}, {334, 346}, },
			{{-1, 313}, {308, 330}, {314, 337}, {335, 347}, },
			{{-1, 305}, {306, 329}, },
			{{-1, 327}, },
			{{-1, 343}, {344, 353}, },
			{{-1, 349}, {350, 355}, },
			{{-1, 146}, {234, 289}, {320, 289}, },
			{{-1, 147}, {150, 230}, {225, 230}, {232, 230}, {292, 230}, {318, 230}, },
			{{-1, 148}, },
			{{-1, 149}, {148, 227}, {216, 277}, {273, 311}, {278, 277}, {328, 277}, {332, 311}, {344, 277}, {348, 277}, },
			{{-1, 15}, {9, 38}, {10, 43}, {11, 47}, {12, 50}, {13, 52}, {14, 53}, {33, 79}, {34, 83}, {35, 86}, {36, 88}, {37, 89}, {39, 93}, {40, 96}, {41, 98}, {42, 99}, {44, 102}, {45, 104}, {46, 105}, {48, 107}, {49, 108}, {51, 109}, {75, 159}, {76, 162}, {77, 164}, {78, 165}, {80, 168}, {81, 170}, {82, 171}, {84, 173}, {85, 174}, {87, 175}, {90, 178}, {91, 180}, {92, 181}, {94, 183}, {95, 184}, {97, 185}, {100, 187}, {101, 188}, {103, 189}, {106, 190}, {156, 238}, {157, 240}, {158, 241}, {160, 243}, {161, 244}, {163, 245}, {166, 247}, {167, 248}, {169, 249}, {172, 250}, {176, 252}, {177, 253}, {179, 254}, {182, 255}, {186, 256}, {236, 294}, {237, 295}, {239, 296}, {242, 297}, {246, 298}, {251, 299}, {293, 323}, },
			{{-1, 154}, {155, 235}, },
			{{-1, 290}, },
			{{-1, 321}, {322, 339}, },
			{{-1, 291}, {320, 338}, },
			{{-1, 57}, },
			{{-1, 22}, },
			{{-1, 60}, },
			{{-1, 27}, },
			{{-1, 134}, {133, 206}, },
			{{-1, 197}, },
			{{-1, 128}, },
			{{-1, 31}, },
			{{-1, 150}, {146, 225}, {151, 232}, {234, 292}, {289, 318}, {320, 292}, },
			{{-1, 222}, },
			{{-1, 278}, },
			{{-1, 334}, },
			{{-1, 350}, },
			{{-1, 155}, },
			{{-1, 322}, },
        };*/
    private static String[] errorMessages;
/*      {
			"expecting: 'Package', 'States', 'Helpers', 'Tokens', 'Ignored', 'Productions', 'Abstract', EOF",
			"expecting: pkg id",
			"expecting: id",
			"expecting: '{', id",
			"expecting: 'Tokens'",
			"expecting: 'Syntax'",
			"expecting: EOF",
			"expecting: 'States', 'Helpers', 'Tokens', 'Ignored', 'Productions', 'Abstract', EOF",
			"expecting: 'States', 'Tokens', 'Ignored', 'Productions', 'Abstract', EOF",
			"expecting: 'Tokens', 'Ignored', 'Productions', 'Abstract', EOF",
			"expecting: 'Ignored', 'Productions', 'Abstract', EOF",
			"expecting: 'Productions', 'Abstract', EOF",
			"expecting: 'Abstract', EOF",
			"expecting: '.', ';'",
			"expecting: ';', ','",
			"expecting: ';'",
			"expecting: '='",
			"expecting: 'States', 'Tokens', 'Ignored', 'Productions', 'Abstract', id, EOF",
			"expecting: 'Ignored', 'Productions', 'Abstract', '{', id, EOF",
			"expecting: ';', id",
			"expecting: '=', '{'",
			"expecting: 'Abstract', id, EOF",
			"expecting: 'Tree'",
			"expecting: ';', '[', '(', '|', id, char, dec char, hex char, string",
			"expecting: '}', ',', '->'",
			"expecting: ';', '[', '(', '|', '/', id, char, dec char, hex char, string",
			"expecting: 'T', 'P', ';', '[', '{', '|', id",
			"expecting: '->'",
			"expecting: '[', '(', id, char, dec char, hex char, string",
			"expecting: '[', '(', ')', '|', id, char, dec char, hex char, string",
			"expecting: ';', '[', ']', '(', ')', '+', '-', '?', '*', '|', '/', id, char, dec char, hex char, string",
			"expecting: '..', ';', '[', ']', '(', ')', '+', '-', '?', '*', '|', '/', id, char, dec char, hex char, string",
			"expecting: ';', ')', '|', '/'",
			"expecting: ';', '[', '(', ')', '|', '/', id, char, dec char, hex char, string",
			"expecting: ';', '[', '(', ')', '+', '?', '*', '|', '/', id, char, dec char, hex char, string",
			"expecting: ';', '[', ']', '(', ')', '+', '?', '*', '|', '/', id, char, dec char, hex char, string",
			"expecting: '}', ','",
			"expecting: ';', '/'",
			"expecting: '.'",
			"expecting: '->', id",
			"expecting: 'T', 'P', ';', '[', '{', '}', '+', '?', '*', '|', id",
			"expecting: ';', '|'",
			"expecting: 'T', 'P', ';', '[', '{', '}', '|', id",
			"expecting: 'T', 'P', id",
			"expecting: 'T', 'P', '[', '}', id",
			"expecting: id, EOF",
			"expecting: '+', '-'",
			"expecting: '..', '+', '-'",
			"expecting: ')'",
			"expecting: 'T', 'P', ';', '[', '(', ')', '{', '}', '|', '/', id, char, dec char, hex char, string",
			"expecting: ']'",
			"expecting: 'New', 'Null', 'T', 'P', '[', '}', id",
			"expecting: '}'",
			"expecting: char, dec char, hex char",
			"expecting: ':'",
			"expecting: 'New', 'Null', 'T', 'P', '[', ')', '}', ',', id",
			"expecting: 'New', 'T', 'P', ']', id",
			"expecting: 'New', 'Null', 'T', 'P', '.', '[', ')', '}', ',', id",
			"expecting: 'T', 'P', ';', '[', '|', id",
			"expecting: '.', '('",
			"expecting: '('",
			"expecting: '.', ']', ','",
			"expecting: ']', ','",
			"expecting: 'New', 'Null', 'T', 'P', '[', ')', id",
			"expecting: 'New', 'T', 'P', id",
			"expecting: 'New', 'Null', 'T', 'P', '[', ']', ')', '}', ',', id",
			"expecting: ')', ','",
			"expecting: 'New', 'Null', 'T', 'P', '[', id",
        };*/
    private static int[] errors;
/*      {
			0, 1, 2, 2, 3, 4, 2, 5, 6, 7, 8, 9, 10, 11, 12, 6, 13, 7, 14, 15, 16, 17, 17, 2, 16, 18, 2, 18, 19, 20, 21, 21, 22, 8, 9, 10, 11, 12, 6, 9, 10, 11, 12, 6, 10, 11, 12, 6, 11, 12, 6, 12, 6, 6, 1, 7, 13, 13, 2, 14, 14, 9, 23, 17, 24, 25, 16, 18, 11, 15, 26, 27, 16, 21, 2, 9, 10, 11, 12, 6, 10, 11, 12, 6, 11, 12, 6, 12, 6, 6, 10, 11, 12, 6, 11, 12, 6, 12, 6, 6, 11, 12, 6, 12, 6, 6, 12, 6, 6, 6, 13, 7, 13, 14, 14, 28, 29, 30, 31, 31, 31, 30, 15, 32, 33, 34, 35, 30, 33, 2, 2, 2, 36, 36, 36, 37, 25, 11, 38, 38, 2, 39, 40, 15, 41, 41, 26, 42, 43, 2, 26, 44, 26, 16, 45, 45, 10, 11, 12, 6, 11, 12, 6, 12, 6, 6, 11, 12, 6, 12, 6, 6, 12, 6, 6, 6, 11, 12, 6, 12, 6, 6, 12, 6, 6, 6, 12, 6, 6, 6, 6, 46, 47, 48, 17, 33, 32, 32, 49, 49, 49, 33, 33, 24, 36, 2, 36, 2, 36, 18, 23, 15, 37, 2, 2, 50, 51, 52, 42, 21, 26, 41, 41, 27, 41, 26, 40, 2, 40, 41, 42, 16, 44, 15, 26, 45, 11, 12, 6, 12, 6, 6, 12, 6, 6, 6, 12, 6, 6, 6, 6, 12, 6, 6, 6, 6, 6, 28, 28, 28, 53, 30, 32, 32, 36, 2, 15, 18, 18, 15, 54, 2, 55, 56, 41, 57, 51, 2, 51, 26, 41, 41, 41, 42, 40, 42, 16, 21, 2, 58, 15, 41, 58, 12, 6, 6, 6, 6, 6, 6, 50, 50, 18, 43, 59, 60, 2, 55, 61, 50, 62, 2, 2, 55, 57, 41, 51, 42, 58, 45, 26, 41, 41, 6, 30, 30, 2, 60, 63, 60, 62, 55, 64, 62, 62, 61, 65, 55, 41, 41, 60, 55, 66, 48, 63, 62, 62, 62, 67, 66, 66, 55, 62, 48, 66, 66, 62, 
        };*/

    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.");
        }
    }
}
