//----------------------------------------------------
// The following code was generated by CUP v0.11a beta 20060608
// Sat Jan 31 23:52:43 EST 2009
//----------------------------------------------------
package JFlex;
import java.util.*;
/** CUP v0.11a beta 20060608 generated parser.
* @version Sat Jan 31 23:52:43 EST 2009
*/
public class LexParse extends java_cup.runtime.lr_parser {
/** Default constructor. */
public LexParse() {super();}
/** Constructor which sets the default scanner. */
public LexParse(java_cup.runtime.Scanner s) {super(s);}
/** Constructor which sets the default scanner. */
public LexParse(java_cup.runtime.Scanner s, java_cup.runtime.SymbolFactory sf) {super(s,sf);}
/** Production table. */
protected static final short _production_table[][] =
unpackFromStrings(new String[] {
"\000\113\000\002\002\004\000\002\005\006\000\002\005" +
"\002\000\002\002\002\000\002\002\004\000\002\002\003" +
"\000\002\003\003\000\002\003\003\000\002\003\003\000" +
"\002\003\006\000\002\003\004\000\002\021\004\000\002" +
"\021\011\000\002\021\010\000\002\021\003\000\002\004" +
"\006\000\002\004\007\000\002\004\007\000\002\004\005" +
"\000\002\004\003\000\002\013\003\000\002\013\004\000" +
"\002\013\005\000\002\023\004\000\002\024\003\000\002" +
"\024\003\000\002\016\005\000\002\016\002\000\002\015" +
"\005\000\002\015\003\000\002\015\004\000\002\022\003" +
"\000\002\022\002\000\002\006\005\000\002\006\003\000" +
"\002\006\003\000\002\007\004\000\002\007\003\000\002" +
"\010\003\000\002\010\004\000\002\010\004\000\002\011" +
"\004\000\002\011\004\000\002\011\004\000\002\011\005" +
"\000\002\011\006\000\002\011\005\000\002\011\003\000" +
"\002\011\003\000\002\011\003\000\002\011\003\000\002" +
"\011\003\000\002\011\003\000\002\012\004\000\002\012" +
"\005\000\002\012\005\000\002\012\006\000\002\012\006" +
"\000\002\012\007\000\002\017\004\000\002\017\003\000" +
"\002\017\004\000\002\017\003\000\002\017\004\000\002" +
"\017\003\000\002\017\004\000\002\017\003\000\002\014" +
"\005\000\002\014\003\000\002\020\003\000\002\020\003" +
"\000\002\020\003\000\002\020\003\000\002\020\003\000" +
"\002\020\003" });
/** Access to production table. */
public short[][] production_table() {return _production_table;}
/** Parse-action table. */
protected static final short[][] _action_table =
unpackFromStrings(new String[] {
"\000\156\000\006\002\uffff\041\004\001\002\000\016\003" +
"\007\013\ufffe\022\ufffe\023\ufffe\024\ufffe\040\ufffe\001\002" +
"\000\004\002\006\001\002\000\004\002\001\001\002\000" +
"\014\013\ufffc\022\ufffc\023\ufffc\024\ufffc\040\ufffc\001\002" +
"\000\014\013\012\022\011\023\016\024\015\040\014\001" +
"\002\000\014\013\ufffb\022\ufffb\023\ufffb\024\ufffb\040\ufffb" +
"\001\002\000\050\003\114\004\uffe6\006\uffe6\010\uffe6\016" +
"\116\026\uffe6\027\uffe6\030\uffe6\031\uffe6\032\uffe6\033\uffe6" +
"\034\uffe6\045\uffe6\047\uffe6\050\uffe6\051\uffe6\052\uffe6\053" +
"\uffe6\054\uffe6\001\002\000\014\013\ufffd\022\ufffd\023\ufffd" +
"\024\ufffd\040\ufffd\001\002\000\004\014\017\001\002\000" +
"\014\013\ufff9\022\ufff9\023\ufff9\024\ufff9\040\ufff9\001\002" +
"\000\014\013\ufffa\022\ufffa\023\ufffa\024\ufffa\040\ufffa\001" +
"\002\000\052\004\034\010\044\013\ufff7\022\ufff7\023\ufff7" +
"\024\ufff7\026\023\027\031\030\020\031\042\032\035\033" +
"\032\040\ufff7\045\041\047\022\050\037\051\024\052\021" +
"\053\030\054\025\001\002\000\064\004\uffba\005\uffba\007" +
"\uffba\010\uffba\011\uffba\025\uffba\026\uffba\027\uffba\030\uffba" +
"\031\uffba\032\uffba\033\uffba\035\uffba\036\uffba\042\uffba\043" +
"\uffba\044\uffba\045\uffba\046\uffba\047\uffba\050\uffba\051\uffba" +
"\052\uffba\053\uffba\054\uffba\001\002\000\062\004\uffcd\005" +
"\uffcd\007\uffcd\010\uffcd\025\uffcd\026\uffcd\027\uffcd\030\uffcd" +
"\031\uffcd\032\uffcd\033\uffcd\035\uffcd\036\uffcd\042\uffcd\043" +
"\uffcd\044\uffcd\045\uffcd\046\uffcd\047\uffcd\050\uffcd\051\uffcd" +
"\052\uffcd\053\uffcd\054\uffcd\001\002\000\062\004\uffce\005" +
"\uffce\007\uffce\010\uffce\025\uffce\026\uffce\027\uffce\030\uffce" +
"\031\uffce\032\uffce\033\uffce\035\uffce\036\uffce\042\uffce\043" +
"\uffce\044\uffce\045\uffce\046\uffce\047\uffce\050\uffce\051\uffce" +
"\052\uffce\053\uffce\054\uffce\001\002\000\064\004\uffbc\005" +
"\uffbc\007\uffbc\010\uffbc\011\uffbc\025\uffbc\026\uffbc\027\uffbc" +
"\030\uffbc\031\uffbc\032\uffbc\033\uffbc\035\uffbc\036\uffbc\042" +
"\uffbc\043\uffbc\044\uffbc\045\uffbc\046\uffbc\047\uffbc\050\uffbc" +
"\051\uffbc\052\uffbc\053\uffbc\054\uffbc\001\002\000\036\004" +
"\034\010\044\026\023\027\031\030\020\031\042\032\035" +
"\033\032\047\022\050\037\051\024\052\021\053\030\054" +
"\025\001\002\000\062\004\uffd2\005\uffd2\007\uffd2\010\uffd2" +
"\025\uffd2\026\uffd2\027\uffd2\030\uffd2\031\uffd2\032\uffd2\033" +
"\uffd2\035\uffd2\036\uffd2\042\uffd2\043\uffd2\044\uffd2\045\uffd2" +
"\046\uffd2\047\uffd2\050\uffd2\051\uffd2\052\uffd2\053\uffd2\054" +
"\uffd2\001\002\000\006\025\112\045\106\001\002\000\062" +
"\004\uffd0\005\uffd0\007\uffd0\010\uffd0\025\uffd0\026\uffd0\027" +
"\uffd0\030\uffd0\031\uffd0\032\uffd0\033\uffd0\035\uffd0\036\uffd0" +
"\042\uffd0\043\uffd0\044\uffd0\045\uffd0\046\uffd0\047\uffd0\050" +
"\uffd0\051\uffd0\052\uffd0\053\uffd0\054\uffd0\001\002\000\062" +
"\004\uffcf\005\uffcf\007\uffcf\010\uffcf\025\uffcf\026\uffcf\027" +
"\uffcf\030\uffcf\031\uffcf\032\uffcf\033\uffcf\035\uffcf\036\uffcf" +
"\042\uffcf\043\uffcf\044\uffcf\045\uffcf\046\uffcf\047\uffcf\050" +
"\uffcf\051\uffcf\052\uffcf\053\uffcf\054\uffcf\001\002\000\064" +
"\004\uffbb\005\uffbb\007\uffbb\010\uffbb\011\uffbb\025\uffbb\026" +
"\uffbb\027\uffbb\030\uffbb\031\uffbb\032\uffbb\033\uffbb\035\uffbb" +
"\036\uffbb\042\uffbb\043\uffbb\044\uffbb\045\uffbb\046\uffbb\047" +
"\uffbb\050\uffbb\051\uffbb\052\uffbb\053\uffbb\054\uffbb\001\002" +
"\000\064\004\uffb7\005\uffb7\007\uffb7\010\uffb7\011\uffb7\025" +
"\uffb7\026\uffb7\027\uffb7\030\uffb7\031\uffb7\032\uffb7\033\uffb7" +
"\035\uffb7\036\uffb7\042\uffb7\043\uffb7\044\uffb7\045\uffb7\046" +
"\uffb7\047\uffb7\050\uffb7\051\uffb7\052\uffb7\053\uffb7\054\uffb7" +
"\001\002\000\052\004\034\005\uffdf\007\uffdf\010\044\025" +
"\uffdf\026\023\027\031\030\020\031\042\032\035\033\032" +
"\035\uffdf\036\uffdf\045\uffdf\047\022\050\037\051\024\052" +
"\021\053\030\054\025\001\002\000\040\004\034\010\044" +
"\026\023\027\031\030\020\031\042\032\035\033\032\045" +
"\041\047\022\050\037\051\024\052\021\053\030\054\025" +
"\001\002\000\064\004\uffb8\005\uffb8\007\uffb8\010\uffb8\011" +
"\uffb8\025\uffb8\026\uffb8\027\uffb8\030\uffb8\031\uffb8\032\uffb8" +
"\033\uffb8\035\uffb8\036\uffb8\042\uffb8\043\uffb8\044\uffb8\045" +
"\uffb8\046\uffb8\047\uffb8\050\uffb8\051\uffb8\052\uffb8\053\uffb8" +
"\054\uffb8\001\002\000\062\004\uffd1\005\uffd1\007\uffd1\010" +
"\uffd1\025\uffd1\026\uffd1\027\uffd1\030\uffd1\031\uffd1\032\uffd1" +
"\033\uffd1\035\uffd1\036\uffd1\042\uffd1\043\uffd1\044\uffd1\045" +
"\uffd1\046\uffd1\047\uffd1\050\uffd1\051\uffd1\052\uffd1\053\uffd1" +
"\054\uffd1\001\002\000\036\004\034\010\044\026\023\027" +
"\031\030\020\031\042\032\035\033\032\047\022\050\037" +
"\051\024\052\021\053\030\054\025\001\002\000\052\004" +
"\uffdc\005\uffdc\007\uffdc\010\uffdc\025\uffdc\026\uffdc\027\uffdc" +
"\030\uffdc\031\uffdc\032\uffdc\033\uffdc\035\uffdc\036\uffdc\045" +
"\uffdc\047\uffdc\050\uffdc\051\uffdc\052\uffdc\053\uffdc\054\uffdc" +
"\001\002\000\016\005\uffde\007\uffde\025\uffde\035\uffde\036" +
"\uffde\045\uffde\001\002\000\064\004\uffb9\005\uffb9\007\uffb9" +
"\010\uffb9\011\uffb9\025\uffb9\026\uffb9\027\uffb9\030\uffb9\031" +
"\uffb9\032\uffb9\033\uffb9\035\uffb9\036\uffb9\042\uffb9\043\uffb9" +
"\044\uffb9\045\uffb9\046\uffb9\047\uffb9\050\uffb9\051\uffb9\052" +
"\uffb9\053\uffb9\054\uffb9\001\002\000\062\004\uffdb\005\uffdb" +
"\007\uffdb\010\uffdb\025\uffdb\026\uffdb\027\uffdb\030\uffdb\031" +
"\uffdb\032\uffdb\033\uffdb\035\uffdb\036\uffdb\042\077\043\075" +
"\044\076\045\uffdb\046\100\047\uffdb\050\uffdb\051\uffdb\052" +
"\uffdb\053\uffdb\054\uffdb\001\002\000\032\006\047\011\051" +
"\012\050\026\023\027\031\030\020\031\042\032\035\033" +
"\032\052\055\053\052\054\053\001\002\000\026\011\uffc3" +
"\026\uffc3\027\uffc3\030\uffc3\031\uffc3\032\uffc3\033\uffc3\052" +
"\uffc3\053\uffc3\054\uffc3\001\002\000\026\011\uffc5\026\uffc5" +
"\027\uffc5\030\uffc5\031\uffc5\032\uffc5\033\uffc5\052\uffc5\053" +
"\uffc5\054\uffc5\001\002\000\030\011\070\012\067\026\023" +
"\027\031\030\020\031\042\032\035\033\032\052\055\053" +
"\052\054\053\001\002\000\024\026\023\027\031\030\020" +
"\031\042\032\035\033\032\052\055\053\052\054\053\001" +
"\002\000\062\004\uffcc\005\uffcc\007\uffcc\010\uffcc\025\uffcc" +
"\026\uffcc\027\uffcc\030\uffcc\031\uffcc\032\uffcc\033\uffcc\035" +
"\uffcc\036\uffcc\042\uffcc\043\uffcc\044\uffcc\045\uffcc\046\uffcc" +
"\047\uffcc\050\uffcc\051\uffcc\052\uffcc\053\uffcc\054\uffcc\001" +
"\002\000\026\011\uffc1\026\uffc1\027\uffc1\030\uffc1\031\uffc1" +
"\032\uffc1\033\uffc1\052\uffc1\053\uffc1\054\uffc1\001\002\000" +
"\026\011\uffbf\026\uffbf\027\uffbf\030\uffbf\031\uffbf\032\uffbf" +
"\033\uffbf\052\uffbf\053\uffbf\054\uffbf\001\002\000\026\011" +
"\062\026\023\027\031\030\020\031\042\032\035\033\032" +
"\052\055\053\063\054\064\001\002\000\030\011\uffbd\012" +
"\056\026\uffbd\027\uffbd\030\uffbd\031\uffbd\032\uffbd\033\uffbd" +
"\052\uffbd\053\uffbd\054\uffbd\001\002\000\004\052\057\001" +
"\002\000\026\011\uffbe\026\uffbe\027\uffbe\030\uffbe\031\uffbe" +
"\032\uffbe\033\uffbe\052\uffbe\053\uffbe\054\uffbe\001\002\000" +
"\026\011\uffc4\026\uffc4\027\uffc4\030\uffc4\031\uffc4\032\uffc4" +
"\033\uffc4\052\uffc4\053\uffc4\054\uffc4\001\002\000\026\011" +
"\uffc6\026\uffc6\027\uffc6\030\uffc6\031\uffc6\032\uffc6\033\uffc6" +
"\052\uffc6\053\uffc6\054\uffc6\001\002\000\062\004\uffcb\005" +
"\uffcb\007\uffcb\010\uffcb\025\uffcb\026\uffcb\027\uffcb\030\uffcb" +
"\031\uffcb\032\uffcb\033\uffcb\035\uffcb\036\uffcb\042\uffcb\043" +
"\uffcb\044\uffcb\045\uffcb\046\uffcb\047\uffcb\050\uffcb\051\uffcb" +
"\052\uffcb\053\uffcb\054\uffcb\001\002\000\026\011\uffc2\026" +
"\uffc2\027\uffc2\030\uffc2\031\uffc2\032\uffc2\033\uffc2\052\uffc2" +
"\053\uffc2\054\uffc2\001\002\000\026\011\uffc0\026\uffc0\027" +
"\uffc0\030\uffc0\031\uffc0\032\uffc0\033\uffc0\052\uffc0\053\uffc0" +
"\054\uffc0\001\002\000\026\011\066\026\023\027\031\030" +
"\020\031\042\032\035\033\032\052\055\053\063\054\064" +
"\001\002\000\062\004\uffc8\005\uffc8\007\uffc8\010\uffc8\025" +
"\uffc8\026\uffc8\027\uffc8\030\uffc8\031\uffc8\032\uffc8\033\uffc8" +
"\035\uffc8\036\uffc8\042\uffc8\043\uffc8\044\uffc8\045\uffc8\046" +
"\uffc8\047\uffc8\050\uffc8\051\uffc8\052\uffc8\053\uffc8\054\uffc8" +
"\001\002\000\024\026\023\027\031\030\020\031\042\032" +
"\035\033\032\052\055\053\052\054\053\001\002\000\062" +
"\004\uffca\005\uffca\007\uffca\010\uffca\025\uffca\026\uffca\027" +
"\uffca\030\uffca\031\uffca\032\uffca\033\uffca\035\uffca\036\uffca" +
"\042\uffca\043\uffca\044\uffca\045\uffca\046\uffca\047\uffca\050" +
"\uffca\051\uffca\052\uffca\053\uffca\054\uffca\001\002\000\026" +
"\011\072\026\023\027\031\030\020\031\042\032\035\033" +
"\032\052\055\053\063\054\064\001\002\000\062\004\uffc9" +
"\005\uffc9\007\uffc9\010\uffc9\025\uffc9\026\uffc9\027\uffc9\030" +
"\uffc9\031\uffc9\032\uffc9\033\uffc9\035\uffc9\036\uffc9\042\uffc9" +
"\043\uffc9\044\uffc9\045\uffc9\046\uffc9\047\uffc9\050\uffc9\051" +
"\uffc9\052\uffc9\053\uffc9\054\uffc9\001\002\000\026\011\074" +
"\026\023\027\031\030\020\031\042\032\035\033\032\052" +
"\055\053\063\054\064\001\002\000\062\004\uffc7\005\uffc7" +
"\007\uffc7\010\uffc7\025\uffc7\026\uffc7\027\uffc7\030\uffc7\031" +
"\uffc7\032\uffc7\033\uffc7\035\uffc7\036\uffc7\042\uffc7\043\uffc7" +
"\044\uffc7\045\uffc7\046\uffc7\047\uffc7\050\uffc7\051\uffc7\052" +
"\uffc7\053\uffc7\054\uffc7\001\002\000\062\004\uffd8\005\uffd8" +
"\007\uffd8\010\uffd8\025\uffd8\026\uffd8\027\uffd8\030\uffd8\031" +
"\uffd8\032\uffd8\033\uffd8\035\uffd8\036\uffd8\042\uffd8\043\uffd8" +
"\044\uffd8\045\uffd8\046\uffd8\047\uffd8\050\uffd8\051\uffd8\052" +
"\uffd8\053\uffd8\054\uffd8\001\002\000\062\004\uffd7\005\uffd7" +
"\007\uffd7\010\uffd7\025\uffd7\026\uffd7\027\uffd7\030\uffd7\031" +
"\uffd7\032\uffd7\033\uffd7\035\uffd7\036\uffd7\042\uffd7\043\uffd7" +
"\044\uffd7\045\uffd7\046\uffd7\047\uffd7\050\uffd7\051\uffd7\052" +
"\uffd7\053\uffd7\054\uffd7\001\002\000\006\021\101\042\102" +
"\001\002\000\062\004\uffd6\005\uffd6\007\uffd6\010\uffd6\025" +
"\uffd6\026\uffd6\027\uffd6\030\uffd6\031\uffd6\032\uffd6\033\uffd6" +
"\035\uffd6\036\uffd6\042\uffd6\043\uffd6\044\uffd6\045\uffd6\046" +
"\uffd6\047\uffd6\050\uffd6\051\uffd6\052\uffd6\053\uffd6\054\uffd6" +
"\001\002\000\062\004\uffd5\005\uffd5\007\uffd5\010\uffd5\025" +
"\uffd5\026\uffd5\027\uffd5\030\uffd5\031\uffd5\032\uffd5\033\uffd5" +
"\035\uffd5\036\uffd5\042\uffd5\043\uffd5\044\uffd5\045\uffd5\046" +
"\uffd5\047\uffd5\050\uffd5\051\uffd5\052\uffd5\053\uffd5\054\uffd5" +
"\001\002\000\004\021\103\001\002\000\062\004\uffd4\005" +
"\uffd4\007\uffd4\010\uffd4\025\uffd4\026\uffd4\027\uffd4\030\uffd4" +
"\031\uffd4\032\uffd4\033\uffd4\035\uffd4\036\uffd4\042\uffd4\043" +
"\uffd4\044\uffd4\045\uffd4\046\uffd4\047\uffd4\050\uffd4\051\uffd4" +
"\052\uffd4\053\uffd4\054\uffd4\001\002\000\052\004\uffda\005" +
"\uffda\007\uffda\010\uffda\025\uffda\026\uffda\027\uffda\030\uffda" +
"\031\uffda\032\uffda\033\uffda\035\uffda\036\uffda\045\uffda\047" +
"\uffda\050\uffda\051\uffda\052\uffda\053\uffda\054\uffda\001\002" +
"\000\006\005\107\045\106\001\002\000\036\004\034\010" +
"\044\026\023\027\031\030\020\031\042\032\035\033\032" +
"\047\022\050\037\051\024\052\021\053\030\054\025\001" +
"\002\000\062\004\uffd3\005\uffd3\007\uffd3\010\uffd3\025\uffd3" +
"\026\uffd3\027\uffd3\030\uffd3\031\uffd3\032\uffd3\033\uffd3\035" +
"\uffd3\036\uffd3\042\uffd3\043\uffd3\044\uffd3\045\uffd3\046\uffd3" +
"\047\uffd3\050\uffd3\051\uffd3\052\uffd3\053\uffd3\054\uffd3\001" +
"\002\000\052\004\034\005\uffe0\007\uffe0\010\044\025\uffe0" +
"\026\023\027\031\030\020\031\042\032\035\033\032\035" +
"\uffe0\036\uffe0\045\uffe0\047\022\050\037\051\024\052\021" +
"\053\030\054\025\001\002\000\052\004\uffdd\005\uffdd\007" +
"\uffdd\010\uffdd\025\uffdd\026\uffdd\027\uffdd\030\uffdd\031\uffdd" +
"\032\uffdd\033\uffdd\035\uffdd\036\uffdd\045\uffdd\047\uffdd\050" +
"\uffdd\051\uffdd\052\uffdd\053\uffdd\054\uffdd\001\002\000\014" +
"\013\ufff8\022\ufff8\023\ufff8\024\ufff8\040\ufff8\001\002\000" +
"\052\004\uffd9\005\uffd9\007\uffd9\010\uffd9\025\uffd9\026\uffd9" +
"\027\uffd9\030\uffd9\031\uffd9\032\uffd9\033\uffd9\035\uffd9\036" +
"\uffd9\045\uffd9\047\uffd9\050\uffd9\051\uffd9\052\uffd9\053\uffd9" +
"\054\uffd9\001\002\000\054\002\uffee\003\uffee\004\uffee\006" +
"\uffee\010\uffee\016\uffee\021\uffee\026\uffee\027\uffee\030\uffee" +
"\031\uffee\032\uffee\033\uffee\034\uffee\045\uffee\047\uffee\050" +
"\uffee\051\uffee\052\uffee\053\uffee\054\uffee\001\002\000\044" +
"\004\uffe1\006\142\010\uffe1\026\uffe1\027\uffe1\030\uffe1\031" +
"\uffe1\032\uffe1\033\uffe1\034\140\045\uffe1\047\uffe1\050\uffe1" +
"\051\uffe1\052\uffe1\053\uffe1\054\uffe1\001\002\000\004\040" +
"\124\001\002\000\054\002\ufff3\003\ufff3\004\ufff3\006\ufff3" +
"\010\ufff3\016\ufff3\021\ufff3\026\ufff3\027\ufff3\030\ufff3\031" +
"\ufff3\032\ufff3\033\ufff3\034\ufff3\045\ufff3\047\ufff3\050\ufff3" +
"\051\ufff3\052\ufff3\053\ufff3\054\ufff3\001\002\000\052\002" +
"\000\003\114\004\uffe6\006\uffe6\010\uffe6\016\121\026\uffe6" +
"\027\uffe6\030\uffe6\031\uffe6\032\uffe6\033\uffe6\034\uffe6\045" +
"\uffe6\047\uffe6\050\uffe6\051\uffe6\052\uffe6\053\uffe6\054\uffe6" +
"\001\002\000\004\040\124\001\002\000\054\002\ufff6\003" +
"\ufff6\004\ufff6\006\ufff6\010\ufff6\016\ufff6\021\ufff6\026\ufff6" +
"\027\ufff6\030\ufff6\031\ufff6\032\ufff6\033\ufff6\034\ufff6\045" +
"\ufff6\047\ufff6\050\ufff6\051\ufff6\052\ufff6\053\ufff6\054\ufff6" +
"\001\002\000\004\017\127\001\002\000\006\015\125\017" +
"\uffe4\001\002\000\006\017\uffe3\040\124\001\002\000\004" +
"\017\uffe5\001\002\000\046\004\uffe7\006\uffe7\010\uffe7\020" +
"\130\026\uffe7\027\uffe7\030\uffe7\031\uffe7\032\uffe7\033\uffe7" +
"\034\uffe7\045\uffe7\047\uffe7\050\uffe7\051\uffe7\052\uffe7\053" +
"\uffe7\054\uffe7\001\002\000\050\003\114\004\uffe6\006\uffe6" +
"\010\uffe6\016\116\026\uffe6\027\uffe6\030\uffe6\031\uffe6\032" +
"\uffe6\033\uffe6\034\uffe6\045\uffe6\047\uffe6\050\uffe6\051\uffe6" +
"\052\uffe6\053\uffe6\054\uffe6\001\002\000\052\003\114\004" +
"\uffe6\006\uffe6\010\uffe6\016\121\021\132\026\uffe6\027\uffe6" +
"\030\uffe6\031\uffe6\032\uffe6\033\uffe6\034\uffe6\045\uffe6\047" +
"\uffe6\050\uffe6\051\uffe6\052\uffe6\053\uffe6\054\uffe6\001\002" +
"\000\054\002\ufff5\003\ufff5\004\ufff5\006\ufff5\010\ufff5\016" +
"\ufff5\021\ufff5\026\ufff5\027\ufff5\030\ufff5\031\ufff5\032\ufff5" +
"\033\ufff5\034\ufff5\045\ufff5\047\ufff5\050\ufff5\051\ufff5\052" +
"\ufff5\053\ufff5\054\ufff5\001\002\000\004\017\134\001\002" +
"\000\046\004\uffe7\006\uffe7\010\uffe7\020\135\026\uffe7\027" +
"\uffe7\030\uffe7\031\uffe7\032\uffe7\033\uffe7\034\uffe7\045\uffe7" +
"\047\uffe7\050\uffe7\051\uffe7\052\uffe7\053\uffe7\054\uffe7\001" +
"\002\000\050\003\114\004\uffe6\006\uffe6\010\uffe6\016\116" +
"\026\uffe6\027\uffe6\030\uffe6\031\uffe6\032\uffe6\033\uffe6\034" +
"\uffe6\045\uffe6\047\uffe6\050\uffe6\051\uffe6\052\uffe6\053\uffe6" +
"\054\uffe6\001\002\000\052\003\114\004\uffe6\006\uffe6\010" +
"\uffe6\016\121\021\137\026\uffe6\027\uffe6\030\uffe6\031\uffe6" +
"\032\uffe6\033\uffe6\034\uffe6\045\uffe6\047\uffe6\050\uffe6\051" +
"\uffe6\052\uffe6\053\uffe6\054\uffe6\001\002\000\054\002\ufff4" +
"\003\ufff4\004\ufff4\006\ufff4\010\ufff4\016\ufff4\021\ufff4\026" +
"\ufff4\027\ufff4\030\ufff4\031\ufff4\032\ufff4\033\ufff4\034\ufff4" +
"\045\ufff4\047\ufff4\050\ufff4\051\ufff4\052\ufff4\053\ufff4\054" +
"\ufff4\001\002\000\004\037\160\001\002\000\040\004\034" +
"\010\044\026\023\027\031\030\020\031\042\032\035\033" +
"\032\045\041\047\022\050\037\051\024\052\021\053\030" +
"\054\025\001\002\000\040\004\uffe2\010\uffe2\026\uffe2\027" +
"\uffe2\030\uffe2\031\uffe2\032\uffe2\033\uffe2\045\uffe2\047\uffe2" +
"\050\uffe2\051\uffe2\052\uffe2\053\uffe2\054\uffe2\001\002\000" +
"\014\007\152\025\147\035\144\036\146\045\106\001\002" +
"\000\054\002\uffe8\003\uffe8\004\uffe8\006\uffe8\010\uffe8\016" +
"\uffe8\021\uffe8\026\uffe8\027\uffe8\030\uffe8\031\uffe8\032\uffe8" +
"\033\uffe8\034\uffe8\045\uffe8\047\uffe8\050\uffe8\051\uffe8\052" +
"\uffe8\053\uffe8\054\uffe8\001\002\000\054\002\uffe9\003\uffe9" +
"\004\uffe9\006\uffe9\010\uffe9\016\uffe9\021\uffe9\026\uffe9\027" +
"\uffe9\030\uffe9\031\uffe9\032\uffe9\033\uffe9\034\uffe9\045\uffe9" +
"\047\uffe9\050\uffe9\051\uffe9\052\uffe9\053\uffe9\054\uffe9\001" +
"\002\000\040\004\034\010\044\026\023\027\031\030\020" +
"\031\042\032\035\033\032\045\041\047\022\050\037\051" +
"\024\052\021\053\030\054\025\001\002\000\004\037\155" +
"\001\002\000\006\025\147\035\153\001\002\000\054\002" +
"\ufff2\003\ufff2\004\ufff2\006\ufff2\010\ufff2\016\ufff2\021\ufff2" +
"\026\ufff2\027\ufff2\030\ufff2\031\ufff2\032\ufff2\033\ufff2\034" +
"\ufff2\045\ufff2\047\ufff2\050\ufff2\051\ufff2\052\ufff2\053\ufff2" +
"\054\ufff2\001\002\000\006\025\uffed\035\uffed\001\002\000" +
"\054\002\ufff0\003\ufff0\004\ufff0\006\ufff0\010\ufff0\016\ufff0" +
"\021\ufff0\026\ufff0\027\ufff0\030\ufff0\031\ufff0\032\ufff0\033" +
"\ufff0\034\ufff0\045\ufff0\047\ufff0\050\ufff0\051\ufff0\052\ufff0" +
"\053\ufff0\054\ufff0\001\002\000\054\002\ufff1\003\ufff1\004" +
"\ufff1\006\ufff1\010\ufff1\016\ufff1\021\ufff1\026\ufff1\027\ufff1" +
"\030\ufff1\031\ufff1\032\ufff1\033\ufff1\034\ufff1\045\ufff1\047" +
"\ufff1\050\ufff1\051\ufff1\052\ufff1\053\ufff1\054\ufff1\001\002" +
"\000\054\002\uffea\003\uffea\004\uffea\006\uffea\010\uffea\016" +
"\uffea\021\uffea\026\uffea\027\uffea\030\uffea\031\uffea\032\uffea" +
"\033\uffea\034\uffea\045\uffea\047\uffea\050\uffea\051\uffea\052" +
"\uffea\053\uffea\054\uffea\001\002\000\012\007\157\025\uffec" +
"\035\uffec\045\106\001\002\000\006\025\uffeb\035\uffeb\001" +
"\002\000\054\002\uffef\003\uffef\004\uffef\006\uffef\010\uffef" +
"\016\uffef\021\uffef\026\uffef\027\uffef\030\uffef\031\uffef\032" +
"\uffef\033\uffef\034\uffef\045\uffef\047\uffef\050\uffef\051\uffef" +
"\052\uffef\053\uffef\054\uffef\001\002" });
/** Access to parse-action table. */
public short[][] action_table() {return _action_table;}
/** <code>reduce_goto</code> table. */
protected static final short[][] _reduce_table =
unpackFromStrings(new String[] {
"\000\156\000\004\005\004\001\001\000\004\002\007\001" +
"\001\000\002\001\001\000\002\001\001\000\002\001\001" +
"\000\004\003\012\001\001\000\002\001\001\000\010\004" +
"\116\016\114\021\117\001\001\000\002\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001\000\016\006" +
"\025\007\032\010\037\011\042\012\035\020\026\001\001" +
"\000\002\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\012\010\112\011\042\012\035\020\026" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
"\001\000\002\001\001\000\002\001\001\000\002\001\001" +
"\000\012\010\110\011\042\012\035\020\026\001\001\000" +
"\016\006\104\007\032\010\037\011\042\012\035\020\026" +
"\001\001\000\002\001\001\000\002\001\001\000\012\010" +
"\103\011\042\012\035\020\026\001\001\000\002\001\001" +
"\000\002\001\001\000\002\001\001\000\002\001\001\000" +
"\010\014\045\017\053\020\044\001\001\000\002\001\001" +
"\000\002\001\001\000\010\014\045\017\070\020\044\001" +
"\001\000\010\014\045\017\064\020\044\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001\000\006\014" +
"\060\020\057\001\001\000\002\001\001\000\002\001\001" +
"\000\002\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\006" +
"\014\060\020\057\001\001\000\002\001\001\000\010\014" +
"\045\017\072\020\044\001\001\000\002\001\001\000\006" +
"\014\060\020\057\001\001\000\002\001\001\000\006\014" +
"\060\020\057\001\001\000\002\001\001\000\002\001\001" +
"\000\002\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\002\001\001\000\014\007\107\010\037\011" +
"\042\012\035\020\026\001\001\000\002\001\001\000\012" +
"\010\110\011\042\012\035\020\026\001\001\000\002\001" +
"\001\000\002\001\001\000\002\001\001\000\002\001\001" +
"\000\004\022\140\001\001\000\004\015\132\001\001\000" +
"\002\001\001\000\006\004\121\016\114\001\001\000\004" +
"\015\122\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\004\015\125\001\001\000\002\001\001" +
"\000\002\001\001\000\010\004\116\016\114\021\130\001" +
"\001\000\006\004\121\016\114\001\001\000\002\001\001" +
"\000\002\001\001\000\002\001\001\000\010\004\116\016" +
"\114\021\135\001\001\000\006\004\121\016\114\001\001" +
"\000\002\001\001\000\002\001\001\000\016\006\142\007" +
"\032\010\037\011\042\012\035\020\026\001\001\000\002" +
"\001\001\000\010\013\147\023\144\024\150\001\001\000" +
"\002\001\001\000\002\001\001\000\016\006\155\007\032" +
"\010\037\011\042\012\035\020\026\001\001\000\002\001" +
"\001\000\004\023\153\001\001\000\002\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
"\001\000\002\001\001\000\002\001\001\000\002\001\001" +
"" });
/** Access to <code>reduce_goto</code> table. */
public short[][] reduce_table() {return _reduce_table;}
/** Instance of action encapsulation class. */
protected CUP$LexParse$actions action_obj;
/** Action encapsulation object initializer. */
protected void init_actions()
{
action_obj = new CUP$LexParse$actions(this);
}
/** Invoke a user supplied parse action. */
public java_cup.runtime.Symbol do_action(
int act_num,
java_cup.runtime.lr_parser parser,
java.util.Stack stack,
int top)
throws java.lang.Exception
{
/* call code in generated class */
return action_obj.CUP$LexParse$do_action(act_num, parser, stack, top);
}
/** Indicates start state. */
public int start_state() {return 0;}
/** Indicates start production. */
public int start_production() {return 0;}
/** <code>EOF</code> Symbol index. */
public int EOF_sym() {return 0;}
/** <code>error</code> Symbol index. */
public int error_sym() {return 1;}
/** User initialization code. */
public void user_init() throws java.lang.Exception
{
action_obj.scanner = this.scanner;
}
public LexScan scanner;
public LexParse(LexScan scanner) {
super(scanner);
this.scanner = scanner;
}
public CharClasses getCharClasses() {
return action_obj.charClasses;
}
public EOFActions getEOFActions() {
return action_obj.eofActions;
}
public void report_error(String message, Object info) {
if ( info instanceof java_cup.runtime.Symbol ) {
java_cup.runtime.Symbol s = (java_cup.runtime.Symbol) info;
if (s.sym == sym.EOF)
Out.error(ErrorMessages.UNEXPECTED_EOF);
else
Out.error(scanner.file, ErrorMessages.SYNTAX_ERROR, s.left, s.right);
}
else
Out.error(ErrorMessages.UNKNOWN_SYNTAX);
}
public void report_fatal_error(String message, Object info) {
// report_error(message, info);
throw new GeneratorException();
}
}
/** Cup generated class to encapsulate user supplied action code.*/
class CUP$LexParse$actions {
LexScan scanner;
CharClasses charClasses = new CharClasses(Options.jlex ? 127 : 0xFFFF);
RegExps regExps = new RegExps();
Macros macros = new Macros();
Integer stateNumber;
Timer t = new Timer();
EOFActions eofActions = new EOFActions();
void fatalError(ErrorMessages message, int line, int col) {
syntaxError(message, line, col);
throw new GeneratorException();
}
void fatalError(ErrorMessages message) {
fatalError(message, scanner.currentLine(), -1);
throw new GeneratorException();
}
void syntaxError(ErrorMessages message) {
Out.error(scanner.file, message, scanner.currentLine(), -1);
}
void syntaxError(ErrorMessages message, int line) {
Out.error(scanner.file, message, line, -1);
}
void syntaxError(ErrorMessages message, int line, int col) {
Out.error(scanner.file, message, line, col);
}
private boolean check(int type, char c) {
switch (type) {
case sym.JLETTERCLASS:
return Character.isJavaIdentifierStart(c);
case sym.JLETTERDIGITCLASS:
return Character.isJavaIdentifierPart(c);
case sym.LETTERCLASS:
return Character.isLetter(c);
case sym.DIGITCLASS:
return Character.isDigit(c);
case sym.UPPERCLASS:
return Character.isUpperCase(c);
case sym.LOWERCLASS:
return Character.isLowerCase(c);
default: return false;
}
}
private Vector makePreClass(int type) {
Vector result = new Vector();
char c = 0;
char start = 0;
char last = charClasses.getMaxCharCode();
boolean prev, current;
prev = check(type,'\u0000');
for (c = 1; c < last; c++) {
current = check(type,c);
if (!prev && current) start = c;
if (prev && !current) {
result.addElement(new Interval(start, (char)(c-1)));
}
prev = current;
}
// the last iteration is moved out of the loop to
// avoid an endless loop if last == maxCharCode and
// last+1 == 0
current = check(type,c);
if (!prev && current) result.addElement(new Interval(c,c));
if (prev && current) result.addElement(new Interval(start, c));
if (prev && !current) result.addElement(new Interval(start, (char)(c-1)));
return result;
}
private RegExp makeRepeat(RegExp r, int n1, int n2, int line, int col) {
if (n1 <= 0 && n2 <= 0) {
syntaxError(ErrorMessages.REPEAT_ZERO, line, col);
return null;
}
if (n1 > n2) {
syntaxError(ErrorMessages.REPEAT_GREATER, line, col);
return null;
}
int i;
RegExp result;
if (n1 > 0) {
result = r;
n1--; n2--; // we need one concatenation less than the number of expressions to match
}
else {
result = new RegExp1(sym.QUESTION,r);
n2--;
}
for (i = 0; i < n1; i++)
result = new RegExp2(sym.CONCAT, result, r);
n2-= n1;
for (i = 0; i < n2; i++)
result = new RegExp2(sym.CONCAT, result, new RegExp1(sym.QUESTION,r));
return result;
}
private RegExp makeNL() {
Vector list = new Vector();
list.addElement(new Interval('\n','\r'));
list.addElement(new Interval('\u0085','\u0085'));
list.addElement(new Interval('\u2028','\u2029'));
// assumption: line feeds are caseless
charClasses.makeClass(list, false);
charClasses.makeClass('\n', false);
charClasses.makeClass('\r', false);
RegExp1 c = new RegExp1(sym.CCLASS, list);
Character n = new Character('\n');
Character r = new Character('\r');
return new RegExp2(sym.BAR,
c,
new RegExp2(sym.CONCAT,
new RegExp1(sym.CHAR, r),
new RegExp1(sym.CHAR, n)));
}
private final LexParse parser;
/** Constructor */
CUP$LexParse$actions(LexParse parser) {
this.parser = parser;
}
/** Method with the actual generated action code. */
public final java_cup.runtime.Symbol CUP$LexParse$do_action(
int CUP$LexParse$act_num,
java_cup.runtime.lr_parser CUP$LexParse$parser,
java.util.Stack CUP$LexParse$stack,
int CUP$LexParse$top)
throws java.lang.Exception
{
/* Symbol object for return from actions */
java_cup.runtime.Symbol CUP$LexParse$result;
/* select the action based on the action number */
switch (CUP$LexParse$act_num)
{
/*. . . . . . . . . . . . . . . . . . . .*/
case 74: // preclass ::= LOWERCLASS
{
Vector RESULT =null;
RESULT = makePreClass(sym.LOWERCLASS);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("preclass",14, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 73: // preclass ::= UPPERCLASS
{
Vector RESULT =null;
RESULT = makePreClass(sym.UPPERCLASS);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("preclass",14, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 72: // preclass ::= DIGITCLASS
{
Vector RESULT =null;
RESULT = makePreClass(sym.DIGITCLASS);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("preclass",14, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 71: // preclass ::= LETTERCLASS
{
Vector RESULT =null;
RESULT = makePreClass(sym.LETTERCLASS);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("preclass",14, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 70: // preclass ::= JLETTERDIGITCLASS
{
Vector RESULT =null;
RESULT = makePreClass(sym.JLETTERDIGITCLASS);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("preclass",14, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 69: // preclass ::= JLETTERCLASS
{
Vector RESULT =null;
RESULT = makePreClass(sym.JLETTERCLASS);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("preclass",14, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 68: // classcontentelem ::= CHAR
{
Interval RESULT =null;
int cleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int cright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
Character c = (Character)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
RESULT = new Interval(c.charValue(), c.charValue());
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("classcontentelem",10, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 67: // classcontentelem ::= CHAR DASH CHAR
{
Interval RESULT =null;
int c1left = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).left;
int c1right = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).right;
Character c1 = (Character)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).value;
int c2left = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int c2right = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
Character c2 = (Character)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
RESULT = new Interval(c1.charValue(), c2.charValue());
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("classcontentelem",10, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 66: // classcontent ::= MACROUSE
{
Vector RESULT =null;
int identleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int identright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
String ident = (String)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
syntaxError(ErrorMessages.CHARCLASS_MACRO, identleft, identright);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("classcontent",13, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 65: // classcontent ::= classcontent MACROUSE
{
Vector RESULT =null;
int listleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
int listright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
Vector list = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
int identleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int identright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
String ident = (String)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
syntaxError(ErrorMessages.CHARCLASS_MACRO, identleft, identright);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("classcontent",13, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 64: // classcontent ::= STRING
{
Vector RESULT =null;
int sleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int sright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
String s = (String)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
RESULT = new Vector();
for (int i = 0; i < s.length(); i++)
RESULT.addElement(new Interval(s.charAt(i),s.charAt(i)));
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("classcontent",13, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 63: // classcontent ::= classcontent STRING
{
Vector RESULT =null;
int listleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
int listright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
Vector list = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
int sleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int sright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
String s = (String)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
for (int i = 0; i < s.length(); i++)
list.addElement(new Interval(s.charAt(i),s.charAt(i)));
RESULT = list;
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("classcontent",13, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 62: // classcontent ::= preclass
{
Vector RESULT =null;
int listleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int listright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
Vector list = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
RESULT = list;
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("classcontent",13, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 61: // classcontent ::= classcontent preclass
{
Vector RESULT =null;
int listleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
int listright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
Vector list = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
int plistleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int plistright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
Vector plist = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
for (Enumeration e = plist.elements(); e.hasMoreElements();)
list.addElement(e.nextElement());
RESULT = list;
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("classcontent",13, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 60: // classcontent ::= classcontentelem
{
Vector RESULT =null;
int elemleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int elemright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
Interval elem = (Interval)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
Vector list = new Vector();
list.addElement(elem);
RESULT = list;
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("classcontent",13, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 59: // classcontent ::= classcontent classcontentelem
{
Vector RESULT =null;
int listleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
int listright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
Vector list = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
int elemleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int elemright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
Interval elem = (Interval)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
list.addElement(elem);
RESULT = list;
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("classcontent",13, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 58: // charclass ::= OPENCLASS HAT DASH classcontent CLOSECLASS
{
RegExp RESULT =null;
int listleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
int listright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
Vector list = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
int closeleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int closeright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
Object close = (Object)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
try {
list.addElement(new Interval('-','-'));
charClasses.makeClassNot(list, Options.jlex && scanner.caseless);
}
catch (CharClassException e) {
syntaxError(ErrorMessages.CHARSET_2_SMALL, closeleft, closeright);
}
RESULT = new RegExp1(sym.CCLASSNOT,list);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("charclass",8, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-4)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 57: // charclass ::= OPENCLASS DASH classcontent CLOSECLASS
{
RegExp RESULT =null;
int listleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
int listright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
Vector list = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
int closeleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int closeright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
Object close = (Object)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
try {
list.addElement(new Interval('-','-'));
charClasses.makeClass(list, Options.jlex && scanner.caseless);
}
catch (CharClassException e) {
syntaxError(ErrorMessages.CHARSET_2_SMALL, closeleft, closeright);
}
RESULT = new RegExp1(sym.CCLASS,list);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("charclass",8, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 56: // charclass ::= OPENCLASS HAT classcontent CLOSECLASS
{
RegExp RESULT =null;
int listleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
int listright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
Vector list = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
int closeleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int closeright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
Object close = (Object)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
try {
charClasses.makeClassNot(list, Options.jlex && scanner.caseless);
}
catch (CharClassException e) {
syntaxError(ErrorMessages.CHARSET_2_SMALL, closeleft, closeright);
}
RESULT = new RegExp1(sym.CCLASSNOT,list);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("charclass",8, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 55: // charclass ::= OPENCLASS HAT CLOSECLASS
{
RegExp RESULT =null;
int closeleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int closeright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
Object close = (Object)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
Vector list = new Vector();
list.addElement(new Interval((char)0,CharClasses.maxChar));
try {
charClasses.makeClass(list, false);
}
catch (CharClassException e) {
syntaxError(ErrorMessages.CHARSET_2_SMALL, closeleft, closeright);
}
RESULT = new RegExp1(sym.CCLASS,list);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("charclass",8, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 54: // charclass ::= OPENCLASS classcontent CLOSECLASS
{
RegExp RESULT =null;
int listleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
int listright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
Vector list = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
int closeleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int closeright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
Object close = (Object)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
try {
charClasses.makeClass(list, Options.jlex && scanner.caseless);
}
catch (CharClassException e) {
syntaxError(ErrorMessages.CHARSET_2_SMALL, closeleft, closeright);
}
RESULT = new RegExp1(sym.CCLASS,list);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("charclass",8, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 53: // charclass ::= OPENCLASS CLOSECLASS
{
RegExp RESULT =null;
RESULT = new RegExp1(sym.CCLASS,null);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("charclass",8, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 52: // regexp ::= CHAR
{
RegExp RESULT =null;
int cleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int cright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
Character c = (Character)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
try {
if ( scanner.caseless ) {
charClasses.makeClass(c.charValue(), true);
RESULT = new RegExp1(sym.CHAR_I, c);
}
else {
charClasses.makeClass(c.charValue(), false);
RESULT = new RegExp1(sym.CHAR, c);
}
}
catch (CharClassException e) {
syntaxError(ErrorMessages.CS2SMALL_CHAR, cleft, cright);
}
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("regexp",7, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 51: // regexp ::= POINT
{
RegExp RESULT =null;
Vector any = new Vector();
any.addElement(new Interval('\n','\n'));
// assumption: there is no upper case for \n
charClasses.makeClass('\n', false);
RESULT = new RegExp1(sym.CCLASSNOT, any);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("regexp",7, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 50: // regexp ::= STRING
{
RegExp RESULT =null;
int strleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int strright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
String str = (String)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
try {
if ( scanner.caseless ) {
charClasses.makeClass(str, true);
RESULT = new RegExp1(sym.STRING_I, str);
}
else {
charClasses.makeClass(str, false);
RESULT = new RegExp1(sym.STRING, str);
}
}
catch (CharClassException e) {
syntaxError(ErrorMessages.CS2SMALL_STRING, strleft, strright);
}
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("regexp",7, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 49: // regexp ::= preclass
{
RegExp RESULT =null;
int listleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int listright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
Vector list = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
try {
// assumption [correct?]: preclasses are already closed under case
charClasses.makeClass(list, false);
}
catch (CharClassException e) {
syntaxError(ErrorMessages.CHARSET_2_SMALL, listleft);
}
RESULT = new RegExp1(sym.CCLASS, list);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("regexp",7, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 48: // regexp ::= charclass
{
RegExp RESULT =null;
int cleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int cright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
RegExp c = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
RESULT = c;
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("regexp",7, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 47: // regexp ::= MACROUSE
{
RegExp RESULT =null;
int identleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int identright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
String ident = (String)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
if ( !scanner.macroDefinition ) {
if ( ! macros.markUsed(ident) )
throw new ScannerException(scanner.file, ErrorMessages.MACRO_UNDECL,
identleft, identright);
}
RESULT = new RegExp1(sym.MACROUSE, ident);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("regexp",7, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 46: // regexp ::= OPENBRACKET series CLOSEBRACKET
{
RegExp RESULT =null;
int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
RegExp r = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
RESULT = r;
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("regexp",7, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 45: // regexp ::= regexp REPEAT REPEAT RBRACE
{
RegExp RESULT =null;
int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).left;
int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).right;
RegExp r = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).value;
int n1left = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).left;
int n1right = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).right;
Integer n1 = (Integer)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).value;
int n2left = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
int n2right = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
Integer n2 = (Integer)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
RESULT = makeRepeat(r, n1.intValue(), n2.intValue(), n1left, n2right);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("regexp",7, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 44: // regexp ::= regexp REPEAT RBRACE
{
RegExp RESULT =null;
int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).left;
int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).right;
RegExp r = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).value;
int nleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
int nright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
Integer n = (Integer)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
int bleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int bright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
Object b = (Object)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
RESULT = makeRepeat(r, n.intValue(), n.intValue(), bleft, bright);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("regexp",7, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 43: // regexp ::= regexp QUESTION
{
RegExp RESULT =null;
int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
RegExp r = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
RESULT = new RegExp1(sym.QUESTION, r);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("regexp",7, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 42: // regexp ::= regexp PLUS
{
RegExp RESULT =null;
int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
RegExp r = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
RESULT = new RegExp1(sym.PLUS, r);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("regexp",7, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 41: // regexp ::= regexp STAR
{
RegExp RESULT =null;
int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
RegExp r = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
RESULT = new RegExp1(sym.STAR, r);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("regexp",7, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 40: // nregexp ::= TILDE nregexp
{
RegExp RESULT =null;
int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
RegExp r = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
RESULT = new RegExp1(sym.TILDE, r);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("nregexp",6, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 39: // nregexp ::= BANG nregexp
{
RegExp RESULT =null;
int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
RegExp r = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
RESULT = new RegExp1(sym.BANG, r);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("nregexp",6, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 38: // nregexp ::= regexp
{
RegExp RESULT =null;
int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
RegExp r = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
RESULT = r;
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("nregexp",6, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 37: // concs ::= nregexp
{
RegExp RESULT =null;
int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
RegExp r = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
RESULT = r;
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("concs",5, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 36: // concs ::= concs nregexp
{
RegExp RESULT =null;
int r1left = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
int r1right = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
RegExp r1 = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
int r2left = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int r2right = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
RegExp r2 = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
RESULT = new RegExp2(sym.CONCAT, r1, r2);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("concs",5, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 35: // series ::= BAR
{
RegExp RESULT =null;
int bleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int bright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
Object b = (Object)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
syntaxError(ErrorMessages.REGEXP_EXPECTED, bleft, bright);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("series",4, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 34: // series ::= concs
{
RegExp RESULT =null;
int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
RegExp r = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
RESULT = r;
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("series",4, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 33: // series ::= series BAR concs
{
RegExp RESULT =null;
int r1left = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).left;
int r1right = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).right;
RegExp r1 = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).value;
int r2left = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int r2right = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
RegExp r2 = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
RESULT = new RegExp2(sym.BAR, r1, r2);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("series",4, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 32: // hatOPT ::=
{
Boolean RESULT =null;
RESULT = new Boolean(false);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("hatOPT",16, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 31: // hatOPT ::= HAT
{
Boolean RESULT =null;
// assumption: there is no upper case for \n
charClasses.makeClass('\n', false);
RESULT = new Boolean(true);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("hatOPT",16, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 30: // states ::= IDENT COMMA
{
Vector RESULT =null;
int cleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int cright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
Object c = (Object)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
syntaxError(ErrorMessages.REGEXP_EXPECTED, cleft, cright+1);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("states",11, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 29: // states ::= IDENT
{
Vector RESULT =null;
int idleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int idright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
String id = (String)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
Vector list = new Vector();
stateNumber = scanner.states.getNumber( id );
if ( stateNumber != null )
list.addElement( stateNumber );
else {
throw new ScannerException(scanner.file, ErrorMessages.LEXSTATE_UNDECL,
idleft, idright);
}
RESULT = list;
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("states",11, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 28: // states ::= IDENT COMMA states
{
Vector RESULT =null;
int idleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).left;
int idright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).right;
String id = (String)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).value;
int listleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int listright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
Vector list = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
stateNumber = scanner.states.getNumber( id );
if ( stateNumber != null )
list.addElement( stateNumber );
else {
throw new ScannerException(scanner.file, ErrorMessages.LEXSTATE_UNDECL,
idleft, idright);
}
RESULT = list;
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("states",11, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 27: // statesOPT ::=
{
Vector RESULT =null;
RESULT = new Vector();
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("statesOPT",12, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 26: // statesOPT ::= LESSTHAN states MORETHAN
{
Vector RESULT =null;
int listleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
int listright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
Vector list = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
RESULT = list;
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("statesOPT",12, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 25: // actions ::= NOACTION
{
Action RESULT =null;
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("actions",18, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 24: // actions ::= act
{
Action RESULT =null;
int aleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int aright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
Action a = (Action)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
RESULT = a;
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("actions",18, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 23: // act ::= REGEXPEND ACTION
{
Action RESULT =null;
int aleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int aright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
Action a = (Action)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
RESULT = a;
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("act",17, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 22: // lookahead ::= LOOKAHEAD series DOLLAR
{
RegExp RESULT =null;
int sleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
int sright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
RegExp s = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
RESULT = new RegExp2(sym.CONCAT, s, makeNL());
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("lookahead",9, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 21: // lookahead ::= LOOKAHEAD series
{
RegExp RESULT =null;
int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
RegExp r = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
RESULT = r;
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("lookahead",9, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 20: // lookahead ::= DOLLAR
{
RegExp RESULT =null;
RESULT = makeNL();
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("lookahead",9, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 19: // rule ::= error
{
Integer RESULT =null;
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("rule",2, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 18: // rule ::= statesOPT EOFRULE ACTION
{
Integer RESULT =null;
int sleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).left;
int sright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).right;
Vector s = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).value;
int aleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int aright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
Action a = (Action)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
RESULT = new Integer(regExps.insert(s, a));
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("rule",2, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 17: // rule ::= statesOPT hatOPT series lookahead NOACTION
{
Integer RESULT =null;
int sleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-4)).left;
int sright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-4)).right;
Vector s = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-4)).value;
int bolleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).left;
int bolright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).right;
Boolean bol = (Boolean)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).value;
int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).left;
int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).right;
RegExp r = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).value;
int lleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
int lright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
RegExp l = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
int aleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int aright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
Object a = (Object)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
syntaxError(ErrorMessages.LOOKAHEAD_NEEDS_ACTION, aleft, aright+1);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("rule",2, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-4)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 16: // rule ::= statesOPT hatOPT series lookahead act
{
Integer RESULT =null;
int sleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-4)).left;
int sright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-4)).right;
Vector s = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-4)).value;
int bolleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).left;
int bolright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).right;
Boolean bol = (Boolean)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).value;
int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).left;
int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).right;
RegExp r = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).value;
int lleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
int lright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
RegExp l = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
int aleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int aright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
Action a = (Action)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
RESULT = new Integer(regExps.insert(rleft, s, r, a, bol, l));
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("rule",2, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-4)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 15: // rule ::= statesOPT hatOPT series actions
{
Integer RESULT =null;
int sleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).left;
int sright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).right;
Vector s = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).value;
int bolleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).left;
int bolright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).right;
Boolean bol = (Boolean)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).value;
int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
RegExp r = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
int aleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int aright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
Action a = (Action)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
RESULT = new Integer(regExps.insert(rleft, s, r, a, bol, null));
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("rule",2, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 14: // rules ::= rule
{
Vector RESULT =null;
int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
Integer r = (Integer)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
RESULT = new Vector(); RESULT.addElement(r);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("rules",15, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 13: // rules ::= LESSTHAN states MORETHAN LBRACE rules RBRACE
{
Vector RESULT =null;
int statesleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-4)).left;
int statesright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-4)).right;
Vector states = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-4)).value;
int rlistleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
int rlistright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
Vector rlist = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
Enumeration rs = rlist.elements();
while ( rs.hasMoreElements() ) {
Integer elem = (Integer) rs.nextElement();
// might be null for error case of "rule"
if (elem != null) {
regExps.addStates( elem.intValue(), states );
}
}
RESULT = rlist;
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("rules",15, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-5)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 12: // rules ::= rules LESSTHAN states MORETHAN LBRACE rules RBRACE
{
Vector RESULT =null;
int rlist1left = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-6)).left;
int rlist1right = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-6)).right;
Vector rlist1 = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-6)).value;
int statesleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-4)).left;
int statesright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-4)).right;
Vector states = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-4)).value;
int rlist2left = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
int rlist2right = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
Vector rlist2 = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
Enumeration rs = rlist2.elements();
while ( rs.hasMoreElements() ) {
Integer elem = (Integer) rs.nextElement();
// might be null for error case of "rule"
if (elem != null) {
regExps.addStates( elem.intValue(), states );
}
rlist1.addElement( elem );
}
RESULT = rlist1;
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("rules",15, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-6)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 11: // rules ::= rules rule
{
Vector RESULT =null;
int rlistleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
int rlistright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
Vector rlist = (Vector)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
int rleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int rright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
Integer r = (Integer)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
rlist.addElement(r); RESULT = rlist;
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("rules",15, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 10: // macro ::= IDENT EQUALS
{
Object RESULT =null;
int eleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left;
int eright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right;
Object e = (Object)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value;
syntaxError(ErrorMessages.REGEXP_EXPECTED, eleft, eright);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("macro",1, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 9: // macro ::= IDENT EQUALS series REGEXPEND
{
Object RESULT =null;
int nameleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).left;
int nameright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).right;
String name = (String)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).value;
int definitionleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
int definitionright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
RegExp definition = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
macros.insert(name, definition);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("macro",1, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 8: // macro ::= UNICODE
{
Object RESULT =null;
charClasses.setMaxCharCode(0xFFFF);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("macro",1, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 7: // macro ::= FULL
{
Object RESULT =null;
charClasses.setMaxCharCode(255);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("macro",1, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 6: // macro ::= ASCII
{
Object RESULT =null;
charClasses.setMaxCharCode(127);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("macro",1, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 5: // macros ::= error
{
Object RESULT =null;
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("macros",0, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 4: // macros ::= macros macro
{
Object RESULT =null;
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("macros",0, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 3: // macros ::=
{
Object RESULT =null;
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("macros",0, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 2: // specification ::=
{
NFA RESULT =null;
fatalError(ErrorMessages.NO_LEX_SPEC);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("specification",3, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 1: // specification ::= USERCODE macros DELIMITER rules
{
NFA RESULT =null;
scanner.t.stop();
Out.checkErrors();
Out.time(ErrorMessages.PARSING_TOOK, t);
macros.expand();
Enumeration unused = macros.unused();
while ( unused.hasMoreElements() ) {
Out.warning("Macro \""+unused.nextElement()+"\" has been declared but never used.");
}
SemCheck.check(regExps, macros, scanner.file);
regExps.checkActions();
regExps.checkLookAheads();
Out.checkErrors();
if (Options.dump) charClasses.dump();
Out.print("Constructing NFA : ");
t.start();
int num = regExps.getNum();
RESULT = new NFA(charClasses.getNumClasses(),
scanner, regExps, macros, charClasses);
eofActions.setNumLexStates(scanner.states.number());
for (int i = 0; i < num; i++) {
if (regExps.isEOF(i))
eofActions.add( regExps.getStates(i), regExps.getAction(i) );
else
RESULT.addRegExp(i);
}
if (scanner.standalone) RESULT.addStandaloneRule();
t.stop();
Out.time("");
Out.time(ErrorMessages.NFA_TOOK, t);
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("specification",3, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
return CUP$LexParse$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 0: // $START ::= specification EOF
{
Object RESULT =null;
int start_valleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left;
int start_valright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right;
NFA start_val = (NFA)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value;
RESULT = start_val;
CUP$LexParse$result = parser.getSymbolFactory().newSymbol("$START",0, ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT);
}
/* ACCEPT */
CUP$LexParse$parser.done_parsing();
return CUP$LexParse$result;
/* . . . . . .*/
default:
throw new Exception(
"Invalid action number found in internal parse table");
}
}
}