Main Page   Packages   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members  

Parser.java

00001 package edu.ksu.cis.bandera.specification.predicate.parser;
00002 
00003 /* This file was generated by SableCC (http://www.sable.mcgill.ca/sablecc/). */
00004 
00005 import edu.ksu.cis.bandera.specification.predicate.lexer.*;
00006 import edu.ksu.cis.bandera.specification.predicate.node.*;
00007 import edu.ksu.cis.bandera.specification.predicate.analysis.*;
00008 import java.util.*;
00009 
00010 import java.io.DataInputStream;
00011 import java.io.BufferedInputStream;
00012 import java.io.IOException;
00013 
00014 public class Parser
00015 {
00016     public final Analysis ignoredTokens = new AnalysisAdapter();
00017 
00018     protected Node node;
00019 
00020     private final Lexer lexer;
00021     private final ListIterator stack = new LinkedList().listIterator();
00022     private int last_shift;
00023     private int last_pos;
00024     private int last_line;
00025     private final TokenIndex converter = new TokenIndex();
00026     private final int[] action = new int[2];
00027 
00028     private final static int SHIFT = 0;
00029     private final static int REDUCE = 1;
00030     private final static int ACCEPT = 2;
00031     private final static int ERROR = 3;
00032 
00033     private static int[][][] actionTable;
00034 /*      {
00035             {{-1, REDUCE, 0}, {2, SHIFT, 1}, {49, SHIFT, 2}, {50, SHIFT, 3}, {51, SHIFT, 4}, {52, SHIFT, 5}, {66, SHIFT, 6}, },
00036             {{-1, REDUCE, 12}, },
00037             {{-1, ERROR, 2}, {66, SHIFT, 13}, },
00038             {{-1, ERROR, 3}, {66, SHIFT, 14}, },
00039             {{-1, ERROR, 4}, {11, SHIFT, 15}, },
00040             {{-1, ERROR, 5}, {66, SHIFT, 16}, },
00041             {{-1, REDUCE, 52}, },
00042             {{-1, ERROR, 7}, {67, ACCEPT, -1}, },
00043             {{-1, REDUCE, 4}, },
00044             {{-1, REDUCE, 8}, },
00045             {{-1, REDUCE, 1}, {2, SHIFT, 1}, {16, SHIFT, 17}, {49, SHIFT, 2}, {50, SHIFT, 3}, {51, SHIFT, 4}, {52, SHIFT, 5}, },
00046             {{-1, REDUCE, 2}, {2, SHIFT, 1}, {49, SHIFT, 2}, {50, SHIFT, 3}, {51, SHIFT, 4}, {52, SHIFT, 5}, },
00047             {{-1, REDUCE, 6}, {49, SHIFT, 2}, {50, SHIFT, 3}, {51, SHIFT, 4}, {52, SHIFT, 5}, },
00048             {{-1, ERROR, 13}, {7, SHIFT, 23}, },
00049             {{-1, ERROR, 14}, {7, SHIFT, 24}, },
00050             {{-1, ERROR, 15}, {66, SHIFT, 25}, },
00051             {{-1, ERROR, 16}, {7, SHIFT, 26}, },
00052             {{-1, ERROR, 17}, {66, SHIFT, 27}, },
00053             {{-1, REDUCE, 5}, {2, SHIFT, 1}, {49, SHIFT, 2}, {50, SHIFT, 3}, {51, SHIFT, 4}, {52, SHIFT, 5}, },
00054             {{-1, REDUCE, 9}, {49, SHIFT, 2}, {50, SHIFT, 3}, {51, SHIFT, 4}, {52, SHIFT, 5}, },
00055             {{-1, REDUCE, 3}, },
00056             {{-1, REDUCE, 10}, {49, SHIFT, 2}, {50, SHIFT, 3}, {51, SHIFT, 4}, {52, SHIFT, 5}, },
00057             {{-1, REDUCE, 7}, },
00058             {{-1, ERROR, 23}, {8, SHIFT, 29}, {55, SHIFT, 30}, {66, SHIFT, 6}, },
00059             {{-1, ERROR, 24}, {8, SHIFT, 34}, {55, SHIFT, 30}, {66, SHIFT, 6}, },
00060             {{-1, ERROR, 25}, {12, SHIFT, 36}, },
00061             {{-1, ERROR, 26}, {8, SHIFT, 37}, {55, SHIFT, 30}, {66, SHIFT, 6}, },
00062             {{-1, REDUCE, 53}, },
00063             {{-1, REDUCE, 11}, {49, SHIFT, 2}, {50, SHIFT, 3}, {51, SHIFT, 4}, {52, SHIFT, 5}, },
00064             {{-1, ERROR, 29}, {13, SHIFT, 39}, {14, SHIFT, 40}, },
00065             {{-1, REDUCE, 41}, {15, SHIFT, 42}, },
00066             {{-1, ERROR, 31}, {8, SHIFT, 44}, },
00067             {{-1, REDUCE, 43}, {15, SHIFT, 45}, },
00068             {{-1, ERROR, 33}, {3, SHIFT, 46}, {16, SHIFT, 17}, {66, SHIFT, 47}, },
00069             {{-1, ERROR, 34}, {13, SHIFT, 49}, {14, SHIFT, 40}, },
00070             {{-1, ERROR, 35}, {8, SHIFT, 51}, },
00071             {{-1, ERROR, 36}, {66, SHIFT, 52}, },
00072             {{-1, ERROR, 37}, {14, SHIFT, 40}, },
00073             {{-1, ERROR, 38}, {8, SHIFT, 54}, },
00074             {{-1, REDUCE, 13}, {2, SHIFT, 1}, },
00075             {{-1, ERROR, 40}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00076             {{-1, ERROR, 41}, {13, SHIFT, 97}, },
00077             {{-1, ERROR, 42}, {66, SHIFT, 6}, },
00078             {{-1, REDUCE, 42}, },
00079             {{-1, ERROR, 44}, {13, SHIFT, 99}, {14, SHIFT, 40}, },
00080             {{-1, ERROR, 45}, {66, SHIFT, 6}, },
00081             {{-1, REDUCE, 48}, },
00082             {{-1, REDUCE, 45}, },
00083             {{-1, ERROR, 48}, {3, SHIFT, 102}, {66, SHIFT, 103}, },
00084             {{-1, REDUCE, 21}, {2, SHIFT, 1}, },
00085             {{-1, ERROR, 50}, {13, SHIFT, 105}, },
00086             {{-1, ERROR, 51}, {13, SHIFT, 106}, {14, SHIFT, 40}, },
00087             {{-1, ERROR, 52}, {7, SHIFT, 108}, },
00088             {{-1, ERROR, 53}, {13, SHIFT, 109}, },
00089             {{-1, ERROR, 54}, {14, SHIFT, 40}, },
00090             {{-1, REDUCE, 17}, {2, SHIFT, 1}, },
00091             {{-1, REDUCE, 139}, },
00092             {{-1, REDUCE, 140}, },
00093             {{-1, REDUCE, 141}, },
00094             {{-1, ERROR, 59}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {41, SHIFT, 111}, {42, SHIFT, 112}, {43, SHIFT, 113}, {44, SHIFT, 114}, {45, SHIFT, 115}, {46, SHIFT, 116}, {47, SHIFT, 117}, {48, SHIFT, 118}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00095             {{-1, ERROR, 60}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00096             {{-1, ERROR, 61}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00097             {{-1, ERROR, 62}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00098             {{-1, ERROR, 63}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00099             {{-1, REDUCE, 63}, },
00100             {{-1, REDUCE, 64}, },
00101             {{-1, REDUCE, 130}, },
00102             {{-1, REDUCE, 131}, },
00103             {{-1, REDUCE, 132}, },
00104             {{-1, REDUCE, 133}, },
00105             {{-1, REDUCE, 134}, },
00106             {{-1, REDUCE, 135}, },
00107             {{-1, REDUCE, 137}, },
00108             {{-1, REDUCE, 136}, },
00109             {{-1, REDUCE, 138}, },
00110             {{-1, REDUCE, 142}, },
00111             {{-1, REDUCE, 66}, {11, SHIFT, 126}, {16, SHIFT, 17}, },
00112             {{-1, REDUCE, 62}, },
00113             {{-1, REDUCE, 61}, },
00114             {{-1, REDUCE, 65}, {11, SHIFT, 127}, {16, SHIFT, 128}, },
00115             {{-1, REDUCE, 71}, },
00116             {{-1, REDUCE, 74}, },
00117             {{-1, REDUCE, 77}, },
00118             {{-1, REDUCE, 78}, },
00119             {{-1, REDUCE, 82}, {33, SHIFT, 129}, {36, SHIFT, 130}, {37, SHIFT, 131}, },
00120             {{-1, REDUCE, 85}, {31, SHIFT, 132}, {32, SHIFT, 133}, },
00121             {{-1, REDUCE, 89}, {25, SHIFT, 134}, {26, SHIFT, 135}, {27, SHIFT, 136}, },
00122             {{-1, REDUCE, 95}, {18, SHIFT, 137}, {19, SHIFT, 138}, {20, SHIFT, 139}, {21, SHIFT, 140}, {53, SHIFT, 141}, },
00123             {{-1, REDUCE, 98}, {17, SHIFT, 142}, {22, SHIFT, 143}, },
00124             {{-1, REDUCE, 100}, {40, SHIFT, 144}, },
00125             {{-1, REDUCE, 102}, {38, SHIFT, 145}, },
00126             {{-1, REDUCE, 104}, {39, SHIFT, 146}, },
00127             {{-1, REDUCE, 106}, {23, SHIFT, 147}, },
00128             {{-1, REDUCE, 108}, {24, SHIFT, 148}, {30, SHIFT, 149}, },
00129             {{-1, REDUCE, 110}, },
00130             {{-1, REDUCE, 51}, },
00131             {{-1, REDUCE, 59}, },
00132             {{-1, REDUCE, 15}, {2, SHIFT, 1}, },
00133             {{-1, REDUCE, 44}, {15, SHIFT, 45}, },
00134             {{-1, REDUCE, 14}, {2, SHIFT, 1}, },
00135             {{-1, ERROR, 100}, {13, SHIFT, 152}, },
00136             {{-1, ERROR, 101}, {3, SHIFT, 46}, {16, SHIFT, 17}, {66, SHIFT, 153}, },
00137             {{-1, REDUCE, 47}, },
00138             {{-1, REDUCE, 46}, },
00139             {{-1, REDUCE, 25}, {2, SHIFT, 1}, },
00140             {{-1, REDUCE, 23}, {2, SHIFT, 1}, },
00141             {{-1, REDUCE, 22}, {2, SHIFT, 1}, },
00142             {{-1, ERROR, 107}, {13, SHIFT, 157}, },
00143             {{-1, ERROR, 108}, {8, SHIFT, 158}, {55, SHIFT, 30}, {66, SHIFT, 6}, },
00144             {{-1, REDUCE, 37}, {2, SHIFT, 1}, },
00145             {{-1, ERROR, 110}, {13, SHIFT, 161}, },
00146             {{-1, REDUCE, 143}, },
00147             {{-1, REDUCE, 144}, },
00148             {{-1, REDUCE, 145}, },
00149             {{-1, REDUCE, 146}, },
00150             {{-1, REDUCE, 147}, },
00151             {{-1, REDUCE, 148}, },
00152             {{-1, REDUCE, 149}, },
00153             {{-1, REDUCE, 150}, },
00154             {{-1, REDUCE, 66}, {3, SHIFT, 46}, {11, SHIFT, 126}, {16, SHIFT, 17}, },
00155             {{-1, ERROR, 120}, {8, SHIFT, 163}, },
00156             {{-1, ERROR, 121}, {3, SHIFT, 46}, {8, SHIFT, 164}, },
00157             {{-1, REDUCE, 72}, },
00158             {{-1, REDUCE, 73}, },
00159             {{-1, REDUCE, 75}, },
00160             {{-1, REDUCE, 76}, },
00161             {{-1, ERROR, 126}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00162             {{-1, ERROR, 127}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00163             {{-1, ERROR, 128}, {66, SHIFT, 168}, },
00164             {{-1, ERROR, 129}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00165             {{-1, ERROR, 130}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00166             {{-1, ERROR, 131}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00167             {{-1, ERROR, 132}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00168             {{-1, ERROR, 133}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00169             {{-1, ERROR, 134}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00170             {{-1, ERROR, 135}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00171             {{-1, ERROR, 136}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00172             {{-1, ERROR, 137}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00173             {{-1, ERROR, 138}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00174             {{-1, ERROR, 139}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00175             {{-1, ERROR, 140}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00176             {{-1, ERROR, 141}, {66, SHIFT, 6}, },
00177             {{-1, ERROR, 142}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00178             {{-1, ERROR, 143}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00179             {{-1, ERROR, 144}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00180             {{-1, ERROR, 145}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00181             {{-1, ERROR, 146}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00182             {{-1, ERROR, 147}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00183             {{-1, ERROR, 148}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00184             {{-1, ERROR, 149}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00185             {{-1, REDUCE, 19}, {2, SHIFT, 1}, },
00186             {{-1, REDUCE, 18}, {2, SHIFT, 1}, },
00187             {{-1, REDUCE, 16}, {2, SHIFT, 1}, },
00188             {{-1, REDUCE, 49}, },
00189             {{-1, ERROR, 154}, {3, SHIFT, 102}, {66, SHIFT, 191}, },
00190             {{-1, REDUCE, 27}, {2, SHIFT, 1}, },
00191             {{-1, REDUCE, 26}, {2, SHIFT, 1}, },
00192             {{-1, REDUCE, 24}, {2, SHIFT, 1}, },
00193             {{-1, ERROR, 158}, {13, SHIFT, 193}, {14, SHIFT, 40}, },
00194             {{-1, ERROR, 159}, {8, SHIFT, 195}, },
00195             {{-1, REDUCE, 39}, {2, SHIFT, 1}, },
00196             {{-1, REDUCE, 38}, {2, SHIFT, 1}, },
00197             {{-1, ERROR, 162}, {3, SHIFT, 102}, {8, SHIFT, 197}, },
00198             {{-1, REDUCE, 60}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00199             {{-1, ERROR, 164}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00200             {{-1, ERROR, 165}, {3, SHIFT, 102}, {8, SHIFT, 200}, },
00201             {{-1, ERROR, 166}, {12, SHIFT, 201}, },
00202             {{-1, ERROR, 167}, {12, SHIFT, 202}, },
00203             {{-1, REDUCE, 56}, },
00204             {{-1, REDUCE, 79}, },
00205             {{-1, REDUCE, 80}, },
00206             {{-1, REDUCE, 81}, },
00207             {{-1, REDUCE, 83}, {33, SHIFT, 129}, {36, SHIFT, 130}, {37, SHIFT, 131}, },
00208             {{-1, REDUCE, 84}, {33, SHIFT, 129}, {36, SHIFT, 130}, {37, SHIFT, 131}, },
00209             {{-1, REDUCE, 86}, {31, SHIFT, 132}, {32, SHIFT, 133}, },
00210             {{-1, REDUCE, 87}, {31, SHIFT, 132}, {32, SHIFT, 133}, },
00211             {{-1, REDUCE, 88}, {31, SHIFT, 132}, {32, SHIFT, 133}, },
00212             {{-1, REDUCE, 90}, {25, SHIFT, 134}, {26, SHIFT, 135}, {27, SHIFT, 136}, },
00213             {{-1, REDUCE, 91}, {25, SHIFT, 134}, {26, SHIFT, 135}, {27, SHIFT, 136}, },
00214             {{-1, REDUCE, 92}, {25, SHIFT, 134}, {26, SHIFT, 135}, {27, SHIFT, 136}, },
00215             {{-1, REDUCE, 93}, {25, SHIFT, 134}, {26, SHIFT, 135}, {27, SHIFT, 136}, },
00216             {{-1, REDUCE, 94}, {16, SHIFT, 17}, },
00217             {{-1, REDUCE, 96}, {18, SHIFT, 137}, {19, SHIFT, 138}, {20, SHIFT, 139}, {21, SHIFT, 140}, {53, SHIFT, 141}, },
00218             {{-1, REDUCE, 97}, {18, SHIFT, 137}, {19, SHIFT, 138}, {20, SHIFT, 139}, {21, SHIFT, 140}, {53, SHIFT, 141}, },
00219             {{-1, REDUCE, 99}, {17, SHIFT, 142}, {22, SHIFT, 143}, },
00220             {{-1, REDUCE, 101}, {40, SHIFT, 144}, },
00221             {{-1, REDUCE, 103}, {38, SHIFT, 145}, },
00222             {{-1, REDUCE, 105}, {39, SHIFT, 146}, },
00223             {{-1, REDUCE, 107}, {23, SHIFT, 147}, },
00224             {{-1, ERROR, 189}, {14, SHIFT, 203}, },
00225             {{-1, REDUCE, 20}, {2, SHIFT, 1}, },
00226             {{-1, REDUCE, 50}, },
00227             {{-1, REDUCE, 28}, {2, SHIFT, 1}, },
00228             {{-1, REDUCE, 29}, {2, SHIFT, 1}, },
00229             {{-1, ERROR, 194}, {13, SHIFT, 205}, },
00230             {{-1, ERROR, 195}, {13, SHIFT, 206}, {14, SHIFT, 40}, },
00231             {{-1, REDUCE, 40}, {2, SHIFT, 1}, },
00232             {{-1, ERROR, 197}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00233             {{-1, REDUCE, 70}, },
00234             {{-1, REDUCE, 67}, },
00235             {{-1, ERROR, 200}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00236             {{-1, REDUCE, 54}, },
00237             {{-1, REDUCE, 55}, },
00238             {{-1, ERROR, 203}, {4, SHIFT, 56}, {5, SHIFT, 57}, {6, SHIFT, 58}, {7, SHIFT, 59}, {28, SHIFT, 60}, {29, SHIFT, 61}, {31, SHIFT, 62}, {32, SHIFT, 63}, {54, SHIFT, 64}, {55, SHIFT, 65}, {56, SHIFT, 66}, {57, SHIFT, 67}, {58, SHIFT, 68}, {59, SHIFT, 69}, {60, SHIFT, 70}, {61, SHIFT, 71}, {62, SHIFT, 72}, {63, SHIFT, 73}, {64, SHIFT, 74}, {65, SHIFT, 75}, {66, SHIFT, 6}, },
00239             {{-1, REDUCE, 33}, {2, SHIFT, 1}, },
00240             {{-1, REDUCE, 31}, {2, SHIFT, 1}, },
00241             {{-1, REDUCE, 30}, {2, SHIFT, 1}, },
00242             {{-1, ERROR, 207}, {13, SHIFT, 213}, },
00243             {{-1, REDUCE, 69}, },
00244             {{-1, REDUCE, 68}, },
00245             {{-1, REDUCE, 109}, },
00246             {{-1, REDUCE, 35}, {2, SHIFT, 1}, },
00247             {{-1, REDUCE, 34}, {2, SHIFT, 1}, },
00248             {{-1, REDUCE, 32}, {2, SHIFT, 1}, },
00249             {{-1, REDUCE, 36}, {2, SHIFT, 1}, },
00250         };*/
00251     private static int[][][] gotoTable;
00252 /*      {
00253             {{-1, 7}, },
00254             {{-1, 8}, {11, 20}, {18, 20}, {55, 20}, {104, 20}, {150, 20}, {151, 20}, {155, 20}, {156, 20}, {160, 20}, {190, 20}, {192, 20}, {196, 20}, {204, 20}, {211, 20}, {212, 20}, {214, 20}, },
00255             {{-1, 9}, {12, 22}, {19, 22}, {21, 22}, {28, 22}, },
00256             {{-1, 31}, {24, 35}, {26, 38}, {108, 159}, },
00257             {{-1, 43}, },
00258             {{-1, 32}, {42, 98}, },
00259             {{-1, 41}, {34, 50}, {37, 53}, {44, 100}, {51, 107}, {54, 110}, {158, 194}, {195, 207}, },
00260             {{-1, 76}, {0, 10}, {23, 33}, {24, 33}, {26, 33}, {42, 33}, {45, 101}, {59, 119}, {108, 33}, {141, 181}, },
00261             {{-1, 77}, },
00262             {{-1, 78}, },
00263             {{-1, -1}, },
00264             {{-1, 79}, },
00265             {{-1, 80}, },
00266             {{-1, 81}, },
00267             {{-1, 82}, {163, 198}, },
00268             {{-1, 83}, {60, 122}, {61, 123}, {62, 124}, {63, 125}, {129, 169}, {130, 170}, {131, 171}, {164, 199}, {197, 208}, {200, 209}, },
00269             {{-1, 84}, {132, 172}, {133, 173}, },
00270             {{-1, 85}, {134, 174}, {135, 175}, {136, 176}, },
00271             {{-1, 86}, {137, 177}, {138, 178}, {139, 179}, {140, 180}, },
00272             {{-1, 87}, {142, 182}, {143, 183}, },
00273             {{-1, 88}, {144, 184}, },
00274             {{-1, 89}, {145, 185}, },
00275             {{-1, 90}, {146, 186}, },
00276             {{-1, 91}, {147, 187}, },
00277             {{-1, 92}, {148, 188}, },
00278             {{-1, 93}, },
00279             {{-1, 94}, {203, 210}, },
00280             {{-1, 95}, {59, 120}, {126, 166}, {127, 167}, {149, 189}, },
00281             {{-1, -1}, },
00282             {{-1, 96}, },
00283             {{-1, 121}, },
00284             {{-1, 11}, {10, 18}, {39, 55}, {49, 104}, {97, 150}, {99, 151}, {105, 155}, {106, 156}, {109, 160}, {152, 190}, {157, 192}, {161, 196}, {193, 204}, {205, 211}, {206, 212}, {213, 214}, },
00285             {{-1, 12}, {10, 19}, {11, 21}, {18, 28}, },
00286             {{-1, 48}, {101, 154}, {119, 162}, {121, 165}, },
00287         };*/
00288     private static String[] errorMessages;
00289 /*      {
00290             "TEndOfLineComment TInvoke TReturn TLocation TExpression TId EOF expected.",
00291             "TEndOfLineComment TInvoke TReturn TLocation TExpression EOF expected.",
00292             "TId expected.",
00293             "TLBracket expected.",
00294             "TEndOfLineComment TDim TRParen TLBracket TRBracket TSemicolon TColon TDot TEqual TLess TGreater TLessEqual TGreaterEqual TNotEqual TAnd TOr TShiftLeft TSignedShiftRight TUnsignedShiftRight TQuestion TPlus TMinus TStar TStrongDiv TStrongMod TBitXor TBitOr TBitAnd TInvoke TReturn TLocation TExpression TInstanceof TId EOF expected.",
00295             "EOF expected.",
00296             "TInvoke TReturn TLocation TExpression EOF expected.",
00297             "TEndOfLineComment TDot TInvoke TReturn TLocation TExpression EOF expected.",
00298             "TLParen expected.",
00299             "TRParen TThis TId expected.",
00300             "TRBracket expected.",
00301             "TSemicolon TColon expected.",
00302             "TRParen TComma expected.",
00303             "TRParen expected.",
00304             "TDim TDot TId expected.",
00305             "TColon expected.",
00306             "TTrue TFalse TNull TLParen TNot TBitComplement TPlus TMinus TRetVal TThis TDecIntLiteral THexIntLiteral TOctIntLiteral TDecLongLiteral THexLongLiteral TOctLongLiteral TDoubleLiteral TFloatLiteral TCharLiteral TStringLiteral TId expected.",
00307             "TSemicolon expected.",
00308             "TDim TRParen TId expected.",
00309             "TDim TId expected.",
00310             "TRParen TLBracket TRBracket TSemicolon TColon TDot TEqual TLess TGreater TLessEqual TGreaterEqual TNotEqual TAnd TOr TShiftLeft TSignedShiftRight TUnsignedShiftRight TQuestion TPlus TMinus TStar TStrongDiv TStrongMod TBitXor TBitOr TBitAnd TInstanceof expected.",
00311             "TTrue TFalse TNull TLParen TNot TBitComplement TPlus TMinus TBoolean TByte TShort TChar TInt TLong TFloat TDouble TRetVal TThis TDecIntLiteral THexIntLiteral TOctIntLiteral TDecLongLiteral THexLongLiteral TOctLongLiteral TDoubleLiteral TFloatLiteral TCharLiteral TStringLiteral TId expected.",
00312             "TRParen TRBracket TSemicolon TColon TEqual TLess TGreater TLessEqual TGreaterEqual TNotEqual TAnd TOr TShiftLeft TSignedShiftRight TUnsignedShiftRight TQuestion TPlus TMinus TStar TStrongDiv TStrongMod TBitXor TBitOr TBitAnd TInstanceof expected.",
00313             "TRParen TRBracket TSemicolon TColon TEqual TLess TGreater TLessEqual TGreaterEqual TNotEqual TAnd TOr TShiftLeft TSignedShiftRight TUnsignedShiftRight TQuestion TPlus TMinus TBitXor TBitOr TBitAnd TInstanceof expected.",
00314             "TRParen TRBracket TSemicolon TColon TEqual TLess TGreater TLessEqual TGreaterEqual TNotEqual TAnd TOr TShiftLeft TSignedShiftRight TUnsignedShiftRight TQuestion TBitXor TBitOr TBitAnd TInstanceof expected.",
00315             "TRParen TRBracket TSemicolon TColon TEqual TLess TGreater TLessEqual TGreaterEqual TNotEqual TAnd TOr TQuestion TBitXor TBitOr TBitAnd TInstanceof expected.",
00316             "TRParen TRBracket TSemicolon TColon TEqual TNotEqual TAnd TOr TQuestion TBitXor TBitOr TBitAnd expected.",
00317             "TRParen TRBracket TSemicolon TColon TAnd TOr TQuestion TBitXor TBitOr TBitAnd expected.",
00318             "TRParen TRBracket TSemicolon TColon TAnd TOr TQuestion TBitXor TBitOr expected.",
00319             "TRParen TRBracket TSemicolon TColon TAnd TOr TQuestion TBitOr expected.",
00320             "TRParen TRBracket TSemicolon TColon TAnd TOr TQuestion expected.",
00321             "TRParen TRBracket TSemicolon TColon TOr TQuestion expected.",
00322             "TRParen TRBracket TSemicolon TColon expected.",
00323             "TDim TRParen expected.",
00324             "TDim TRParen TLBracket TDot TEqual TLess TGreater TLessEqual TGreaterEqual TNotEqual TAnd TOr TShiftLeft TSignedShiftRight TUnsignedShiftRight TQuestion TPlus TMinus TStar TStrongDiv TStrongMod TBitXor TBitOr TBitAnd TInstanceof expected.",
00325             "TTrue TFalse TNull TLParen TRParen TLBracket TRBracket TSemicolon TColon TDot TEqual TLess TGreater TLessEqual TGreaterEqual TNotEqual TAnd TOr TShiftLeft TSignedShiftRight TUnsignedShiftRight TNot TBitComplement TQuestion TPlus TMinus TStar TStrongDiv TStrongMod TBitXor TBitOr TBitAnd TInstanceof TRetVal TThis TDecIntLiteral THexIntLiteral TOctIntLiteral TDecLongLiteral THexLongLiteral TOctLongLiteral TDoubleLiteral TFloatLiteral TCharLiteral TStringLiteral TId expected.",
00326             "TRParen TRBracket TSemicolon TColon TDot TEqual TLess TGreater TLessEqual TGreaterEqual TNotEqual TAnd TOr TQuestion TBitXor TBitOr TBitAnd TInstanceof expected.",
00327         };*/
00328     private static int[] errors;
00329 /*      {
00330             0, 1, 2, 2, 3, 2, 4, 5, 1, 6, 7, 1, 6, 8, 8, 2, 8, 2, 1, 6, 1, 6, 6, 9, 9, 10, 9, 4, 6, 11, 12, 13, 12, 14, 11, 13, 2, 15, 13, 1, 16, 17, 2, 13, 11, 2, 18, 12, 19, 1, 17, 11, 8, 17, 15, 1, 20, 20, 20, 21, 16, 16, 16, 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 22, 22, 22, 22, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 17, 20, 1, 12, 1, 17, 14, 18, 12, 1, 1, 1, 17, 9, 1, 17, 33, 33, 33, 33, 33, 33, 33, 33, 34, 13, 33, 22, 22, 22, 22, 16, 16, 2, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 2, 16, 16, 16, 16, 16, 16, 16, 16, 1, 1, 1, 12, 19, 1, 1, 1, 11, 13, 1, 1, 33, 35, 16, 33, 10, 10, 20, 22, 22, 22, 22, 22, 23, 23, 23, 24, 24, 24, 24, 36, 25, 25, 26, 27, 28, 29, 30, 15, 1, 12, 1, 1, 17, 11, 1, 16, 22, 22, 16, 20, 20, 16, 1, 1, 1, 17, 22, 22, 32, 1, 1, 1, 1, 
00331         };*/
00332     public Parser(Lexer lexer)
00333     {
00334         this.lexer = lexer;
00335 
00336         if(actionTable == null)
00337         {
00338             try
00339             {
00340                 DataInputStream s = new DataInputStream(
00341                     new BufferedInputStream(
00342                     Parser.class.getResourceAsStream("parser.dat")));
00343 
00344                 // read actionTable
00345                 int length = s.readInt();
00346                 actionTable = new int[length][][];
00347                 for(int i = 0; i < actionTable.length; i++)
00348                 {
00349                     length = s.readInt();
00350                     actionTable[i] = new int[length][3];
00351                     for(int j = 0; j < actionTable[i].length; j++)
00352                     {
00353                         for(int k = 0; k < 3; k++)
00354                         {
00355                             actionTable[i][j][k] = s.readInt();
00356                         }
00357                     }
00358                 }
00359 
00360                 // read gotoTable
00361                 length = s.readInt();
00362                 gotoTable = new int[length][][];
00363                 for(int i = 0; i < gotoTable.length; i++)
00364                 {
00365                     length = s.readInt();
00366                     gotoTable[i] = new int[length][2];
00367                     for(int j = 0; j < gotoTable[i].length; j++)
00368                     {
00369                         for(int k = 0; k < 2; k++)
00370                         {
00371                             gotoTable[i][j][k] = s.readInt();
00372                         }
00373                     }
00374                 }
00375 
00376                 // read errorMessages
00377                 length = s.readInt();
00378                 errorMessages = new String[length];
00379                 for(int i = 0; i < errorMessages.length; i++)
00380                 {
00381                     length = s.readInt();
00382                     StringBuffer buffer = new StringBuffer();
00383 
00384                     for(int j = 0; j < length; j++)
00385                     {
00386                         buffer.append(s.readChar());
00387                     }
00388                     errorMessages[i] = buffer.toString();
00389                 }
00390 
00391                 // read errors
00392                 length = s.readInt();
00393                 errors = new int[length];
00394                 for(int i = 0; i < errors.length; i++)
00395                 {
00396                     errors[i] = s.readInt();
00397                 }
00398 
00399                 s.close();
00400             }
00401             catch(Exception e)
00402             {
00403                 throw new RuntimeException("Unable to read parser.dat.");
00404             }
00405         }
00406     }
00407     protected void filter() throws ParserException, LexerException, IOException
00408     {
00409     }
00410     private int goTo(int index)
00411     {
00412         int state = state();
00413         int low = 1;
00414         int high = gotoTable[index].length - 1;
00415         int value = gotoTable[index][0][1];
00416 
00417         while(low <= high)
00418         {
00419             int middle = (low + high) / 2;
00420 
00421             if(state < gotoTable[index][middle][0])
00422             {
00423                 high = middle - 1;
00424             }
00425             else if(state > gotoTable[index][middle][0])
00426             {
00427                 low = middle + 1;
00428             }
00429             else
00430             {
00431                 value = gotoTable[index][middle][1];
00432                 break;
00433             }
00434         }
00435 
00436         return value;
00437     }
00438     private int index(Switchable token)
00439     {
00440         converter.index = -1;
00441         token.apply(converter);
00442         return converter.index;
00443     }
00444     Node new0()
00445     {
00446         XPPropositionDefinition node3 = null;
00447         XPComment node2 = null;
00448         PName node1 = null;
00449         AUnit node = new AUnit(node1, node2, node3);
00450         return node;
00451     }
00452     Node new1()
00453     {
00454         XPPropositionDefinition node3 = null;
00455         XPComment node2 = null;
00456         PName node1 = (PName) pop();
00457         AUnit node = new AUnit(node1, node2, node3);
00458         return node;
00459     }
00460     Node new10()
00461     {
00462         XPPropositionDefinition node3 = (XPPropositionDefinition) pop();
00463         XPComment node2 = (XPComment) pop();
00464         PName node1 = null;
00465         AUnit node = new AUnit(node1, node2, node3);
00466         return node;
00467     }
00468     Node new100()
00469     {
00470         PBitAndExp node1 = (PBitAndExp) pop();
00471         AAndExclusiveOrExp node = new AAndExclusiveOrExp(node1);
00472         return node;
00473     }
00474     Node new101()
00475     {
00476         PBitAndExp node3 = (PBitAndExp) pop();
00477         TBitXor node2 = (TBitXor) pop();
00478         PExclusiveOrExp node1 = (PExclusiveOrExp) pop();
00479         AXorExclusiveOrExp node = new AXorExclusiveOrExp(node1, node2, node3);
00480         return node;
00481     }
00482     Node new102()
00483     {
00484         PExclusiveOrExp node1 = (PExclusiveOrExp) pop();
00485         AXorInclusiveOrExp node = new AXorInclusiveOrExp(node1);
00486         return node;
00487     }
00488     Node new103()
00489     {
00490         PExclusiveOrExp node3 = (PExclusiveOrExp) pop();
00491         TBitOr node2 = (TBitOr) pop();
00492         PInclusiveOrExp node1 = (PInclusiveOrExp) pop();
00493         AOrInclusiveOrExp node = new AOrInclusiveOrExp(node1, node2, node3);
00494         return node;
00495     }
00496     Node new104()
00497     {
00498         PInclusiveOrExp node1 = (PInclusiveOrExp) pop();
00499         AInclusiveOrAndExp node = new AInclusiveOrAndExp(node1);
00500         return node;
00501     }
00502     Node new105()
00503     {
00504         PInclusiveOrExp node3 = (PInclusiveOrExp) pop();
00505         TAnd node2 = (TAnd) pop();
00506         PAndExp node1 = (PAndExp) pop();
00507         AAndAndExp node = new AAndAndExp(node1, node2, node3);
00508         return node;
00509     }
00510     Node new106()
00511     {
00512         PAndExp node1 = (PAndExp) pop();
00513         AAndOrExp node = new AAndOrExp(node1);
00514         return node;
00515     }
00516     Node new107()
00517     {
00518         PAndExp node3 = (PAndExp) pop();
00519         TOr node2 = (TOr) pop();
00520         POrExp node1 = (POrExp) pop();
00521         AOrOrExp node = new AOrOrExp(node1, node2, node3);
00522         return node;
00523     }
00524     Node new108()
00525     {
00526         POrExp node1 = (POrExp) pop();
00527         AOrConditionalExp node = new AOrConditionalExp(node1);
00528         return node;
00529     }
00530     Node new109()
00531     {
00532         PConditionalExp node5 = (PConditionalExp) pop();
00533         TColon node4 = (TColon) pop();
00534         PExp node3 = (PExp) pop();
00535         TQuestion node2 = (TQuestion) pop();
00536         POrExp node1 = (POrExp) pop();
00537         AQuestionConditionalExp node = new AQuestionConditionalExp(node1, node2, node3, node4, node5);
00538         return node;
00539     }
00540     Node new11()
00541     {
00542         XPPropositionDefinition node3 = (XPPropositionDefinition) pop();
00543         XPComment node2 = (XPComment) pop();
00544         PName node1 = (PName) pop();
00545         AUnit node = new AUnit(node1, node2, node3);
00546         return node;
00547     }
00548     Node new110()
00549     {
00550         PConditionalExp node1 = (PConditionalExp) pop();
00551         AConditionalExp node = new AConditionalExp(node1);
00552         return node;
00553     }
00554     Node new111()
00555     {
00556         TEqual node1 = (TEqual) pop();
00557         AEqualBinOp node = new AEqualBinOp(node1);
00558         return node;
00559     }
00560     Node new112()
00561     {
00562         TNotEqual node1 = (TNotEqual) pop();
00563         ANotEqualBinOp node = new ANotEqualBinOp(node1);
00564         return node;
00565     }
00566     Node new113()
00567     {
00568         TGreater node1 = (TGreater) pop();
00569         AGreaterBinOp node = new AGreaterBinOp(node1);
00570         return node;
00571     }
00572     Node new114()
00573     {
00574         TGreaterEqual node1 = (TGreaterEqual) pop();
00575         AGreaterEqualBinOp node = new AGreaterEqualBinOp(node1);
00576         return node;
00577     }
00578     Node new115()
00579     {
00580         TLess node1 = (TLess) pop();
00581         ALessBinOp node = new ALessBinOp(node1);
00582         return node;
00583     }
00584     Node new116()
00585     {
00586         TLessEqual node1 = (TLessEqual) pop();
00587         ALessEqualBinOp node = new ALessEqualBinOp(node1);
00588         return node;
00589     }
00590     Node new117()
00591     {
00592         TAnd node1 = (TAnd) pop();
00593         AAndBinOp node = new AAndBinOp(node1);
00594         return node;
00595     }
00596     Node new118()
00597     {
00598         TOr node1 = (TOr) pop();
00599         AOrBinOp node = new AOrBinOp(node1);
00600         return node;
00601     }
00602     Node new119()
00603     {
00604         TPlus node1 = (TPlus) pop();
00605         APlusBinOp node = new APlusBinOp(node1);
00606         return node;
00607     }
00608     Node new12()
00609     {
00610         TEndOfLineComment node1 = (TEndOfLineComment) pop();
00611         AEndOfLineComment node = new AEndOfLineComment(node1);
00612         return node;
00613     }
00614     Node new120()
00615     {
00616         TMinus node1 = (TMinus) pop();
00617         AMinusBinOp node = new AMinusBinOp(node1);
00618         return node;
00619     }
00620     Node new121()
00621     {
00622         TStar node1 = (TStar) pop();
00623         ATimesBinOp node = new ATimesBinOp(node1);
00624         return node;
00625     }
00626     Node new122()
00627     {
00628         TStrongDiv node1 = (TStrongDiv) pop();
00629         AStrongDivBinOp node = new AStrongDivBinOp(node1);
00630         return node;
00631     }
00632     Node new123()
00633     {
00634         TStrongMod node1 = (TStrongMod) pop();
00635         AStrongModBinOp node = new AStrongModBinOp(node1);
00636         return node;
00637     }
00638     Node new124()
00639     {
00640         TShiftLeft node1 = (TShiftLeft) pop();
00641         AShiftLeftBinOp node = new AShiftLeftBinOp(node1);
00642         return node;
00643     }
00644     Node new125()
00645     {
00646         TSignedShiftRight node1 = (TSignedShiftRight) pop();
00647         ASignedShiftRightBinOp node = new ASignedShiftRightBinOp(node1);
00648         return node;
00649     }
00650     Node new126()
00651     {
00652         TUnsignedShiftRight node1 = (TUnsignedShiftRight) pop();
00653         AUnsignedShiftRightBinOp node = new AUnsignedShiftRightBinOp(node1);
00654         return node;
00655     }
00656     Node new127()
00657     {
00658         TBitAnd node1 = (TBitAnd) pop();
00659         ABitAndBinOp node = new ABitAndBinOp(node1);
00660         return node;
00661     }
00662     Node new128()
00663     {
00664         TBitOr node1 = (TBitOr) pop();
00665         ABitOrBinOp node = new ABitOrBinOp(node1);
00666         return node;
00667     }
00668     Node new129()
00669     {
00670         TBitXor node1 = (TBitXor) pop();
00671         ABitXorBinOp node = new ABitXorBinOp(node1);
00672         return node;
00673     }
00674     Node new13()
00675     {
00676         XPComment node8 = null;
00677         TSemicolon node7 = (TSemicolon) pop();
00678         PColonExp node6 = null;
00679         TRParen node5 = (TRParen) pop();
00680         PParams node4 = null;
00681         TLParen node3 = (TLParen) pop();
00682         TId node2 = (TId) pop();
00683         TInvoke node1 = (TInvoke) pop();
00684         AInvokePropositionDefinition node = new AInvokePropositionDefinition(node1, node2, node3, node4, node5, node6, node7, node8);
00685         return node;
00686     }
00687     Node new130()
00688     {
00689         TDecIntLiteral node1 = (TDecIntLiteral) pop();
00690         ADecIntLiteral node = new ADecIntLiteral(node1);
00691         return node;
00692     }
00693     Node new131()
00694     {
00695         THexIntLiteral node1 = (THexIntLiteral) pop();
00696         AHexIntLiteral node = new AHexIntLiteral(node1);
00697         return node;
00698     }
00699     Node new132()
00700     {
00701         TOctIntLiteral node1 = (TOctIntLiteral) pop();
00702         AOctIntLiteral node = new AOctIntLiteral(node1);
00703         return node;
00704     }
00705     Node new133()
00706     {
00707         TDecLongLiteral node1 = (TDecLongLiteral) pop();
00708         ADecLongLiteral node = new ADecLongLiteral(node1);
00709         return node;
00710     }
00711     Node new134()
00712     {
00713         THexLongLiteral node1 = (THexLongLiteral) pop();
00714         AHexLongLiteral node = new AHexLongLiteral(node1);
00715         return node;
00716     }
00717     Node new135()
00718     {
00719         TOctLongLiteral node1 = (TOctLongLiteral) pop();
00720         AOctLongLiteral node = new AOctLongLiteral(node1);
00721         return node;
00722     }
00723     Node new136()
00724     {
00725         TFloatLiteral node1 = (TFloatLiteral) pop();
00726         AFloatLiteral node = new AFloatLiteral(node1);
00727         return node;
00728     }
00729     Node new137()
00730     {
00731         TDoubleLiteral node1 = (TDoubleLiteral) pop();
00732         ADoubleLiteral node = new ADoubleLiteral(node1);
00733         return node;
00734     }
00735     Node new138()
00736     {
00737         TCharLiteral node1 = (TCharLiteral) pop();
00738         ACharLiteral node = new ACharLiteral(node1);
00739         return node;
00740     }
00741     Node new139()
00742     {
00743         TTrue node1 = (TTrue) pop();
00744         ATrueLiteral node = new ATrueLiteral(node1);
00745         return node;
00746     }
00747     Node new14()
00748     {
00749         XPComment node8 = null;
00750         TSemicolon node7 = (TSemicolon) pop();
00751         PColonExp node6 = null;
00752         TRParen node5 = (TRParen) pop();
00753         PParams node4 = (PParams) pop();
00754         TLParen node3 = (TLParen) pop();
00755         TId node2 = (TId) pop();
00756         TInvoke node1 = (TInvoke) pop();
00757         AInvokePropositionDefinition node = new AInvokePropositionDefinition(node1, node2, node3, node4, node5, node6, node7, node8);
00758         return node;
00759     }
00760     Node new140()
00761     {
00762         TFalse node1 = (TFalse) pop();
00763         AFalseLiteral node = new AFalseLiteral(node1);
00764         return node;
00765     }
00766     Node new141()
00767     {
00768         TNull node1 = (TNull) pop();
00769         ANullLiteral node = new ANullLiteral(node1);
00770         return node;
00771     }
00772     Node new142()
00773     {
00774         TStringLiteral node1 = (TStringLiteral) pop();
00775         AStringLiteral node = new AStringLiteral(node1);
00776         return node;
00777     }
00778     Node new143()
00779     {
00780         TBoolean node1 = (TBoolean) pop();
00781         ABooleanPrimitiveType node = new ABooleanPrimitiveType(node1);
00782         return node;
00783     }
00784     Node new144()
00785     {
00786         TByte node1 = (TByte) pop();
00787         ABytePrimitiveType node = new ABytePrimitiveType(node1);
00788         return node;
00789     }
00790     Node new145()
00791     {
00792         TShort node1 = (TShort) pop();
00793         AShortPrimitiveType node = new AShortPrimitiveType(node1);
00794         return node;
00795     }
00796     Node new146()
00797     {
00798         TChar node1 = (TChar) pop();
00799         ACharPrimitiveType node = new ACharPrimitiveType(node1);
00800         return node;
00801     }
00802     Node new147()
00803     {
00804         TInt node1 = (TInt) pop();
00805         AIntPrimitiveType node = new AIntPrimitiveType(node1);
00806         return node;
00807     }
00808     Node new148()
00809     {
00810         TLong node1 = (TLong) pop();
00811         ALongPrimitiveType node = new ALongPrimitiveType(node1);
00812         return node;
00813     }
00814     Node new149()
00815     {
00816         TFloat node1 = (TFloat) pop();
00817         AFloatPrimitiveType node = new AFloatPrimitiveType(node1);
00818         return node;
00819     }
00820     Node new15()
00821     {
00822         XPComment node8 = null;
00823         TSemicolon node7 = (TSemicolon) pop();
00824         PColonExp node6 = (PColonExp) pop();
00825         TRParen node5 = (TRParen) pop();
00826         PParams node4 = null;
00827         TLParen node3 = (TLParen) pop();
00828         TId node2 = (TId) pop();
00829         TInvoke node1 = (TInvoke) pop();
00830         AInvokePropositionDefinition node = new AInvokePropositionDefinition(node1, node2, node3, node4, node5, node6, node7, node8);
00831         return node;
00832     }
00833     Node new150()
00834     {
00835         TDouble node1 = (TDouble) pop();
00836         ADoublePrimitiveType node = new ADoublePrimitiveType(node1);
00837         return node;
00838     }
00839     Node new16()
00840     {
00841         XPComment node8 = null;
00842         TSemicolon node7 = (TSemicolon) pop();
00843         PColonExp node6 = (PColonExp) pop();
00844         TRParen node5 = (TRParen) pop();
00845         PParams node4 = (PParams) pop();
00846         TLParen node3 = (TLParen) pop();
00847         TId node2 = (TId) pop();
00848         TInvoke node1 = (TInvoke) pop();
00849         AInvokePropositionDefinition node = new AInvokePropositionDefinition(node1, node2, node3, node4, node5, node6, node7, node8);
00850         return node;
00851     }
00852     Node new17()
00853     {
00854         XPComment node8 = (XPComment) pop();
00855         TSemicolon node7 = (TSemicolon) pop();
00856         PColonExp node6 = null;
00857         TRParen node5 = (TRParen) pop();
00858         PParams node4 = null;
00859         TLParen node3 = (TLParen) pop();
00860         TId node2 = (TId) pop();
00861         TInvoke node1 = (TInvoke) pop();
00862         AInvokePropositionDefinition node = new AInvokePropositionDefinition(node1, node2, node3, node4, node5, node6, node7, node8);
00863         return node;
00864     }
00865     Node new18()
00866     {
00867         XPComment node8 = (XPComment) pop();
00868         TSemicolon node7 = (TSemicolon) pop();
00869         PColonExp node6 = null;
00870         TRParen node5 = (TRParen) pop();
00871         PParams node4 = (PParams) pop();
00872         TLParen node3 = (TLParen) pop();
00873         TId node2 = (TId) pop();
00874         TInvoke node1 = (TInvoke) pop();
00875         AInvokePropositionDefinition node = new AInvokePropositionDefinition(node1, node2, node3, node4, node5, node6, node7, node8);
00876         return node;
00877     }
00878     Node new19()
00879     {
00880         XPComment node8 = (XPComment) pop();
00881         TSemicolon node7 = (TSemicolon) pop();
00882         PColonExp node6 = (PColonExp) pop();
00883         TRParen node5 = (TRParen) pop();
00884         PParams node4 = null;
00885         TLParen node3 = (TLParen) pop();
00886         TId node2 = (TId) pop();
00887         TInvoke node1 = (TInvoke) pop();
00888         AInvokePropositionDefinition node = new AInvokePropositionDefinition(node1, node2, node3, node4, node5, node6, node7, node8);
00889         return node;
00890     }
00891     Node new2()
00892     {
00893         XPPropositionDefinition node3 = null;
00894         XPComment node2 = (XPComment) pop();
00895         PName node1 = null;
00896         AUnit node = new AUnit(node1, node2, node3);
00897         return node;
00898     }
00899     Node new20()
00900     {
00901         XPComment node8 = (XPComment) pop();
00902         TSemicolon node7 = (TSemicolon) pop();
00903         PColonExp node6 = (PColonExp) pop();
00904         TRParen node5 = (TRParen) pop();
00905         PParams node4 = (PParams) pop();
00906         TLParen node3 = (TLParen) pop();
00907         TId node2 = (TId) pop();
00908         TInvoke node1 = (TInvoke) pop();
00909         AInvokePropositionDefinition node = new AInvokePropositionDefinition(node1, node2, node3, node4, node5, node6, node7, node8);
00910         return node;
00911     }
00912     Node new21()
00913     {
00914         XPComment node8 = null;
00915         TSemicolon node7 = (TSemicolon) pop();
00916         PColonExp node6 = null;
00917         TRParen node5 = (TRParen) pop();
00918         PParams node4 = null;
00919         TLParen node3 = (TLParen) pop();
00920         TId node2 = (TId) pop();
00921         TReturn node1 = (TReturn) pop();
00922         AReturnPropositionDefinition node = new AReturnPropositionDefinition(node1, node2, node3, node4, node5, node6, node7, node8);
00923         return node;
00924     }
00925     Node new22()
00926     {
00927         XPComment node8 = null;
00928         TSemicolon node7 = (TSemicolon) pop();
00929         PColonExp node6 = null;
00930         TRParen node5 = (TRParen) pop();
00931         PParams node4 = (PParams) pop();
00932         TLParen node3 = (TLParen) pop();
00933         TId node2 = (TId) pop();
00934         TReturn node1 = (TReturn) pop();
00935         AReturnPropositionDefinition node = new AReturnPropositionDefinition(node1, node2, node3, node4, node5, node6, node7, node8);
00936         return node;
00937     }
00938     Node new23()
00939     {
00940         XPComment node8 = null;
00941         TSemicolon node7 = (TSemicolon) pop();
00942         PColonExp node6 = (PColonExp) pop();
00943         TRParen node5 = (TRParen) pop();
00944         PParams node4 = null;
00945         TLParen node3 = (TLParen) pop();
00946         TId node2 = (TId) pop();
00947         TReturn node1 = (TReturn) pop();
00948         AReturnPropositionDefinition node = new AReturnPropositionDefinition(node1, node2, node3, node4, node5, node6, node7, node8);
00949         return node;
00950     }
00951     Node new24()
00952     {
00953         XPComment node8 = null;
00954         TSemicolon node7 = (TSemicolon) pop();
00955         PColonExp node6 = (PColonExp) pop();
00956         TRParen node5 = (TRParen) pop();
00957         PParams node4 = (PParams) pop();
00958         TLParen node3 = (TLParen) pop();
00959         TId node2 = (TId) pop();
00960         TReturn node1 = (TReturn) pop();
00961         AReturnPropositionDefinition node = new AReturnPropositionDefinition(node1, node2, node3, node4, node5, node6, node7, node8);
00962         return node;
00963     }
00964     Node new25()
00965     {
00966         XPComment node8 = (XPComment) pop();
00967         TSemicolon node7 = (TSemicolon) pop();
00968         PColonExp node6 = null;
00969         TRParen node5 = (TRParen) pop();
00970         PParams node4 = null;
00971         TLParen node3 = (TLParen) pop();
00972         TId node2 = (TId) pop();
00973         TReturn node1 = (TReturn) pop();
00974         AReturnPropositionDefinition node = new AReturnPropositionDefinition(node1, node2, node3, node4, node5, node6, node7, node8);
00975         return node;
00976     }
00977     Node new26()
00978     {
00979         XPComment node8 = (XPComment) pop();
00980         TSemicolon node7 = (TSemicolon) pop();
00981         PColonExp node6 = null;
00982         TRParen node5 = (TRParen) pop();
00983         PParams node4 = (PParams) pop();
00984         TLParen node3 = (TLParen) pop();
00985         TId node2 = (TId) pop();
00986         TReturn node1 = (TReturn) pop();
00987         AReturnPropositionDefinition node = new AReturnPropositionDefinition(node1, node2, node3, node4, node5, node6, node7, node8);
00988         return node;
00989     }
00990     Node new27()
00991     {
00992         XPComment node8 = (XPComment) pop();
00993         TSemicolon node7 = (TSemicolon) pop();
00994         PColonExp node6 = (PColonExp) pop();
00995         TRParen node5 = (TRParen) pop();
00996         PParams node4 = null;
00997         TLParen node3 = (TLParen) pop();
00998         TId node2 = (TId) pop();
00999         TReturn node1 = (TReturn) pop();
01000         AReturnPropositionDefinition node = new AReturnPropositionDefinition(node1, node2, node3, node4, node5, node6, node7, node8);
01001         return node;
01002     }
01003     Node new28()
01004     {
01005         XPComment node8 = (XPComment) pop();
01006         TSemicolon node7 = (TSemicolon) pop();
01007         PColonExp node6 = (PColonExp) pop();
01008         TRParen node5 = (TRParen) pop();
01009         PParams node4 = (PParams) pop();
01010         TLParen node3 = (TLParen) pop();
01011         TId node2 = (TId) pop();
01012         TReturn node1 = (TReturn) pop();
01013         AReturnPropositionDefinition node = new AReturnPropositionDefinition(node1, node2, node3, node4, node5, node6, node7, node8);
01014         return node;
01015     }
01016     Node new29()
01017     {
01018         XPComment node11 = null;
01019         TSemicolon node10 = (TSemicolon) pop();
01020         PColonExp node9 = null;
01021         TRParen node8 = (TRParen) pop();
01022         PParams node7 = null;
01023         TLParen node6 = (TLParen) pop();
01024         TId node5 = (TId) pop();
01025         TRBracket node4 = (TRBracket) pop();
01026         TId node3 = (TId) pop();
01027         TLBracket node2 = (TLBracket) pop();
01028         TLocation node1 = (TLocation) pop();
01029         ALocationPropositionDefinition node = new ALocationPropositionDefinition(node1, node2, node3, node4, node5, node6, node7, node8, node9, node10, node11);
01030         return node;
01031     }
01032     Node new3()
01033     {
01034         PComment node2 = (PComment) pop();
01035         XPComment node1 = (XPComment) pop();
01036         X1PComment node = new X1PComment(node1, node2);
01037         return node;
01038     }
01039     Node new30()
01040     {
01041         XPComment node11 = null;
01042         TSemicolon node10 = (TSemicolon) pop();
01043         PColonExp node9 = null;
01044         TRParen node8 = (TRParen) pop();
01045         PParams node7 = (PParams) pop();
01046         TLParen node6 = (TLParen) pop();
01047         TId node5 = (TId) pop();
01048         TRBracket node4 = (TRBracket) pop();
01049         TId node3 = (TId) pop();
01050         TLBracket node2 = (TLBracket) pop();
01051         TLocation node1 = (TLocation) pop();
01052         ALocationPropositionDefinition node = new ALocationPropositionDefinition(node1, node2, node3, node4, node5, node6, node7, node8, node9, node10, node11);
01053         return node;
01054     }
01055     Node new31()
01056     {
01057         XPComment node11 = null;
01058         TSemicolon node10 = (TSemicolon) pop();
01059         PColonExp node9 = (PColonExp) pop();
01060         TRParen node8 = (TRParen) pop();
01061         PParams node7 = null;
01062         TLParen node6 = (TLParen) pop();
01063         TId node5 = (TId) pop();
01064         TRBracket node4 = (TRBracket) pop();
01065         TId node3 = (TId) pop();
01066         TLBracket node2 = (TLBracket) pop();
01067         TLocation node1 = (TLocation) pop();
01068         ALocationPropositionDefinition node = new ALocationPropositionDefinition(node1, node2, node3, node4, node5, node6, node7, node8, node9, node10, node11);
01069         return node;
01070     }
01071     Node new32()
01072     {
01073         XPComment node11 = null;
01074         TSemicolon node10 = (TSemicolon) pop();
01075         PColonExp node9 = (PColonExp) pop();
01076         TRParen node8 = (TRParen) pop();
01077         PParams node7 = (PParams) pop();
01078         TLParen node6 = (TLParen) pop();
01079         TId node5 = (TId) pop();
01080         TRBracket node4 = (TRBracket) pop();
01081         TId node3 = (TId) pop();
01082         TLBracket node2 = (TLBracket) pop();
01083         TLocation node1 = (TLocation) pop();
01084         ALocationPropositionDefinition node = new ALocationPropositionDefinition(node1, node2, node3, node4, node5, node6, node7, node8, node9, node10, node11);
01085         return node;
01086     }
01087     Node new33()
01088     {
01089         XPComment node11 = (XPComment) pop();
01090         TSemicolon node10 = (TSemicolon) pop();
01091         PColonExp node9 = null;
01092         TRParen node8 = (TRParen) pop();
01093         PParams node7 = null;
01094         TLParen node6 = (TLParen) pop();
01095         TId node5 = (TId) pop();
01096         TRBracket node4 = (TRBracket) pop();
01097         TId node3 = (TId) pop();
01098         TLBracket node2 = (TLBracket) pop();
01099         TLocation node1 = (TLocation) pop();
01100         ALocationPropositionDefinition node = new ALocationPropositionDefinition(node1, node2, node3, node4, node5, node6, node7, node8, node9, node10, node11);
01101         return node;
01102     }
01103     Node new34()
01104     {
01105         XPComment node11 = (XPComment) pop();
01106         TSemicolon node10 = (TSemicolon) pop();
01107         PColonExp node9 = null;
01108         TRParen node8 = (TRParen) pop();
01109         PParams node7 = (PParams) pop();
01110         TLParen node6 = (TLParen) pop();
01111         TId node5 = (TId) pop();
01112         TRBracket node4 = (TRBracket) pop();
01113         TId node3 = (TId) pop();
01114         TLBracket node2 = (TLBracket) pop();
01115         TLocation node1 = (TLocation) pop();
01116         ALocationPropositionDefinition node = new ALocationPropositionDefinition(node1, node2, node3, node4, node5, node6, node7, node8, node9, node10, node11);
01117         return node;
01118     }
01119     Node new35()
01120     {
01121         XPComment node11 = (XPComment) pop();
01122         TSemicolon node10 = (TSemicolon) pop();
01123         PColonExp node9 = (PColonExp) pop();
01124         TRParen node8 = (TRParen) pop();
01125         PParams node7 = null;
01126         TLParen node6 = (TLParen) pop();
01127         TId node5 = (TId) pop();
01128         TRBracket node4 = (TRBracket) pop();
01129         TId node3 = (TId) pop();
01130         TLBracket node2 = (TLBracket) pop();
01131         TLocation node1 = (TLocation) pop();
01132         ALocationPropositionDefinition node = new ALocationPropositionDefinition(node1, node2, node3, node4, node5, node6, node7, node8, node9, node10, node11);
01133         return node;
01134     }
01135     Node new36()
01136     {
01137         XPComment node11 = (XPComment) pop();
01138         TSemicolon node10 = (TSemicolon) pop();
01139         PColonExp node9 = (PColonExp) pop();
01140         TRParen node8 = (TRParen) pop();
01141         PParams node7 = (PParams) pop();
01142         TLParen node6 = (TLParen) pop();
01143         TId node5 = (TId) pop();
01144         TRBracket node4 = (TRBracket) pop();
01145         TId node3 = (TId) pop();
01146         TLBracket node2 = (TLBracket) pop();
01147         TLocation node1 = (TLocation) pop();
01148         ALocationPropositionDefinition node = new ALocationPropositionDefinition(node1, node2, node3, node4, node5, node6, node7, node8, node9, node10, node11);
01149         return node;
01150     }
01151     Node new37()
01152     {
01153         XPComment node8 = null;
01154         TSemicolon node7 = (TSemicolon) pop();
01155         PColonExp node6 = (PColonExp) pop();
01156         TRParen node5 = (TRParen) pop();
01157         PParams node4 = null;
01158         TLParen node3 = (TLParen) pop();
01159         TId node2 = (TId) pop();
01160         TExpression node1 = (TExpression) pop();
01161         AExpressionPropositionDefinition node = new AExpressionPropositionDefinition(node1, node2, node3, node4, node5, node6, node7, node8);
01162         return node;
01163     }
01164     Node new38()
01165     {
01166         XPComment node8 = null;
01167         TSemicolon node7 = (TSemicolon) pop();
01168         PColonExp node6 = (PColonExp) pop();
01169         TRParen node5 = (TRParen) pop();
01170         PParams node4 = (PParams) pop();
01171         TLParen node3 = (TLParen) pop();
01172         TId node2 = (TId) pop();
01173         TExpression node1 = (TExpression) pop();
01174         AExpressionPropositionDefinition node = new AExpressionPropositionDefinition(node1, node2, node3, node4, node5, node6, node7, node8);
01175         return node;
01176     }
01177     Node new39()
01178     {
01179         XPComment node8 = (XPComment) pop();
01180         TSemicolon node7 = (TSemicolon) pop();
01181         PColonExp node6 = (PColonExp) pop();
01182         TRParen node5 = (TRParen) pop();
01183         PParams node4 = null;
01184         TLParen node3 = (TLParen) pop();
01185         TId node2 = (TId) pop();
01186         TExpression node1 = (TExpression) pop();
01187         AExpressionPropositionDefinition node = new AExpressionPropositionDefinition(node1, node2, node3, node4, node5, node6, node7, node8);
01188         return node;
01189     }
01190     Node new4()
01191     {
01192         PComment node1 = (PComment) pop();
01193         X2PComment node = new X2PComment(node1);
01194         return node;
01195     }
01196     Node new40()
01197     {
01198         XPComment node8 = (XPComment) pop();
01199         TSemicolon node7 = (TSemicolon) pop();
01200         PColonExp node6 = (PColonExp) pop();
01201         TRParen node5 = (TRParen) pop();
01202         PParams node4 = (PParams) pop();
01203         TLParen node3 = (TLParen) pop();
01204         TId node2 = (TId) pop();
01205         TExpression node1 = (TExpression) pop();
01206         AExpressionPropositionDefinition node = new AExpressionPropositionDefinition(node1, node2, node3, node4, node5, node6, node7, node8);
01207         return node;
01208     }
01209     Node new41()
01210     {
01211         PCpl node2 = null;
01212         TThis node1 = (TThis) pop();
01213         AInstanceParams node = new AInstanceParams(node1, node2);
01214         return node;
01215     }
01216     Node new42()
01217     {
01218         PCpl node2 = (PCpl) pop();
01219         TThis node1 = (TThis) pop();
01220         AInstanceParams node = new AInstanceParams(node1, node2);
01221         return node;
01222     }
01223     Node new43()
01224     {
01225         PParamList node1 = (PParamList) pop();
01226         AStaticParams node = new AStaticParams(node1);
01227         return node;
01228     }
01229     Node new44()
01230     {
01231         PParamList node2 = (PParamList) pop();
01232         TComma node1 = (TComma) pop();
01233         ACpl node = new ACpl(node1, node2);
01234         return node;
01235     }
01236     Node new45()
01237     {
01238         TId node3 = (TId) pop();
01239         XTDim node2 = null;
01240         PName node1 = (PName) pop();
01241         AParamParamList node = new AParamParamList(node1, node2, node3);
01242         return node;
01243     }
01244     Node new46()
01245     {
01246         TId node3 = (TId) pop();
01247         XTDim node2 = (XTDim) pop();
01248         PName node1 = (PName) pop();
01249         AParamParamList node = new AParamParamList(node1, node2, node3);
01250         return node;
01251     }
01252     Node new47()
01253     {
01254         TDim node2 = (TDim) pop();
01255         XTDim node1 = (XTDim) pop();
01256         X1TDim node = new X1TDim(node1, node2);
01257         return node;
01258     }
01259     Node new48()
01260     {
01261         TDim node1 = (TDim) pop();
01262         X2TDim node = new X2TDim(node1);
01263         return node;
01264     }
01265     Node new49()
01266     {
01267         TId node5 = (TId) pop();
01268         XTDim node4 = null;
01269         PName node3 = (PName) pop();
01270         TComma node2 = (TComma) pop();
01271         PParamList node1 = (PParamList) pop();
01272         AParamsParamList node = new AParamsParamList(node1, node2, node3, node4, node5);
01273         return node;
01274     }
01275     Node new5()
01276     {
01277         XPPropositionDefinition node3 = null;
01278         XPComment node2 = (XPComment) pop();
01279         PName node1 = (PName) pop();
01280         AUnit node = new AUnit(node1, node2, node3);
01281         return node;
01282     }
01283     Node new50()
01284     {
01285         TId node5 = (TId) pop();
01286         XTDim node4 = (XTDim) pop();
01287         PName node3 = (PName) pop();
01288         TComma node2 = (TComma) pop();
01289         PParamList node1 = (PParamList) pop();
01290         AParamsParamList node = new AParamsParamList(node1, node2, node3, node4, node5);
01291         return node;
01292     }
01293     Node new51()
01294     {
01295         PExp node2 = (PExp) pop();
01296         TColon node1 = (TColon) pop();
01297         AColonExp node = new AColonExp(node1, node2);
01298         return node;
01299     }
01300     Node new52()
01301     {
01302         TId node1 = (TId) pop();
01303         ASimpleName node = new ASimpleName(node1);
01304         return node;
01305     }
01306     Node new53()
01307     {
01308         TId node3 = (TId) pop();
01309         TDot node2 = (TDot) pop();
01310         PName node1 = (PName) pop();
01311         AQualifiedName node = new AQualifiedName(node1, node2, node3);
01312         return node;
01313     }
01314     Node new54()
01315     {
01316         TRBracket node4 = (TRBracket) pop();
01317         PExp node3 = (PExp) pop();
01318         TLBracket node2 = (TLBracket) pop();
01319         PName node1 = (PName) pop();
01320         AStrongNameArrayAccess node = new AStrongNameArrayAccess(node1, node2, node3, node4);
01321         return node;
01322     }
01323     Node new55()
01324     {
01325         TRBracket node4 = (TRBracket) pop();
01326         PExp node3 = (PExp) pop();
01327         TLBracket node2 = (TLBracket) pop();
01328         PPrimaryExp node1 = (PPrimaryExp) pop();
01329         AStrongExpArrayAccess node = new AStrongExpArrayAccess(node1, node2, node3, node4);
01330         return node;
01331     }
01332     Node new56()
01333     {
01334         TId node3 = (TId) pop();
01335         TDot node2 = (TDot) pop();
01336         PPrimaryExp node1 = (PPrimaryExp) pop();
01337         AStrongObjectFieldAccess node = new AStrongObjectFieldAccess(node1, node2, node3);
01338         return node;
01339     }
01340     Node new57()
01341     {
01342         TId node2 = (TId) pop();
01343         TDot node1 = (TDot) pop();
01344         AStrongObjectNavigation node = new AStrongObjectNavigation(node1, node2);
01345         return node;
01346     }
01347     Node new58()
01348     {
01349         TRBracket node3 = (TRBracket) pop();
01350         PExp node2 = (PExp) pop();
01351         TLBracket node1 = (TLBracket) pop();
01352         AStrongArrayNavigation node = new AStrongArrayNavigation(node1, node2, node3);
01353         return node;
01354     }
01355     Node new59()
01356     {
01357         PLiteral node1 = (PLiteral) pop();
01358         ALiteralPrimaryExp node = new ALiteralPrimaryExp(node1);
01359         return node;
01360     }
01361     Node new6()
01362     {
01363         XPPropositionDefinition node3 = (XPPropositionDefinition) pop();
01364         XPComment node2 = null;
01365         PName node1 = null;
01366         AUnit node = new AUnit(node1, node2, node3);
01367         return node;
01368     }
01369     Node new60()
01370     {
01371         TRParen node3 = (TRParen) pop();
01372         PExp node2 = (PExp) pop();
01373         TLParen node1 = (TLParen) pop();
01374         AParenPrimaryExp node = new AParenPrimaryExp(node1, node2, node3);
01375         return node;
01376     }
01377     Node new61()
01378     {
01379         PFieldAccess node1 = (PFieldAccess) pop();
01380         AFieldAccessPrimaryExp node = new AFieldAccessPrimaryExp(node1);
01381         return node;
01382     }
01383     Node new62()
01384     {
01385         PArrayAccess node1 = (PArrayAccess) pop();
01386         AArrayAccessPrimaryExp node = new AArrayAccessPrimaryExp(node1);
01387         return node;
01388     }
01389     Node new63()
01390     {
01391         TRetVal node1 = (TRetVal) pop();
01392         AReturnValuePrimaryExp node = new AReturnValuePrimaryExp(node1);
01393         return node;
01394     }
01395     Node new64()
01396     {
01397         TThis node1 = (TThis) pop();
01398         AThisPrimaryExp node = new AThisPrimaryExp(node1);
01399         return node;
01400     }
01401     Node new65()
01402     {
01403         PPrimaryExp node1 = (PPrimaryExp) pop();
01404         APrimaryPostfixExp node = new APrimaryPostfixExp(node1);
01405         return node;
01406     }
01407     Node new66()
01408     {
01409         PName node1 = (PName) pop();
01410         ANamePostfixExp node = new ANamePostfixExp(node1);
01411         return node;
01412     }
01413     Node new67()
01414     {
01415         PUnaryExp node5 = (PUnaryExp) pop();
01416         TRParen node4 = (TRParen) pop();
01417         XTDim node3 = null;
01418         PPrimitiveType node2 = (PPrimitiveType) pop();
01419         TLParen node1 = (TLParen) pop();
01420         AStrongPrimitiveCastExp node = new AStrongPrimitiveCastExp(node1, node2, node3, node4, node5);
01421         return node;
01422     }
01423     Node new68()
01424     {
01425         PUnaryExp node5 = (PUnaryExp) pop();
01426         TRParen node4 = (TRParen) pop();
01427         XTDim node3 = (XTDim) pop();
01428         PPrimitiveType node2 = (PPrimitiveType) pop();
01429         TLParen node1 = (TLParen) pop();
01430         AStrongPrimitiveCastExp node = new AStrongPrimitiveCastExp(node1, node2, node3, node4, node5);
01431         return node;
01432     }
01433     Node new69()
01434     {
01435         PUnaryExp node5 = (PUnaryExp) pop();
01436         TRParen node4 = (TRParen) pop();
01437         XTDim node3 = (XTDim) pop();
01438         PName node2 = (PName) pop();
01439         TLParen node1 = (TLParen) pop();
01440         AStrongNameCastExp node = new AStrongNameCastExp(node1, node2, node3, node4, node5);
01441         return node;
01442     }
01443     Node new7()
01444     {
01445         PPropositionDefinition node2 = (PPropositionDefinition) pop();
01446         XPPropositionDefinition node1 = (XPPropositionDefinition) pop();
01447         X1PPropositionDefinition node = new X1PPropositionDefinition(node1, node2);
01448         return node;
01449     }
01450     Node new70()
01451     {
01452         PUnaryNotPlusMinusExp node4 = (PUnaryNotPlusMinusExp) pop();
01453         TRParen node3 = (TRParen) pop();
01454         PExp node2 = (PExp) pop();
01455         TLParen node1 = (TLParen) pop();
01456         AStrongExpCastExp node = new AStrongExpCastExp(node1, node2, node3, node4);
01457         return node;
01458     }
01459     Node new71()
01460     {
01461         PPostfixExp node1 = (PPostfixExp) pop();
01462         APostfixUnaryNotPlusMinusExp node = new APostfixUnaryNotPlusMinusExp(node1);
01463         return node;
01464     }
01465     Node new72()
01466     {
01467         PUnaryExp node2 = (PUnaryExp) pop();
01468         TNot node1 = (TNot) pop();
01469         AComplementUnaryNotPlusMinusExp node = new AComplementUnaryNotPlusMinusExp(node1, node2);
01470         return node;
01471     }
01472     Node new73()
01473     {
01474         PUnaryExp node2 = (PUnaryExp) pop();
01475         TBitComplement node1 = (TBitComplement) pop();
01476         ABitComplementUnaryNotPlusMinusExp node = new ABitComplementUnaryNotPlusMinusExp(node1, node2);
01477         return node;
01478     }
01479     Node new74()
01480     {
01481         PCastExp node1 = (PCastExp) pop();
01482         ACastUnaryNotPlusMinusExp node = new ACastUnaryNotPlusMinusExp(node1);
01483         return node;
01484     }
01485     Node new75()
01486     {
01487         PUnaryExp node2 = (PUnaryExp) pop();
01488         TPlus node1 = (TPlus) pop();
01489         APlusUnaryExp node = new APlusUnaryExp(node1, node2);
01490         return node;
01491     }
01492     Node new76()
01493     {
01494         PUnaryExp node2 = (PUnaryExp) pop();
01495         TMinus node1 = (TMinus) pop();
01496         AMinusUnaryExp node = new AMinusUnaryExp(node1, node2);
01497         return node;
01498     }
01499     Node new77()
01500     {
01501         PUnaryNotPlusMinusExp node1 = (PUnaryNotPlusMinusExp) pop();
01502         AUnaryNotPlusMinusUnaryExp node = new AUnaryNotPlusMinusUnaryExp(node1);
01503         return node;
01504     }
01505     Node new78()
01506     {
01507         PUnaryExp node1 = (PUnaryExp) pop();
01508         AUnaryExpMultExp node = new AUnaryExpMultExp(node1);
01509         return node;
01510     }
01511     Node new79()
01512     {
01513         PUnaryExp node3 = (PUnaryExp) pop();
01514         TStar node2 = (TStar) pop();
01515         PMultExp node1 = (PMultExp) pop();
01516         ATimesMultExp node = new ATimesMultExp(node1, node2, node3);
01517         return node;
01518     }
01519     Node new8()
01520     {
01521         PPropositionDefinition node1 = (PPropositionDefinition) pop();
01522         X2PPropositionDefinition node = new X2PPropositionDefinition(node1);
01523         return node;
01524     }
01525     Node new80()
01526     {
01527         PUnaryExp node3 = (PUnaryExp) pop();
01528         TStrongDiv node2 = (TStrongDiv) pop();
01529         PMultExp node1 = (PMultExp) pop();
01530         AStrongDivMultExp node = new AStrongDivMultExp(node1, node2, node3);
01531         return node;
01532     }
01533     Node new81()
01534     {
01535         PUnaryExp node3 = (PUnaryExp) pop();
01536         TStrongMod node2 = (TStrongMod) pop();
01537         PMultExp node1 = (PMultExp) pop();
01538         AStrongModMultExp node = new AStrongModMultExp(node1, node2, node3);
01539         return node;
01540     }
01541     Node new82()
01542     {
01543         PMultExp node1 = (PMultExp) pop();
01544         AMultAddExp node = new AMultAddExp(node1);
01545         return node;
01546     }
01547     Node new83()
01548     {
01549         PMultExp node3 = (PMultExp) pop();
01550         TPlus node2 = (TPlus) pop();
01551         PAddExp node1 = (PAddExp) pop();
01552         APlusAddExp node = new APlusAddExp(node1, node2, node3);
01553         return node;
01554     }
01555     Node new84()
01556     {
01557         PMultExp node3 = (PMultExp) pop();
01558         TMinus node2 = (TMinus) pop();
01559         PAddExp node1 = (PAddExp) pop();
01560         AMinusAddExp node = new AMinusAddExp(node1, node2, node3);
01561         return node;
01562     }
01563     Node new85()
01564     {
01565         PAddExp node1 = (PAddExp) pop();
01566         AAddExpShiftExp node = new AAddExpShiftExp(node1);
01567         return node;
01568     }
01569     Node new86()
01570     {
01571         PAddExp node3 = (PAddExp) pop();
01572         TShiftLeft node2 = (TShiftLeft) pop();
01573         PShiftExp node1 = (PShiftExp) pop();
01574         ALeftShiftExp node = new ALeftShiftExp(node1, node2, node3);
01575         return node;
01576     }
01577     Node new87()
01578     {
01579         PAddExp node3 = (PAddExp) pop();
01580         TSignedShiftRight node2 = (TSignedShiftRight) pop();
01581         PShiftExp node1 = (PShiftExp) pop();
01582         ASignedRightShiftExp node = new ASignedRightShiftExp(node1, node2, node3);
01583         return node;
01584     }
01585     Node new88()
01586     {
01587         PAddExp node3 = (PAddExp) pop();
01588         TUnsignedShiftRight node2 = (TUnsignedShiftRight) pop();
01589         PShiftExp node1 = (PShiftExp) pop();
01590         AUnsignedRightShiftExp node = new AUnsignedRightShiftExp(node1, node2, node3);
01591         return node;
01592     }
01593     Node new89()
01594     {
01595         PShiftExp node1 = (PShiftExp) pop();
01596         AShiftRelExp node = new AShiftRelExp(node1);
01597         return node;
01598     }
01599     Node new9()
01600     {
01601         XPPropositionDefinition node3 = (XPPropositionDefinition) pop();
01602         XPComment node2 = null;
01603         PName node1 = (PName) pop();
01604         AUnit node = new AUnit(node1, node2, node3);
01605         return node;
01606     }
01607     Node new90()
01608     {
01609         PShiftExp node3 = (PShiftExp) pop();
01610         TLess node2 = (TLess) pop();
01611         PRelExp node1 = (PRelExp) pop();
01612         ALessRelExp node = new ALessRelExp(node1, node2, node3);
01613         return node;
01614     }
01615     Node new91()
01616     {
01617         PShiftExp node3 = (PShiftExp) pop();
01618         TGreater node2 = (TGreater) pop();
01619         PRelExp node1 = (PRelExp) pop();
01620         AGreaterRelExp node = new AGreaterRelExp(node1, node2, node3);
01621         return node;
01622     }
01623     Node new92()
01624     {
01625         PShiftExp node3 = (PShiftExp) pop();
01626         TLessEqual node2 = (TLessEqual) pop();
01627         PRelExp node1 = (PRelExp) pop();
01628         ALessEqualRelExp node = new ALessEqualRelExp(node1, node2, node3);
01629         return node;
01630     }
01631     Node new93()
01632     {
01633         PShiftExp node3 = (PShiftExp) pop();
01634         TGreaterEqual node2 = (TGreaterEqual) pop();
01635         PRelExp node1 = (PRelExp) pop();
01636         AGreaterEqualRelExp node = new AGreaterEqualRelExp(node1, node2, node3);
01637         return node;
01638     }
01639     Node new94()
01640     {
01641         PName node3 = (PName) pop();
01642         TInstanceof node2 = (TInstanceof) pop();
01643         PRelExp node1 = (PRelExp) pop();
01644         AInstanceofRelExp node = new AInstanceofRelExp(node1, node2, node3);
01645         return node;
01646     }
01647     Node new95()
01648     {
01649         PRelExp node1 = (PRelExp) pop();
01650         ARelEqExp node = new ARelEqExp(node1);
01651         return node;
01652     }
01653     Node new96()
01654     {
01655         PRelExp node3 = (PRelExp) pop();
01656         TEqual node2 = (TEqual) pop();
01657         PEqExp node1 = (PEqExp) pop();
01658         AEqEqExp node = new AEqEqExp(node1, node2, node3);
01659         return node;
01660     }
01661     Node new97()
01662     {
01663         PRelExp node3 = (PRelExp) pop();
01664         TNotEqual node2 = (TNotEqual) pop();
01665         PEqExp node1 = (PEqExp) pop();
01666         ANeqEqExp node = new ANeqEqExp(node1, node2, node3);
01667         return node;
01668     }
01669     Node new98()
01670     {
01671         PEqExp node1 = (PEqExp) pop();
01672         AEqBitAndExp node = new AEqBitAndExp(node1);
01673         return node;
01674     }
01675     Node new99()
01676     {
01677         PEqExp node3 = (PEqExp) pop();
01678         TBitAnd node2 = (TBitAnd) pop();
01679         PBitAndExp node1 = (PBitAndExp) pop();
01680         AAndBitAndExp node = new AAndBitAndExp(node1, node2, node3);
01681         return node;
01682     }
01683     public Start parse() throws ParserException, LexerException, IOException
01684     {
01685         push(0, null, false);
01686 
01687         List ign = null;
01688         while(true)
01689         {
01690             while(index(lexer.peek()) == -1)
01691             {
01692                 if(ign == null)
01693                 {
01694                     ign = new TypedLinkedList(NodeCast.instance);
01695                 }
01696 
01697                 ign.add(lexer.next());
01698             }
01699 
01700             if(ign != null)
01701             {
01702                 ignoredTokens.setIn(lexer.peek(), ign);
01703                 ign = null;
01704             }
01705 
01706             last_pos = lexer.peek().getPos();
01707             last_line = lexer.peek().getLine();
01708 
01709             int index = index(lexer.peek());
01710             action[0] = actionTable[state()][0][1];
01711             action[1] = actionTable[state()][0][2];
01712 
01713             int low = 1;
01714             int high = actionTable[state()].length - 1;
01715 
01716             while(low <= high)
01717             {
01718                 int middle = (low + high) / 2;
01719 
01720                 if(index < actionTable[state()][middle][0])
01721                 {
01722                     high = middle - 1;
01723                 }
01724                 else if(index > actionTable[state()][middle][0])
01725                 {
01726                     low = middle + 1;
01727                 }
01728                 else
01729                 {
01730                     action[0] = actionTable[state()][middle][1];
01731                     action[1] = actionTable[state()][middle][2];
01732                     break;
01733                 }
01734             }
01735 
01736             switch(action[0])
01737             {
01738                 case SHIFT:
01739                     push(action[1], lexer.next(), true);
01740                     last_shift = action[1];
01741                     break;
01742                 case REDUCE:
01743                     switch(action[1])
01744                     {
01745                     case 0: { Node node = new0(); push(goTo(0), node, true); } break;
01746                     case 1: { Node node = new1(); push(goTo(0), node, true); } break;
01747                     case 2: { Node node = new2(); push(goTo(0), node, true); } break;
01748                     case 3: { Node node = new3(); push(goTo(31), node, false); } break;
01749                     case 4: { Node node = new4(); push(goTo(31), node, false); } break;
01750                     case 5: { Node node = new5(); push(goTo(0), node, true); } break;
01751                     case 6: { Node node = new6(); push(goTo(0), node, true); } break;
01752                     case 7: { Node node = new7(); push(goTo(32), node, false); } break;
01753                     case 8: { Node node = new8(); push(goTo(32), node, false); } break;
01754                     case 9: { Node node = new9(); push(goTo(0), node, true); } break;
01755                     case 10: { Node node = new10(); push(goTo(0), node, true); } break;
01756                     case 11: { Node node = new11(); push(goTo(0), node, true); } break;
01757                     case 12: { Node node = new12(); push(goTo(1), node, true); } break;
01758                     case 13: { Node node = new13(); push(goTo(2), node, true); } break;
01759                     case 14: { Node node = new14(); push(goTo(2), node, true); } break;
01760                     case 15: { Node node = new15(); push(goTo(2), node, true); } break;
01761                     case 16: { Node node = new16(); push(goTo(2), node, true); } break;
01762                     case 17: { Node node = new17(); push(goTo(2), node, true); } break;
01763                     case 18: { Node node = new18(); push(goTo(2), node, true); } break;
01764                     case 19: { Node node = new19(); push(goTo(2), node, true); } break;
01765                     case 20: { Node node = new20(); push(goTo(2), node, true); } break;
01766                     case 21: { Node node = new21(); push(goTo(2), node, true); } break;
01767                     case 22: { Node node = new22(); push(goTo(2), node, true); } break;
01768                     case 23: { Node node = new23(); push(goTo(2), node, true); } break;
01769                     case 24: { Node node = new24(); push(goTo(2), node, true); } break;
01770                     case 25: { Node node = new25(); push(goTo(2), node, true); } break;
01771                     case 26: { Node node = new26(); push(goTo(2), node, true); } break;
01772                     case 27: { Node node = new27(); push(goTo(2), node, true); } break;
01773                     case 28: { Node node = new28(); push(goTo(2), node, true); } break;
01774                     case 29: { Node node = new29(); push(goTo(2), node, true); } break;
01775                     case 30: { Node node = new30(); push(goTo(2), node, true); } break;
01776                     case 31: { Node node = new31(); push(goTo(2), node, true); } break;
01777                     case 32: { Node node = new32(); push(goTo(2), node, true); } break;
01778                     case 33: { Node node = new33(); push(goTo(2), node, true); } break;
01779                     case 34: { Node node = new34(); push(goTo(2), node, true); } break;
01780                     case 35: { Node node = new35(); push(goTo(2), node, true); } break;
01781                     case 36: { Node node = new36(); push(goTo(2), node, true); } break;
01782                     case 37: { Node node = new37(); push(goTo(2), node, true); } break;
01783                     case 38: { Node node = new38(); push(goTo(2), node, true); } break;
01784                     case 39: { Node node = new39(); push(goTo(2), node, true); } break;
01785                     case 40: { Node node = new40(); push(goTo(2), node, true); } break;
01786                     case 41: { Node node = new41(); push(goTo(3), node, true); } break;
01787                     case 42: { Node node = new42(); push(goTo(3), node, true); } break;
01788                     case 43: { Node node = new43(); push(goTo(3), node, true); } break;
01789                     case 44: { Node node = new44(); push(goTo(4), node, true); } break;
01790                     case 45: { Node node = new45(); push(goTo(5), node, true); } break;
01791                     case 46: { Node node = new46(); push(goTo(5), node, true); } break;
01792                     case 47: { Node node = new47(); push(goTo(33), node, false); } break;
01793                     case 48: { Node node = new48(); push(goTo(33), node, false); } break;
01794                     case 49: { Node node = new49(); push(goTo(5), node, true); } break;
01795                     case 50: { Node node = new50(); push(goTo(5), node, true); } break;
01796                     case 51: { Node node = new51(); push(goTo(6), node, true); } break;
01797                     case 52: { Node node = new52(); push(goTo(7), node, true); } break;
01798                     case 53: { Node node = new53(); push(goTo(7), node, true); } break;
01799                     case 54: { Node node = new54(); push(goTo(8), node, true); } break;
01800                     case 55: { Node node = new55(); push(goTo(8), node, true); } break;
01801                     case 56: { Node node = new56(); push(goTo(9), node, true); } break;
01802                     case 57: { Node node = new57(); push(goTo(10), node, true); } break;
01803                     case 58: { Node node = new58(); push(goTo(10), node, true); } break;
01804                     case 59: { Node node = new59(); push(goTo(11), node, true); } break;
01805                     case 60: { Node node = new60(); push(goTo(11), node, true); } break;
01806                     case 61: { Node node = new61(); push(goTo(11), node, true); } break;
01807                     case 62: { Node node = new62(); push(goTo(11), node, true); } break;
01808                     case 63: { Node node = new63(); push(goTo(11), node, true); } break;
01809                     case 64: { Node node = new64(); push(goTo(11), node, true); } break;
01810                     case 65: { Node node = new65(); push(goTo(12), node, true); } break;
01811                     case 66: { Node node = new66(); push(goTo(12), node, true); } break;
01812                     case 67: { Node node = new67(); push(goTo(13), node, true); } break;
01813                     case 68: { Node node = new68(); push(goTo(13), node, true); } break;
01814                     case 69: { Node node = new69(); push(goTo(13), node, true); } break;
01815                     case 70: { Node node = new70(); push(goTo(13), node, true); } break;
01816                     case 71: { Node node = new71(); push(goTo(14), node, true); } break;
01817                     case 72: { Node node = new72(); push(goTo(14), node, true); } break;
01818                     case 73: { Node node = new73(); push(goTo(14), node, true); } break;
01819                     case 74: { Node node = new74(); push(goTo(14), node, true); } break;
01820                     case 75: { Node node = new75(); push(goTo(15), node, true); } break;
01821                     case 76: { Node node = new76(); push(goTo(15), node, true); } break;
01822                     case 77: { Node node = new77(); push(goTo(15), node, true); } break;
01823                     case 78: { Node node = new78(); push(goTo(16), node, true); } break;
01824                     case 79: { Node node = new79(); push(goTo(16), node, true); } break;
01825                     case 80: { Node node = new80(); push(goTo(16), node, true); } break;
01826                     case 81: { Node node = new81(); push(goTo(16), node, true); } break;
01827                     case 82: { Node node = new82(); push(goTo(17), node, true); } break;
01828                     case 83: { Node node = new83(); push(goTo(17), node, true); } break;
01829                     case 84: { Node node = new84(); push(goTo(17), node, true); } break;
01830                     case 85: { Node node = new85(); push(goTo(18), node, true); } break;
01831                     case 86: { Node node = new86(); push(goTo(18), node, true); } break;
01832                     case 87: { Node node = new87(); push(goTo(18), node, true); } break;
01833                     case 88: { Node node = new88(); push(goTo(18), node, true); } break;
01834                     case 89: { Node node = new89(); push(goTo(19), node, true); } break;
01835                     case 90: { Node node = new90(); push(goTo(19), node, true); } break;
01836                     case 91: { Node node = new91(); push(goTo(19), node, true); } break;
01837                     case 92: { Node node = new92(); push(goTo(19), node, true); } break;
01838                     case 93: { Node node = new93(); push(goTo(19), node, true); } break;
01839                     case 94: { Node node = new94(); push(goTo(19), node, true); } break;
01840                     case 95: { Node node = new95(); push(goTo(20), node, true); } break;
01841                     case 96: { Node node = new96(); push(goTo(20), node, true); } break;
01842                     case 97: { Node node = new97(); push(goTo(20), node, true); } break;
01843                     case 98: { Node node = new98(); push(goTo(21), node, true); } break;
01844                     case 99: { Node node = new99(); push(goTo(21), node, true); } break;
01845                     case 100: { Node node = new100(); push(goTo(22), node, true); } break;
01846                     case 101: { Node node = new101(); push(goTo(22), node, true); } break;
01847                     case 102: { Node node = new102(); push(goTo(23), node, true); } break;
01848                     case 103: { Node node = new103(); push(goTo(23), node, true); } break;
01849                     case 104: { Node node = new104(); push(goTo(24), node, true); } break;
01850                     case 105: { Node node = new105(); push(goTo(24), node, true); } break;
01851                     case 106: { Node node = new106(); push(goTo(25), node, true); } break;
01852                     case 107: { Node node = new107(); push(goTo(25), node, true); } break;
01853                     case 108: { Node node = new108(); push(goTo(26), node, true); } break;
01854                     case 109: { Node node = new109(); push(goTo(26), node, true); } break;
01855                     case 110: { Node node = new110(); push(goTo(27), node, true); } break;
01856                     case 111: { Node node = new111(); push(goTo(28), node, true); } break;
01857                     case 112: { Node node = new112(); push(goTo(28), node, true); } break;
01858                     case 113: { Node node = new113(); push(goTo(28), node, true); } break;
01859                     case 114: { Node node = new114(); push(goTo(28), node, true); } break;
01860                     case 115: { Node node = new115(); push(goTo(28), node, true); } break;
01861                     case 116: { Node node = new116(); push(goTo(28), node, true); } break;
01862                     case 117: { Node node = new117(); push(goTo(28), node, true); } break;
01863                     case 118: { Node node = new118(); push(goTo(28), node, true); } break;
01864                     case 119: { Node node = new119(); push(goTo(28), node, true); } break;
01865                     case 120: { Node node = new120(); push(goTo(28), node, true); } break;
01866                     case 121: { Node node = new121(); push(goTo(28), node, true); } break;
01867                     case 122: { Node node = new122(); push(goTo(28), node, true); } break;
01868                     case 123: { Node node = new123(); push(goTo(28), node, true); } break;
01869                     case 124: { Node node = new124(); push(goTo(28), node, true); } break;
01870                     case 125: { Node node = new125(); push(goTo(28), node, true); } break;
01871                     case 126: { Node node = new126(); push(goTo(28), node, true); } break;
01872                     case 127: { Node node = new127(); push(goTo(28), node, true); } break;
01873                     case 128: { Node node = new128(); push(goTo(28), node, true); } break;
01874                     case 129: { Node node = new129(); push(goTo(28), node, true); } break;
01875                     case 130: { Node node = new130(); push(goTo(29), node, true); } break;
01876                     case 131: { Node node = new131(); push(goTo(29), node, true); } break;
01877                     case 132: { Node node = new132(); push(goTo(29), node, true); } break;
01878                     case 133: { Node node = new133(); push(goTo(29), node, true); } break;
01879                     case 134: { Node node = new134(); push(goTo(29), node, true); } break;
01880                     case 135: { Node node = new135(); push(goTo(29), node, true); } break;
01881                     case 136: { Node node = new136(); push(goTo(29), node, true); } break;
01882                     case 137: { Node node = new137(); push(goTo(29), node, true); } break;
01883                     case 138: { Node node = new138(); push(goTo(29), node, true); } break;
01884                     case 139: { Node node = new139(); push(goTo(29), node, true); } break;
01885                     case 140: { Node node = new140(); push(goTo(29), node, true); } break;
01886                     case 141: { Node node = new141(); push(goTo(29), node, true); } break;
01887                     case 142: { Node node = new142(); push(goTo(29), node, true); } break;
01888                     case 143: { Node node = new143(); push(goTo(30), node, true); } break;
01889                     case 144: { Node node = new144(); push(goTo(30), node, true); } break;
01890                     case 145: { Node node = new145(); push(goTo(30), node, true); } break;
01891                     case 146: { Node node = new146(); push(goTo(30), node, true); } break;
01892                     case 147: { Node node = new147(); push(goTo(30), node, true); } break;
01893                     case 148: { Node node = new148(); push(goTo(30), node, true); } break;
01894                     case 149: { Node node = new149(); push(goTo(30), node, true); } break;
01895                     case 150: { Node node = new150(); push(goTo(30), node, true); } break;
01896                     }
01897                     break;
01898                 case ACCEPT:
01899                     {
01900                         EOF node2 = (EOF) lexer.next();
01901                         PUnit node1 = (PUnit) pop();
01902                         Start node = new Start(node1, node2);
01903                         return node;
01904                     }
01905                 case ERROR:
01906                     throw new ParserException(
01907                         "[" + last_line + "," + last_pos + "] " +
01908                         errorMessages[errors[action[1]]]);
01909             }
01910         }
01911     }
01912     private Node pop()
01913     {
01914         return (Node) ((State) stack.previous()).node;
01915     }
01916     private void push(int state, Node node, boolean filter) throws ParserException, LexerException, IOException
01917     {
01918         this.node = node;
01919 
01920         if(filter)
01921         {
01922             filter();
01923         }
01924 
01925         if(!stack.hasNext())
01926         {
01927             stack.add(new State(state, this.node));
01928             return;
01929         }
01930 
01931         State s = (State) stack.next();
01932         s.state = state;
01933         s.node = this.node;
01934     }
01935     private int state()
01936     {
01937         State s = (State) stack.previous();
01938         stack.next();
01939         return s.state;
01940     }
01941 }

Generated at Thu Feb 7 06:51:35 2002 for Bandera by doxygen1.2.10 written by Dimitri van Heesch, © 1997-2001