//----------------------------------------------------
// The following code was generated by CUP v0.11b 20160615 (GIT 4ac7450)
//----------------------------------------------------

package jflex.core;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import jflex.chars.Interval;
import jflex.core.unicode.CharClasses;
import jflex.core.unicode.IntCharSet;
import jflex.core.unicode.UnicodeProperties;
import jflex.exceptions.GeneratorException;
import jflex.l10n.ErrorMessages;
import jflex.logging.Out;
import jflex.option.Options;
import jflex.performance.Timer;
import jflex.scanner.ScannerException;
import java_cup.runtime.Symbol;
import java_cup.runtime.XMLElement;

CUP v0.11b 20160615 (GIT 4ac7450) generated parser.
/** CUP v0.11b 20160615 (GIT 4ac7450) generated parser. */
@SuppressWarnings({"rawtypes"}) public class LexParse extends java_cup.runtime.lr_parser { public final Class getSymbolContainer() { return sym.class; }
Default constructor.
/** Default constructor. */
@Deprecated public LexParse() {super();}
Constructor which sets the default scanner.
/** Constructor which sets the default scanner. */
@Deprecated public LexParse(java_cup.runtime.Scanner s) {super(s);}
Constructor which sets the default scanner.
/** Constructor which sets the default scanner. */
public LexParse(java_cup.runtime.Scanner s, java_cup.runtime.SymbolFactory sf) {super(s,sf);}
Production table.
/** Production table. */
protected static final short _production_table[][] = unpackFromStrings(new String[] { "\000\127\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\006\000\002\003\004\000\002\023\004\000" + "\002\023\011\000\002\023\010\000\002\023\003\000\002" + "\004\006\000\002\004\007\000\002\004\007\000\002\004" + "\005\000\002\004\005\000\002\004\003\000\002\013\003" + "\000\002\013\004\000\002\013\005\000\002\026\004\000" + "\002\027\003\000\002\027\003\000\002\022\005\000\002" + "\022\002\000\002\021\005\000\002\021\003\000\002\021" + "\004\000\002\025\003\000\002\025\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" + "\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\007" + "\000\002\012\010\000\002\024\003\000\002\024\003\000" + "\002\024\003\000\002\014\003\000\002\014\004\000\002" + "\017\003\000\002\017\004\000\002\020\004\000\002\020" + "\003\000\002\015\005\000\002\015\003\000\002\015\003" + "\000\002\015\003\000\002\015\003\000\002\015\003\000" + "\002\015\003\000\002\015\003\000\002\016\003\000\002" + "\016\003\000\002\016\003\000\002\016\003\000\002\016" + "\003\000\002\016\003\000\002\016\003\000\002\016\003" + "\000\002\016\003\000\002\016\003\000\002\016\003" });
Access to production table.
/** Access to production table. */
public short[][] production_table() {return _production_table;}
Parse-action table.
/** Parse-action table. */
protected static final short[][] _action_table = unpackFromStrings(new String[] { "\000\175\000\006\002\uffff\047\004\001\002\000\010\003" + "\007\013\ufffe\046\ufffe\001\002\000\004\002\006\001\002" + "\000\004\002\001\001\002\000\006\013\ufffc\046\ufffc\001" + "\002\000\006\013\011\046\013\001\002\000\070\003\132" + "\004\uffe8\006\uffe8\010\uffe8\016\134\023\uffe8\024\uffe8\025" + "\uffe8\026\uffe8\027\uffe8\030\uffe8\031\uffe8\032\uffe8\035\uffe8" + "\036\uffe8\037\uffe8\040\uffe8\053\uffe8\055\uffe8\056\uffe8\057" + "\uffe8\060\uffe8\061\uffe8\062\uffe8\063\uffe8\064\uffe8\065\uffe8" + "\001\002\000\006\013\ufffd\046\ufffd\001\002\000\004\014" + "\014\001\002\000\064\004\040\010\051\013\ufffa\023\026" + "\024\034\025\016\026\046\027\021\030\041\031\035\035" + "\024\036\047\037\022\040\025\046\ufffa\053\045\055\023" + "\056\036\057\043\060\027\061\020\062\033\063\030\064" + "\017\065\015\001\002\000\102\004\uffd0\005\uffd0\007\uffd0" + "\010\uffd0\022\uffd0\023\uffd0\024\uffd0\025\uffd0\026\uffd0\027" + "\uffd0\030\uffd0\031\uffd0\033\uffd0\034\uffd0\035\uffd0\036\uffd0" + "\037\uffd0\040\uffd0\050\uffd0\051\uffd0\052\uffd0\053\uffd0\054" + "\uffd0\055\uffd0\056\uffd0\057\uffd0\060\uffd0\061\uffd0\062\uffd0" + "\063\uffd0\064\uffd0\065\uffd0\001\002\000\112\004\uffb3\005" + "\uffb3\007\uffb3\010\uffb3\011\uffb3\022\uffb3\023\uffb3\024\uffb3" + "\025\uffb3\026\uffb3\027\uffb3\030\uffb3\031\uffb3\033\uffb3\034" + "\uffb3\035\uffb3\036\uffb3\037\uffb3\040\uffb3\042\uffb3\043\uffb3" + "\044\uffb3\050\uffb3\051\uffb3\052\uffb3\053\uffb3\054\uffb3\055" + "\uffb3\056\uffb3\057\uffb3\060\uffb3\061\uffb3\062\uffb3\063\uffb3" + "\064\uffb3\065\uffb3\001\002\000\102\004\uffd1\005\uffd1\007" + "\uffd1\010\uffd1\022\uffd1\023\uffd1\024\uffd1\025\uffd1\026\uffd1" + "\027\uffd1\030\uffd1\031\uffd1\033\uffd1\034\uffd1\035\uffd1\036" + "\uffd1\037\uffd1\040\uffd1\050\uffd1\051\uffd1\052\uffd1\053\uffd1" + "\054\uffd1\055\uffd1\056\uffd1\057\uffd1\060\uffd1\061\uffd1\062" + "\uffd1\063\uffd1\064\uffd1\065\uffd1\001\002\000\102\004\uffcc" + "\005\uffcc\007\uffcc\010\uffcc\022\uffcc\023\uffcc\024\uffcc\025" + "\uffcc\026\uffcc\027\uffcc\030\uffcc\031\uffcc\033\uffcc\034\uffcc" + "\035\uffcc\036\uffcc\037\uffcc\040\uffcc\050\uffcc\051\uffcc\052" + "\uffcc\053\uffcc\054\uffcc\055\uffcc\056\uffcc\057\uffcc\060\uffcc" + "\061\uffcc\062\uffcc\063\uffcc\064\uffcc\065\uffcc\001\002\000" + "\112\004\uffb1\005\uffb1\007\uffb1\010\uffb1\011\uffb1\022\uffb1" + "\023\uffb1\024\uffb1\025\uffb1\026\uffb1\027\uffb1\030\uffb1\031" + "\uffb1\033\uffb1\034\uffb1\035\uffb1\036\uffb1\037\uffb1\040\uffb1" + "\042\uffb1\043\uffb1\044\uffb1\050\uffb1\051\uffb1\052\uffb1\053" + "\uffb1\054\uffb1\055\uffb1\056\uffb1\057\uffb1\060\uffb1\061\uffb1" + "\062\uffb1\063\uffb1\064\uffb1\065\uffb1\001\002\000\112\004" + "\uffac\005\uffac\007\uffac\010\uffac\011\uffac\022\uffac\023\uffac" + "\024\uffac\025\uffac\026\uffac\027\uffac\030\uffac\031\uffac\033" + "\uffac\034\uffac\035\uffac\036\uffac\037\uffac\040\uffac\042\uffac" + "\043\uffac\044\uffac\050\uffac\051\uffac\052\uffac\053\uffac\054" + "\uffac\055\uffac\056\uffac\057\uffac\060\uffac\061\uffac\062\uffac" + "\063\uffac\064\uffac\065\uffac\001\002\000\102\004\uffce\005" + "\uffce\007\uffce\010\uffce\022\uffce\023\uffce\024\uffce\025\uffce" + "\026\uffce\027\uffce\030\uffce\031\uffce\033\uffce\034\uffce\035" + "\uffce\036\uffce\037\uffce\040\uffce\050\uffce\051\uffce\052\uffce" + "\053\uffce\054\uffce\055\uffce\056\uffce\057\uffce\060\uffce\061" + "\uffce\062\uffce\063\uffce\064\uffce\065\uffce\001\002\000\112" + "\004\uffae\005\uffae\007\uffae\010\uffae\011\uffae\022\uffae\023" + "\uffae\024\uffae\025\uffae\026\uffae\027\uffae\030\uffae\031\uffae" + "\033\uffae\034\uffae\035\uffae\036\uffae\037\uffae\040\uffae\042" + "\uffae\043\uffae\044\uffae\050\uffae\051\uffae\052\uffae\053\uffae" + "\054\uffae\055\uffae\056\uffae\057\uffae\060\uffae\061\uffae\062" + "\uffae\063\uffae\064\uffae\065\uffae\001\002\000\112\004\uffab" + "\005\uffab\007\uffab\010\uffab\011\uffab\022\uffab\023\uffab\024" + "\uffab\025\uffab\026\uffab\027\uffab\030\uffab\031\uffab\033\uffab" + "\034\uffab\035\uffab\036\uffab\037\uffab\040\uffab\042\uffab\043" + "\uffab\044\uffab\050\uffab\051\uffab\052\uffab\053\uffab\054\uffab" + "\055\uffab\056\uffab\057\uffab\060\uffab\061\uffab\062\uffab\063" + "\uffab\064\uffab\065\uffab\001\002\000\112\004\uffb5\005\uffb5" + "\007\uffb5\010\uffb5\011\uffb5\022\uffb5\023\uffb5\024\uffb5\025" + "\uffb5\026\uffb5\027\uffb5\030\uffb5\031\uffb5\033\uffb5\034\uffb5" + "\035\uffb5\036\uffb5\037\uffb5\040\uffb5\042\uffb5\043\uffb5\044" + "\uffb5\050\uffb5\051\uffb5\052\uffb5\053\uffb5\054\uffb5\055\uffb5" + "\056\uffb5\057\uffb5\060\uffb5\061\uffb5\062\uffb5\063\uffb5\064" + "\uffb5\065\uffb5\001\002\000\056\004\040\010\051\023\026" + "\024\034\025\016\026\046\027\021\030\041\031\035\035" + "\024\036\047\037\022\040\025\055\023\056\036\057\043" + "\060\027\061\020\062\033\063\030\064\017\065\015\001" + "\002\000\102\004\uffd4\005\uffd4\007\uffd4\010\uffd4\022\uffd4" + "\023\uffd4\024\uffd4\025\uffd4\026\uffd4\027\uffd4\030\uffd4\031" + "\uffd4\033\uffd4\034\uffd4\035\uffd4\036\uffd4\037\uffd4\040\uffd4" + "\050\uffd4\051\uffd4\052\uffd4\053\uffd4\054\uffd4\055\uffd4\056" + "\uffd4\057\uffd4\060\uffd4\061\uffd4\062\uffd4\063\uffd4\064\uffd4" + "\065\uffd4\001\002\000\006\022\130\053\124\001\002\000" + "\102\004\uffd2\005\uffd2\007\uffd2\010\uffd2\022\uffd2\023\uffd2" + "\024\uffd2\025\uffd2\026\uffd2\027\uffd2\030\uffd2\031\uffd2\033" + "\uffd2\034\uffd2\035\uffd2\036\uffd2\037\uffd2\040\uffd2\050\uffd2" + "\051\uffd2\052\uffd2\053\uffd2\054\uffd2\055\uffd2\056\uffd2\057" + "\uffd2\060\uffd2\061\uffd2\062\uffd2\063\uffd2\064\uffd2\065\uffd2" + "\001\002\000\102\004\uffcf\005\uffcf\007\uffcf\010\uffcf\022" + "\uffcf\023\uffcf\024\uffcf\025\uffcf\026\uffcf\027\uffcf\030\uffcf" + "\031\uffcf\033\uffcf\034\uffcf\035\uffcf\036\uffcf\037\uffcf\040" + "\uffcf\050\uffcf\051\uffcf\052\uffcf\053\uffcf\054\uffcf\055\uffcf" + "\056\uffcf\057\uffcf\060\uffcf\061\uffcf\062\uffcf\063\uffcf\064" + "\uffcf\065\uffcf\001\002\000\112\004\uffb4\005\uffb4\007\uffb4" + "\010\uffb4\011\uffb4\022\uffb4\023\uffb4\024\uffb4\025\uffb4\026" + "\uffb4\027\uffb4\030\uffb4\031\uffb4\033\uffb4\034\uffb4\035\uffb4" + "\036\uffb4\037\uffb4\040\uffb4\042\uffb4\043\uffb4\044\uffb4\050" + "\uffb4\051\uffb4\052\uffb4\053\uffb4\054\uffb4\055\uffb4\056\uffb4" + "\057\uffb4\060\uffb4\061\uffb4\062\uffb4\063\uffb4\064\uffb4\065" + "\uffb4\001\002\000\112\004\uffaf\005\uffaf\007\uffaf\010\uffaf" + "\011\uffaf\022\uffaf\023\uffaf\024\uffaf\025\uffaf\026\uffaf\027" + "\uffaf\030\uffaf\031\uffaf\033\uffaf\034\uffaf\035\uffaf\036\uffaf" + "\037\uffaf\040\uffaf\042\uffaf\043\uffaf\044\uffaf\050\uffaf\051" + "\uffaf\052\uffaf\053\uffaf\054\uffaf\055\uffaf\056\uffaf\057\uffaf" + "\060\uffaf\061\uffaf\062\uffaf\063\uffaf\064\uffaf\065\uffaf\001" + "\002\000\102\004\uffcd\005\uffcd\007\uffcd\010\uffcd\022\uffcd" + "\023\uffcd\024\uffcd\025\uffcd\026\uffcd\027\uffcd\030\uffcd\031" + "\uffcd\033\uffcd\034\uffcd\035\uffcd\036\uffcd\037\uffcd\040\uffcd" + "\050\uffcd\051\uffcd\052\uffcd\053\uffcd\054\uffcd\055\uffcd\056" + "\uffcd\057\uffcd\060\uffcd\061\uffcd\062\uffcd\063\uffcd\064\uffcd" + "\065\uffcd\001\002\000\072\004\040\005\uffe1\007\uffe1\010" + "\051\022\uffe1\023\026\024\034\025\016\026\046\027\021" + "\030\041\031\035\033\uffe1\034\uffe1\035\024\036\047\037" + "\022\040\025\053\uffe1\055\023\056\036\057\043\060\027" + "\061\020\062\033\063\030\064\017\065\015\001\002\000" + "\060\004\040\010\051\023\026\024\034\025\016\026\046" + "\027\021\030\041\031\035\035\024\036\047\037\022\040" + "\025\053\045\055\023\056\036\057\043\060\027\061\020" + "\062\033\063\030\064\017\065\015\001\002\000\112\004" + "\uffb0\005\uffb0\007\uffb0\010\uffb0\011\uffb0\022\uffb0\023\uffb0" + "\024\uffb0\025\uffb0\026\uffb0\027\uffb0\030\uffb0\031\uffb0\033" + "\uffb0\034\uffb0\035\uffb0\036\uffb0\037\uffb0\040\uffb0\042\uffb0" + "\043\uffb0\044\uffb0\050\uffb0\051\uffb0\052\uffb0\053\uffb0\054" + "\uffb0\055\uffb0\056\uffb0\057\uffb0\060\uffb0\061\uffb0\062\uffb0" + "\063\uffb0\064\uffb0\065\uffb0\001\002\000\102\004\uffd3\005" + "\uffd3\007\uffd3\010\uffd3\022\uffd3\023\uffd3\024\uffd3\025\uffd3" + "\026\uffd3\027\uffd3\030\uffd3\031\uffd3\033\uffd3\034\uffd3\035" + "\uffd3\036\uffd3\037\uffd3\040\uffd3\050\uffd3\051\uffd3\052\uffd3" + "\053\uffd3\054\uffd3\055\uffd3\056\uffd3\057\uffd3\060\uffd3\061" + "\uffd3\062\uffd3\063\uffd3\064\uffd3\065\uffd3\001\002\000\056" + "\004\040\010\051\023\026\024\034\025\016\026\046\027" + "\021\030\041\031\035\035\024\036\047\037\022\040\025" + "\055\023\056\036\057\043\060\027\061\020\062\033\063" + "\030\064\017\065\015\001\002\000\072\004\uffde\005\uffde" + "\007\uffde\010\uffde\022\uffde\023\uffde\024\uffde\025\uffde\026" + "\uffde\027\uffde\030\uffde\031\uffde\033\uffde\034\uffde\035\uffde" + "\036\uffde\037\uffde\040\uffde\053\uffde\055\uffde\056\uffde\057" + "\uffde\060\uffde\061\uffde\062\uffde\063\uffde\064\uffde\065\uffde" + "\001\002\000\016\005\uffe0\007\uffe0\022\uffe0\033\uffe0\034" + "\uffe0\053\uffe0\001\002\000\112\004\uffb2\005\uffb2\007\uffb2" + "\010\uffb2\011\uffb2\022\uffb2\023\uffb2\024\uffb2\025\uffb2\026" + "\uffb2\027\uffb2\030\uffb2\031\uffb2\033\uffb2\034\uffb2\035\uffb2" + "\036\uffb2\037\uffb2\040\uffb2\042\uffb2\043\uffb2\044\uffb2\050" + "\uffb2\051\uffb2\052\uffb2\053\uffb2\054\uffb2\055\uffb2\056\uffb2" + "\057\uffb2\060\uffb2\061\uffb2\062\uffb2\063\uffb2\064\uffb2\065" + "\uffb2\001\002\000\112\004\uffad\005\uffad\007\uffad\010\uffad" + "\011\uffad\022\uffad\023\uffad\024\uffad\025\uffad\026\uffad\027" + "\uffad\030\uffad\031\uffad\033\uffad\034\uffad\035\uffad\036\uffad" + "\037\uffad\040\uffad\042\uffad\043\uffad\044\uffad\050\uffad\051" + "\uffad\052\uffad\053\uffad\054\uffad\055\uffad\056\uffad\057\uffad" + "\060\uffad\061\uffad\062\uffad\063\uffad\064\uffad\065\uffad\001" + "\002\000\102\004\uffdd\005\uffdd\007\uffdd\010\uffdd\022\uffdd" + "\023\uffdd\024\uffdd\025\uffdd\026\uffdd\027\uffdd\030\uffdd\031" + "\uffdd\033\uffdd\034\uffdd\035\uffdd\036\uffdd\037\uffdd\040\uffdd" + "\050\115\051\113\052\114\053\uffdd\054\116\055\uffdd\056" + "\uffdd\057\uffdd\060\uffdd\061\uffdd\062\uffdd\063\uffdd\064\uffdd" + "\065\uffdd\001\002\000\052\006\055\010\051\011\066\012" + "\064\023\026\024\034\025\016\026\046\027\021\030\041" + "\031\035\035\024\036\047\037\022\040\025\061\056\062" + "\062\063\060\064\053\065\052\001\002\000\054\010\uffb8" + "\011\uffb8\023\uffb8\024\uffb8\025\uffb8\026\uffb8\027\uffb8\030" + "\uffb8\031\uffb8\035\uffb8\036\uffb8\037\uffb8\040\uffb8\042\uffb8" + "\043\uffb8\044\uffb8\061\uffb8\062\uffb8\063\uffb8\064\uffb8\065" + "\uffb8\001\002\000\054\010\uffb9\011\uffb9\023\uffb9\024\uffb9" + "\025\uffb9\026\uffb9\027\uffb9\030\uffb9\031\uffb9\035\uffb9\036" + "\uffb9\037\uffb9\040\uffb9\042\uffb9\043\uffb9\044\uffb9\061\uffb9" + "\062\uffb9\063\uffb9\064\uffb9\065\uffb9\001\002\000\054\010" + "\uffbe\011\uffbe\023\uffbe\024\uffbe\025\uffbe\026\uffbe\027\uffbe" + "\030\uffbe\031\uffbe\035\uffbe\036\uffbe\037\uffbe\040\uffbe\042" + "\uffbe\043\uffbe\044\uffbe\061\uffbe\062\uffbe\063\uffbe\064\uffbe" + "\065\uffbe\001\002\000\050\010\051\011\107\012\064\023" + "\026\024\034\025\016\026\046\027\021\030\041\031\035" + "\035\024\036\047\037\022\040\025\061\056\062\062\063" + "\060\064\053\065\052\001\002\000\056\010\uffbc\011\uffbc" + "\012\104\023\uffbc\024\uffbc\025\uffbc\026\uffbc\027\uffbc\030" + "\uffbc\031\uffbc\035\uffbc\036\uffbc\037\uffbc\040\uffbc\042\uffbc" + "\043\uffbc\044\uffbc\061\uffbc\062\uffbc\063\uffbc\064\uffbc\065" + "\uffbc\001\002\000\004\011\103\001\002\000\054\010\uffb7" + "\011\uffb7\023\uffb7\024\uffb7\025\uffb7\026\uffb7\027\uffb7\030" + "\uffb7\031\uffb7\035\uffb7\036\uffb7\037\uffb7\040\uffb7\042\uffb7" + "\043\uffb7\044\uffb7\061\uffb7\062\uffb7\063\uffb7\064\uffb7\065" + "\uffb7\001\002\000\054\010\uffba\011\uffba\023\uffba\024\uffba" + "\025\uffba\026\uffba\027\uffba\030\uffba\031\uffba\035\uffba\036" + "\uffba\037\uffba\040\uffba\042\uffba\043\uffba\044\uffba\061\uffba" + "\062\uffba\063\uffba\064\uffba\065\uffba\001\002\000\054\010" + "\uffbb\011\uffbb\023\uffbb\024\uffbb\025\uffbb\026\uffbb\027\uffbb" + "\030\uffbb\031\uffbb\035\uffbb\036\uffbb\037\uffbb\040\uffbb\042" + "\uffbb\043\uffbb\044\uffbb\061\uffbb\062\uffbb\063\uffbb\064\uffbb" + "\065\uffbb\001\002\000\012\011\uffc3\042\074\043\073\044" + "\075\001\002\000\044\010\051\023\026\024\034\025\016" + "\026\046\027\021\030\041\031\035\035\024\036\047\037" + "\022\040\025\061\056\062\062\063\060\064\053\065\052" + "\001\002\000\054\010\uffb6\011\uffb6\023\uffb6\024\uffb6\025" + "\uffb6\026\uffb6\027\uffb6\030\uffb6\031\uffb6\035\uffb6\036\uffb6" + "\037\uffb6\040\uffb6\042\uffb6\043\uffb6\044\uffb6\061\uffb6\062" + "\uffb6\063\uffb6\064\uffb6\065\uffb6\001\002\000\112\004\uffcb" + "\005\uffcb\007\uffcb\010\uffcb\011\uffcb\022\uffcb\023\uffcb\024" + "\uffcb\025\uffcb\026\uffcb\027\uffcb\030\uffcb\031\uffcb\033\uffcb" + "\034\uffcb\035\uffcb\036\uffcb\037\uffcb\040\uffcb\042\uffcb\043" + "\uffcb\044\uffcb\050\uffcb\051\uffcb\052\uffcb\053\uffcb\054\uffcb" + "\055\uffcb\056\uffcb\057\uffcb\060\uffcb\061\uffcb\062\uffcb\063" + "\uffcb\064\uffcb\065\uffcb\001\002\000\054\010\051\011\uffc1" + "\023\026\024\034\025\016\026\046\027\021\030\041\031" + "\035\035\024\036\047\037\022\040\025\042\uffc1\043\uffc1" + "\044\uffc1\061\056\062\062\063\060\064\053\065\052\001" + "\002\000\054\010\uffbf\011\uffbf\023\uffbf\024\uffbf\025\uffbf" + "\026\uffbf\027\uffbf\030\uffbf\031\uffbf\035\uffbf\036\uffbf\037" + "\uffbf\040\uffbf\042\uffbf\043\uffbf\044\uffbf\061\uffbf\062\uffbf" + "\063\uffbf\064\uffbf\065\uffbf\001\002\000\054\010\051\011" + "\uffc0\023\026\024\034\025\016\026\046\027\021\030\041" + "\031\035\035\024\036\047\037\022\040\025\042\uffc0\043" + "\uffc0\044\uffc0\061\056\062\062\063\060\064\053\065\052" + "\001\002\000\050\006\076\010\051\012\064\023\026\024" + "\034\025\016\026\046\027\021\030\041\031\035\035\024" + "\036\047\037\022\040\025\061\056\062\062\063\060\064" + "\053\065\052\001\002\000\050\006\uffc5\010\uffc5\012\uffc5" + "\023\uffc5\024\uffc5\025\uffc5\026\uffc5\027\uffc5\030\uffc5\031" + "\uffc5\035\uffc5\036\uffc5\037\uffc5\040\uffc5\061\uffc5\062\uffc5" + "\063\uffc5\064\uffc5\065\uffc5\001\002\000\050\006\uffc6\010" + "\uffc6\012\uffc6\023\uffc6\024\uffc6\025\uffc6\026\uffc6\027\uffc6" + "\030\uffc6\031\uffc6\035\uffc6\036\uffc6\037\uffc6\040\uffc6\061" + "\uffc6\062\uffc6\063\uffc6\064\uffc6\065\uffc6\001\002\000\050" + "\006\uffc4\010\uffc4\012\uffc4\023\uffc4\024\uffc4\025\uffc4\026" + "\uffc4\027\uffc4\030\uffc4\031\uffc4\035\uffc4\036\uffc4\037\uffc4" + "\040\uffc4\061\uffc4\062\uffc4\063\uffc4\064\uffc4\065\uffc4\001" + "\002\000\046\010\051\012\064\023\026\024\034\025\016" + "\026\046\027\021\030\041\031\035\035\024\036\047\037" + "\022\040\025\061\056\062\062\063\060\064\053\065\052" + "\001\002\000\004\011\101\001\002\000\004\011\uffc3\001" + "\002\000\112\004\uffc8\005\uffc8\007\uffc8\010\uffc8\011\uffc8" + "\022\uffc8\023\uffc8\024\uffc8\025\uffc8\026\uffc8\027\uffc8\030" + "\uffc8\031\uffc8\033\uffc8\034\uffc8\035\uffc8\036\uffc8\037\uffc8" + "\040\uffc8\042\uffc8\043\uffc8\044\uffc8\050\uffc8\051\uffc8\052" + "\uffc8\053\uffc8\054\uffc8\055\uffc8\056\uffc8\057\uffc8\060\uffc8" + "\061\uffc8\062\uffc8\063\uffc8\064\uffc8\065\uffc8\001\002\000" + "\004\011\uffc2\001\002\000\112\004\uffc9\005\uffc9\007\uffc9" + "\010\uffc9\011\uffc9\022\uffc9\023\uffc9\024\uffc9\025\uffc9\026" + "\uffc9\027\uffc9\030\uffc9\031\uffc9\033\uffc9\034\uffc9\035\uffc9" + "\036\uffc9\037\uffc9\040\uffc9\042\uffc9\043\uffc9\044\uffc9\050" + "\uffc9\051\uffc9\052\uffc9\053\uffc9\054\uffc9\055\uffc9\056\uffc9" + "\057\uffc9\060\uffc9\061\uffc9\062\uffc9\063\uffc9\064\uffc9\065" + "\uffc9\001\002\000\004\061\105\001\002\000\054\010\uffbd" + "\011\uffbd\023\uffbd\024\uffbd\025\uffbd\026\uffbd\027\uffbd\030" + "\uffbd\031\uffbd\035\uffbd\036\uffbd\037\uffbd\040\uffbd\042\uffbd" + "\043\uffbd\044\uffbd\061\uffbd\062\uffbd\063\uffbd\064\uffbd\065" + "\uffbd\001\002\000\012\011\uffc2\042\074\043\073\044\075" + "\001\002\000\112\004\uffca\005\uffca\007\uffca\010\uffca\011" + "\uffca\022\uffca\023\uffca\024\uffca\025\uffca\026\uffca\027\uffca" + "\030\uffca\031\uffca\033\uffca\034\uffca\035\uffca\036\uffca\037" + "\uffca\040\uffca\042\uffca\043\uffca\044\uffca\050\uffca\051\uffca" + "\052\uffca\053\uffca\054\uffca\055\uffca\056\uffca\057\uffca\060" + "\uffca\061\uffca\062\uffca\063\uffca\064\uffca\065\uffca\001\002" + "\000\050\006\076\010\051\012\064\023\026\024\034\025" + "\016\026\046\027\021\030\041\031\035\035\024\036\047" + "\037\022\040\025\061\056\062\062\063\060\064\053\065" + "\052\001\002\000\004\011\112\001\002\000\112\004\uffc7" + "\005\uffc7\007\uffc7\010\uffc7\011\uffc7\022\uffc7\023\uffc7\024" + "\uffc7\025\uffc7\026\uffc7\027\uffc7\030\uffc7\031\uffc7\033\uffc7" + "\034\uffc7\035\uffc7\036\uffc7\037\uffc7\040\uffc7\042\uffc7\043" + "\uffc7\044\uffc7\050\uffc7\051\uffc7\052\uffc7\053\uffc7\054\uffc7" + "\055\uffc7\056\uffc7\057\uffc7\060\uffc7\061\uffc7\062\uffc7\063" + "\uffc7\064\uffc7\065\uffc7\001\002\000\102\004\uffda\005\uffda" + "\007\uffda\010\uffda\022\uffda\023\uffda\024\uffda\025\uffda\026" + "\uffda\027\uffda\030\uffda\031\uffda\033\uffda\034\uffda\035\uffda" + "\036\uffda\037\uffda\040\uffda\050\uffda\051\uffda\052\uffda\053" + "\uffda\054\uffda\055\uffda\056\uffda\057\uffda\060\uffda\061\uffda" + "\062\uffda\063\uffda\064\uffda\065\uffda\001\002\000\102\004" + "\uffd9\005\uffd9\007\uffd9\010\uffd9\022\uffd9\023\uffd9\024\uffd9" + "\025\uffd9\026\uffd9\027\uffd9\030\uffd9\031\uffd9\033\uffd9\034" + "\uffd9\035\uffd9\036\uffd9\037\uffd9\040\uffd9\050\uffd9\051\uffd9" + "\052\uffd9\053\uffd9\054\uffd9\055\uffd9\056\uffd9\057\uffd9\060" + "\uffd9\061\uffd9\062\uffd9\063\uffd9\064\uffd9\065\uffd9\001\002" + "\000\006\021\117\050\120\001\002\000\102\004\uffd8\005" + "\uffd8\007\uffd8\010\uffd8\022\uffd8\023\uffd8\024\uffd8\025\uffd8" + "\026\uffd8\027\uffd8\030\uffd8\031\uffd8\033\uffd8\034\uffd8\035" + "\uffd8\036\uffd8\037\uffd8\040\uffd8\050\uffd8\051\uffd8\052\uffd8" + "\053\uffd8\054\uffd8\055\uffd8\056\uffd8\057\uffd8\060\uffd8\061" + "\uffd8\062\uffd8\063\uffd8\064\uffd8\065\uffd8\001\002\000\102" + "\004\uffd7\005\uffd7\007\uffd7\010\uffd7\022\uffd7\023\uffd7\024" + "\uffd7\025\uffd7\026\uffd7\027\uffd7\030\uffd7\031\uffd7\033\uffd7" + "\034\uffd7\035\uffd7\036\uffd7\037\uffd7\040\uffd7\050\uffd7\051" + "\uffd7\052\uffd7\053\uffd7\054\uffd7\055\uffd7\056\uffd7\057\uffd7" + "\060\uffd7\061\uffd7\062\uffd7\063\uffd7\064\uffd7\065\uffd7\001" + "\002\000\004\021\121\001\002\000\102\004\uffd6\005\uffd6" + "\007\uffd6\010\uffd6\022\uffd6\023\uffd6\024\uffd6\025\uffd6\026" + "\uffd6\027\uffd6\030\uffd6\031\uffd6\033\uffd6\034\uffd6\035\uffd6" + "\036\uffd6\037\uffd6\040\uffd6\050\uffd6\051\uffd6\052\uffd6\053" + "\uffd6\054\uffd6\055\uffd6\056\uffd6\057\uffd6\060\uffd6\061\uffd6" + "\062\uffd6\063\uffd6\064\uffd6\065\uffd6\001\002\000\072\004" + "\uffdc\005\uffdc\007\uffdc\010\uffdc\022\uffdc\023\uffdc\024\uffdc" + "\025\uffdc\026\uffdc\027\uffdc\030\uffdc\031\uffdc\033\uffdc\034" + "\uffdc\035\uffdc\036\uffdc\037\uffdc\040\uffdc\053\uffdc\055\uffdc" + "\056\uffdc\057\uffdc\060\uffdc\061\uffdc\062\uffdc\063\uffdc\064" + "\uffdc\065\uffdc\001\002\000\006\005\125\053\124\001\002" + "\000\056\004\040\010\051\023\026\024\034\025\016\026" + "\046\027\021\030\041\031\035\035\024\036\047\037\022" + "\040\025\055\023\056\036\057\043\060\027\061\020\062" + "\033\063\030\064\017\065\015\001\002\000\102\004\uffd5" + "\005\uffd5\007\uffd5\010\uffd5\022\uffd5\023\uffd5\024\uffd5\025" + "\uffd5\026\uffd5\027\uffd5\030\uffd5\031\uffd5\033\uffd5\034\uffd5" + "\035\uffd5\036\uffd5\037\uffd5\040\uffd5\050\uffd5\051\uffd5\052" + "\uffd5\053\uffd5\054\uffd5\055\uffd5\056\uffd5\057\uffd5\060\uffd5" + "\061\uffd5\062\uffd5\063\uffd5\064\uffd5\065\uffd5\001\002\000" + "\072\004\040\005\uffe2\007\uffe2\010\051\022\uffe2\023\026" + "\024\034\025\016\026\046\027\021\030\041\031\035\033" + "\uffe2\034\uffe2\035\024\036\047\037\022\040\025\053\uffe2" + "\055\023\056\036\057\043\060\027\061\020\062\033\063" + "\030\064\017\065\015\001\002\000\072\004\uffdf\005\uffdf" + "\007\uffdf\010\uffdf\022\uffdf\023\uffdf\024\uffdf\025\uffdf\026" + "\uffdf\027\uffdf\030\uffdf\031\uffdf\033\uffdf\034\uffdf\035\uffdf" + "\036\uffdf\037\uffdf\040\uffdf\053\uffdf\055\uffdf\056\uffdf\057" + "\uffdf\060\uffdf\061\uffdf\062\uffdf\063\uffdf\064\uffdf\065\uffdf" + "\001\002\000\006\013\ufffb\046\ufffb\001\002\000\072\004" + "\uffdb\005\uffdb\007\uffdb\010\uffdb\022\uffdb\023\uffdb\024\uffdb" + "\025\uffdb\026\uffdb\027\uffdb\030\uffdb\031\uffdb\033\uffdb\034" + "\uffdb\035\uffdb\036\uffdb\037\uffdb\040\uffdb\053\uffdb\055\uffdb" + "\056\uffdb\057\uffdb\060\uffdb\061\uffdb\062\uffdb\063\uffdb\064" + "\uffdb\065\uffdb\001\002\000\074\002\ufff0\003\ufff0\004\ufff0" + "\006\ufff0\010\ufff0\016\ufff0\021\ufff0\023\ufff0\024\ufff0\025" + "\ufff0\026\ufff0\027\ufff0\030\ufff0\031\ufff0\032\ufff0\035\ufff0" + "\036\ufff0\037\ufff0\040\ufff0\053\ufff0\055\ufff0\056\ufff0\057" + "\ufff0\060\ufff0\061\ufff0\062\ufff0\063\ufff0\064\ufff0\065\ufff0" + "\001\002\000\064\004\uffe3\006\160\010\uffe3\023\uffe3\024" + "\uffe3\025\uffe3\026\uffe3\027\uffe3\030\uffe3\031\uffe3\032\156" + "\035\uffe3\036\uffe3\037\uffe3\040\uffe3\053\uffe3\055\uffe3\056" + "\uffe3\057\uffe3\060\uffe3\061\uffe3\062\uffe3\063\uffe3\064\uffe3" + "\065\uffe3\001\002\000\004\046\142\001\002\000\074\002" + "\ufff6\003\ufff6\004\ufff6\006\ufff6\010\ufff6\016\ufff6\021\ufff6" + "\023\ufff6\024\ufff6\025\ufff6\026\ufff6\027\ufff6\030\ufff6\031" + "\ufff6\032\ufff6\035\ufff6\036\ufff6\037\ufff6\040\ufff6\053\ufff6" + "\055\ufff6\056\ufff6\057\ufff6\060\ufff6\061\ufff6\062\ufff6\063" + "\ufff6\064\ufff6\065\ufff6\001\002\000\072\002\000\003\132" + "\004\uffe8\006\uffe8\010\uffe8\016\137\023\uffe8\024\uffe8\025" + "\uffe8\026\uffe8\027\uffe8\030\uffe8\031\uffe8\032\uffe8\035\uffe8" + "\036\uffe8\037\uffe8\040\uffe8\053\uffe8\055\uffe8\056\uffe8\057" + "\uffe8\060\uffe8\061\uffe8\062\uffe8\063\uffe8\064\uffe8\065\uffe8" + "\001\002\000\004\046\142\001\002\000\074\002\ufff9\003" + "\ufff9\004\ufff9\006\ufff9\010\ufff9\016\ufff9\021\ufff9\023\ufff9" + "\024\ufff9\025\ufff9\026\ufff9\027\ufff9\030\ufff9\031\ufff9\032" + "\ufff9\035\ufff9\036\ufff9\037\ufff9\040\ufff9\053\ufff9\055\ufff9" + "\056\ufff9\057\ufff9\060\ufff9\061\ufff9\062\ufff9\063\ufff9\064" + "\ufff9\065\ufff9\001\002\000\004\017\145\001\002\000\006" + "\015\143\017\uffe6\001\002\000\006\017\uffe5\046\142\001" + "\002\000\004\017\uffe7\001\002\000\066\004\uffe9\006\uffe9" + "\010\uffe9\020\146\023\uffe9\024\uffe9\025\uffe9\026\uffe9\027" + "\uffe9\030\uffe9\031\uffe9\032\uffe9\035\uffe9\036\uffe9\037\uffe9" + "\040\uffe9\053\uffe9\055\uffe9\056\uffe9\057\uffe9\060\uffe9\061" + "\uffe9\062\uffe9\063\uffe9\064\uffe9\065\uffe9\001\002\000\070" + "\003\132\004\uffe8\006\uffe8\010\uffe8\016\134\023\uffe8\024" + "\uffe8\025\uffe8\026\uffe8\027\uffe8\030\uffe8\031\uffe8\032\uffe8" + "\035\uffe8\036\uffe8\037\uffe8\040\uffe8\053\uffe8\055\uffe8\056" + "\uffe8\057\uffe8\060\uffe8\061\uffe8\062\uffe8\063\uffe8\064\uffe8" + "\065\uffe8\001\002\000\072\003\132\004\uffe8\006\uffe8\010" + "\uffe8\016\137\021\150\023\uffe8\024\uffe8\025\uffe8\026\uffe8" + "\027\uffe8\030\uffe8\031\uffe8\032\uffe8\035\uffe8\036\uffe8\037" + "\uffe8\040\uffe8\053\uffe8\055\uffe8\056\uffe8\057\uffe8\060\uffe8" + "\061\uffe8\062\uffe8\063\uffe8\064\uffe8\065\uffe8\001\002\000" + "\074\002\ufff8\003\ufff8\004\ufff8\006\ufff8\010\ufff8\016\ufff8" + "\021\ufff8\023\ufff8\024\ufff8\025\ufff8\026\ufff8\027\ufff8\030" + "\ufff8\031\ufff8\032\ufff8\035\ufff8\036\ufff8\037\ufff8\040\ufff8" + "\053\ufff8\055\ufff8\056\ufff8\057\ufff8\060\ufff8\061\ufff8\062" + "\ufff8\063\ufff8\064\ufff8\065\ufff8\001\002\000\004\017\152" + "\001\002\000\066\004\uffe9\006\uffe9\010\uffe9\020\153\023" + "\uffe9\024\uffe9\025\uffe9\026\uffe9\027\uffe9\030\uffe9\031\uffe9" + "\032\uffe9\035\uffe9\036\uffe9\037\uffe9\040\uffe9\053\uffe9\055" + "\uffe9\056\uffe9\057\uffe9\060\uffe9\061\uffe9\062\uffe9\063\uffe9" + "\064\uffe9\065\uffe9\001\002\000\070\003\132\004\uffe8\006" + "\uffe8\010\uffe8\016\134\023\uffe8\024\uffe8\025\uffe8\026\uffe8" + "\027\uffe8\030\uffe8\031\uffe8\032\uffe8\035\uffe8\036\uffe8\037" + "\uffe8\040\uffe8\053\uffe8\055\uffe8\056\uffe8\057\uffe8\060\uffe8" + "\061\uffe8\062\uffe8\063\uffe8\064\uffe8\065\uffe8\001\002\000" + "\072\003\132\004\uffe8\006\uffe8\010\uffe8\016\137\021\155" + "\023\uffe8\024\uffe8\025\uffe8\026\uffe8\027\uffe8\030\uffe8\031" + "\uffe8\032\uffe8\035\uffe8\036\uffe8\037\uffe8\040\uffe8\053\uffe8" + "\055\uffe8\056\uffe8\057\uffe8\060\uffe8\061\uffe8\062\uffe8\063" + "\uffe8\064\uffe8\065\uffe8\001\002\000\074\002\ufff7\003\ufff7" + "\004\ufff7\006\ufff7\010\ufff7\016\ufff7\021\ufff7\023\ufff7\024" + "\ufff7\025\ufff7\026\ufff7\027\ufff7\030\ufff7\031\ufff7\032\ufff7" + "\035\ufff7\036\ufff7\037\ufff7\040\ufff7\053\ufff7\055\ufff7\056" + "\ufff7\057\ufff7\060\ufff7\061\ufff7\062\ufff7\063\ufff7\064\ufff7" + "\065\ufff7\001\002\000\006\033\176\045\177\001\002\000" + "\060\004\040\010\051\023\026\024\034\025\016\026\046" + "\027\021\030\041\031\035\035\024\036\047\037\022\040" + "\025\053\045\055\023\056\036\057\043\060\027\061\020" + "\062\033\063\030\064\017\065\015\001\002\000\060\004" + "\uffe4\010\uffe4\023\uffe4\024\uffe4\025\uffe4\026\uffe4\027\uffe4" + "\030\uffe4\031\uffe4\035\uffe4\036\uffe4\037\uffe4\040\uffe4\053" + "\uffe4\055\uffe4\056\uffe4\057\uffe4\060\uffe4\061\uffe4\062\uffe4" + "\063\uffe4\064\uffe4\065\uffe4\001\002\000\014\007\167\022" + "\165\033\162\034\164\053\124\001\002\000\074\002\uffea" + "\003\uffea\004\uffea\006\uffea\010\uffea\016\uffea\021\uffea\023" + "\uffea\024\uffea\025\uffea\026\uffea\027\uffea\030\uffea\031\uffea" + "\032\uffea\035\uffea\036\uffea\037\uffea\040\uffea\053\uffea\055" + "\uffea\056\uffea\057\uffea\060\uffea\061\uffea\062\uffea\063\uffea" + "\064\uffea\065\uffea\001\002\000\074\002\uffeb\003\uffeb\004" + "\uffeb\006\uffeb\010\uffeb\016\uffeb\021\uffeb\023\uffeb\024\uffeb" + "\025\uffeb\026\uffeb\027\uffeb\030\uffeb\031\uffeb\032\uffeb\035" + "\uffeb\036\uffeb\037\uffeb\040\uffeb\053\uffeb\055\uffeb\056\uffeb" + "\057\uffeb\060\uffeb\061\uffeb\062\uffeb\063\uffeb\064\uffeb\065" + "\uffeb\001\002\000\060\004\040\010\051\023\026\024\034" + "\025\016\026\046\027\021\030\041\031\035\035\024\036" + "\047\037\022\040\025\053\045\055\023\056\036\057\043" + "\060\027\061\020\062\033\063\030\064\017\065\015\001" + "\002\000\004\045\173\001\002\000\006\022\165\033\171" + "\001\002\000\006\022\uffef\033\uffef\001\002\000\074\002" + "\ufff5\003\ufff5\004\ufff5\006\ufff5\010\ufff5\016\ufff5\021\ufff5" + "\023\ufff5\024\ufff5\025\ufff5\026\ufff5\027\ufff5\030\ufff5\031" + "\ufff5\032\ufff5\035\ufff5\036\ufff5\037\ufff5\040\ufff5\053\ufff5" + "\055\ufff5\056\ufff5\057\ufff5\060\ufff5\061\ufff5\062\ufff5\063" + "\ufff5\064\ufff5\065\ufff5\001\002\000\074\002\ufff3\003\ufff3" + "\004\ufff3\006\ufff3\010\ufff3\016\ufff3\021\ufff3\023\ufff3\024" + "\ufff3\025\ufff3\026\ufff3\027\ufff3\030\ufff3\031\ufff3\032\ufff3" + "\035\ufff3\036\ufff3\037\ufff3\040\ufff3\053\ufff3\055\ufff3\056" + "\ufff3\057\ufff3\060\ufff3\061\ufff3\062\ufff3\063\ufff3\064\ufff3" + "\065\ufff3\001\002\000\074\002\ufff4\003\ufff4\004\ufff4\006" + "\ufff4\010\ufff4\016\ufff4\021\ufff4\023\ufff4\024\ufff4\025\ufff4" + "\026\ufff4\027\ufff4\030\ufff4\031\ufff4\032\ufff4\035\ufff4\036" + "\ufff4\037\ufff4\040\ufff4\053\ufff4\055\ufff4\056\ufff4\057\ufff4" + "\060\ufff4\061\ufff4\062\ufff4\063\ufff4\064\ufff4\065\ufff4\001" + "\002\000\074\002\uffec\003\uffec\004\uffec\006\uffec\010\uffec" + "\016\uffec\021\uffec\023\uffec\024\uffec\025\uffec\026\uffec\027" + "\uffec\030\uffec\031\uffec\032\uffec\035\uffec\036\uffec\037\uffec" + "\040\uffec\053\uffec\055\uffec\056\uffec\057\uffec\060\uffec\061" + "\uffec\062\uffec\063\uffec\064\uffec\065\uffec\001\002\000\012" + "\007\175\022\uffee\033\uffee\053\124\001\002\000\006\022" + "\uffed\033\uffed\001\002\000\074\002\ufff1\003\ufff1\004\ufff1" + "\006\ufff1\010\ufff1\016\ufff1\021\ufff1\023\ufff1\024\ufff1\025" + "\ufff1\026\ufff1\027\ufff1\030\ufff1\031\ufff1\032\ufff1\035\ufff1" + "\036\ufff1\037\ufff1\040\ufff1\053\ufff1\055\ufff1\056\ufff1\057" + "\ufff1\060\ufff1\061\ufff1\062\ufff1\063\ufff1\064\ufff1\065\ufff1" + "\001\002\000\074\002\ufff2\003\ufff2\004\ufff2\006\ufff2\010" + "\ufff2\016\ufff2\021\ufff2\023\ufff2\024\ufff2\025\ufff2\026\ufff2" + "\027\ufff2\030\ufff2\031\ufff2\032\ufff2\035\ufff2\036\ufff2\037" + "\ufff2\040\ufff2\053\ufff2\055\ufff2\056\ufff2\057\ufff2\060\ufff2" + "\061\ufff2\062\ufff2\063\ufff2\064\ufff2\065\ufff2\001\002" });
Access to parse-action table.
/** Access to parse-action table. */
public short[][] action_table() {return _action_table;}
reduce_goto table.
/** <code>reduce_goto</code> table. */
protected static final short[][] _reduce_table = unpackFromStrings(new String[] { "\000\175\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\011\001\001\000\010\004\134\022\132\023" + "\135\001\001\000\002\001\001\000\002\001\001\000\016" + "\006\030\007\036\010\043\011\047\012\041\016\031\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\012\010\130\011\047\012\041\016\031\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\012\010\126\011\047\012\041\016\031" + "\001\001\000\016\006\122\007\036\010\043\011\047\012" + "\041\016\031\001\001\000\002\001\001\000\002\001\001" + "\000\012\010\121\011\047\012\041\016\031\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\016\012\064\014\056\015" + "\053\016\060\017\062\020\066\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\014\012\064\015" + "\053\016\060\017\105\020\066\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\004\024\071\001\001\000\012\012\064" + "\015\053\016\060\020\070\001\001\000\002\001\001\000" + "\002\001\001\000\010\012\064\015\067\016\060\001\001" + "\000\002\001\001\000\010\012\064\015\067\016\060\001" + "\001\000\016\012\064\014\076\015\053\016\060\017\077" + "\020\066\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\014\012\064\015\053\016\060\017\101" + "\020\066\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\004\024\107\001\001\000" + "\002\001\001\000\016\012\064\014\110\015\053\016\060" + "\017\077\020\066\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\002\001\001\000\014" + "\007\125\010\043\011\047\012\041\016\031\001\001\000" + "\002\001\001\000\012\010\126\011\047\012\041\016\031" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\004\025\156\001\001\000\004" + "\021\150\001\001\000\002\001\001\000\006\004\137\022" + "\132\001\001\000\004\021\140\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\004\021\143\001" + "\001\000\002\001\001\000\002\001\001\000\010\004\134" + "\022\132\023\146\001\001\000\006\004\137\022\132\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\010\004\134\022\132\023\153\001\001\000\006\004" + "\137\022\132\001\001\000\002\001\001\000\002\001\001" + "\000\016\006\160\007\036\010\043\011\047\012\041\016" + "\031\001\001\000\002\001\001\000\010\013\165\026\162" + "\027\167\001\001\000\002\001\001\000\002\001\001\000" + "\016\006\173\007\036\010\043\011\047\012\041\016\031" + "\001\001\000\002\001\001\000\004\026\171\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" });
Access to reduce_goto table.
/** Access to <code>reduce_goto</code> table. */
public short[][] reduce_table() {return _reduce_table;}
Instance of action encapsulation class.
/** Instance of action encapsulation class. */
protected CUP$LexParse$actions action_obj;
Action encapsulation object initializer.
/** Action encapsulation object initializer. */
protected void init_actions() { action_obj = new CUP$LexParse$actions(this); }
Invoke a user supplied parse action.
/** 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.
/** Indicates start state. */
public int start_state() {return 0;}
Indicates start production.
/** Indicates start production. */
public int start_production() {return 0;}
EOF Symbol index.
/** <code>EOF</code> Symbol index. */
public int EOF_sym() {return 0;}
error Symbol index.
/** <code>error</code> Symbol index. */
public int error_sym() {return 1;}
User initialization code.
/** User initialization code. */
public void user_init() throws java.lang.Exception { action_obj.scanner = scanner; // CharClasses.init() is delayed until UnicodeProperties.init() has been called, // since the max char code won't be known until then. action_obj.charClasses = scanner.getCharClasses(); } 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; }
Override syntax_error to not report expected tokens, just error message.
/** * Override syntax_error to not report expected tokens, just error message. */
public void syntax_error(Symbol cur_token) { // TODO(lsf): reporting expected tokens using their actual surface syntax would // be useful. Would need a reverse mapping of terminals or similar. // JFlex reporting doesn't use the message argument. report_error(null, cur_token); }
Override lr_parser.report_error to use JFlex reporting.
/** * Override lr_parser.report_error to use JFlex reporting. */
public void report_error(String message, Object info) { if (info instanceof Symbol) { Symbol s = (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); }
Override lr_parser.report_fatal_error to use JFlex reporting.
/** * Override lr_parser.report_fatal_error to use JFlex reporting. */
public void report_fatal_error(String message, Object info) { // CUP does not produce an informative message here, so we just stop. throw new GeneratorException(); }
Cup generated class to encapsulate user supplied action code.
/** Cup generated class to encapsulate user supplied action code.*/
@SuppressWarnings({"rawtypes", "unchecked", "unused"}) class CUP$LexParse$actions { LexScan scanner; CharClasses charClasses; RegExps regExps = new RegExps(); Macros macros = new Macros(); Integer stateNumber; Timer t = new Timer(); EOFActions eofActions = new EOFActions(); Map<Integer,IntCharSet> preclassCache = new HashMap<Integer,IntCharSet>(); void fatalError(ErrorMessages.ErrorMessage message, int line, int col) { syntaxError(message, line, col); throw new GeneratorException(); } void fatalError(ErrorMessages.ErrorMessage message) { fatalError(message, scanner.lexLine(), -1); throw new GeneratorException(); } void syntaxError(ErrorMessages.ErrorMessage message) { Out.error(scanner.file, message, scanner.lexLine(), -1); } void syntaxError(ErrorMessages.ErrorMessage message, int line) { Out.error(scanner.file, message, line, -1); } void syntaxError(ErrorMessages.ErrorMessage message, int line, int col) { Out.error(scanner.file, message, line, col); } void warning(ErrorMessages.ErrorMessage message, int line, int col) { Out.warning(scanner.file, message, line, col); } private boolean isDotOrNewlinePattern(RegExp r1, RegExp r2) { return ( r1 instanceof RegExp1 && ((RegExp1)r1).isPoint && isNewline(r2) ) || ( r2 instanceof RegExp1 && ((RegExp1)r2).isPoint && isNewline(r1) ); } private boolean isNewline(RegExp r) { if ( ! (r instanceof RegExp1) || null == ((RegExp1)r).content ) { return false; } RegExp1 r1 = (RegExp1)r; switch ( r1.type ) { case sym.STRING: case sym.STRING_I: return "\n".equals(r1.content); case sym.CHAR: case sym.CHAR_I: return '\n' == (char)((Integer)r1.content).intValue(); case sym.PRIMCLASS: return IntCharSet.nlChars().contains((IntCharSet) r1.content); default: return false; } } private boolean check(int type, int c) { switch (type) { case sym.JLETTERCLASS: return Character.isJavaIdentifierStart(c); case sym.JLETTERDIGITCLASS: return Character.isJavaIdentifierPart(c); default: return false; } } private IntCharSet getPreClass(int type) { IntCharSet result = preclassCache.get(type); if (null == result) { UnicodeProperties unicodeProperties = scanner.getUnicodeProperties(); switch (type) { case sym.LETTERCLASS: result = unicodeProperties.getIntCharSet("L"); preclassCache.put(type, result); break; case sym.DIGITCLASS: result = unicodeProperties.getIntCharSet("Nd"); preclassCache.put(type, result); break; case sym.DIGITCLASSNOT: IntCharSet digits = unicodeProperties.getIntCharSet("Nd"); result = IntCharSet.ofCharacterRange(0, unicodeProperties.getMaximumCodePoint()); result.sub(digits); preclassCache.put(type, result); break; case sym.UPPERCLASS: // "Uppercase" is more than Uppercase_Letter, but older Unicode // versions don't have this definition - check for "Uppercase", // then fall back to Uppercase_Letter (Lu) if it does not exist. result = unicodeProperties.getIntCharSet("Uppercase"); if (null == result) { result = unicodeProperties.getIntCharSet("Lu"); } preclassCache.put(type, result); break; case sym.LOWERCLASS: // "Lowercase" is more than Lowercase_Letter, but older Unicode // versions don't have this definition - check for "Lowercase", // then fall back to Lowercase_Letter (Ll) if it does not exist. result = unicodeProperties.getIntCharSet("Lowercase"); if (null == result) { result = unicodeProperties.getIntCharSet("Ll"); } preclassCache.put(type, result); break; case sym.WHITESPACECLASS: // Although later versions do, Unicode 1.1 does not have the // "Whitespace" definition - check for "Whitespace", then fall back // to "Space_separator" (Zs) if it does not exist. result = unicodeProperties.getIntCharSet("Whitespace"); if (null == result) { result = unicodeProperties.getIntCharSet("Zs"); } preclassCache.put(type, result); break; case sym.WHITESPACECLASSNOT: // Although later versions do, Unicode 1.1 does not have the // "Whitespace" definition - check for "Whitespace", then fall back // to "Space_separator" (Zs) if it does not exist. IntCharSet whitespaceClass = unicodeProperties.getIntCharSet("Whitespace"); if (null == whitespaceClass) { whitespaceClass = unicodeProperties.getIntCharSet("Zs"); } result = IntCharSet.ofCharacterRange(0, unicodeProperties.getMaximumCodePoint()); result.sub(whitespaceClass); preclassCache.put(type, result); break; case sym.WORDCLASS: { // UTR#18: \w = [\p{alpha}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}] IntCharSet alphaClass = unicodeProperties.getIntCharSet("Alphabetic"); if (null == alphaClass) { // For Unicode 1.1, substitute "Letter" (L) for "Alphabetic". alphaClass = unicodeProperties.getIntCharSet("L"); } IntCharSet markClass = unicodeProperties.getIntCharSet("M"); IntCharSet digitClass = unicodeProperties.getIntCharSet("Nd"); IntCharSet connectorPunctClass = unicodeProperties.getIntCharSet("Pc"); if (null == connectorPunctClass) { // For Unicode 1.1, substitute "_" for "Connector_Punctuation". connectorPunctClass = IntCharSet.ofCharacter('_'); } result = IntCharSet.copyOf(alphaClass); result.add(markClass); result.add(digitClass); result.add(connectorPunctClass); preclassCache.put(type, result); break; } case sym.WORDCLASSNOT: { // UTR#18: \W = [^\p{alpha}\p{gc=Mark}\p{digit}\p{gc=Connector_Punctuation}] IntCharSet alphaClass = unicodeProperties.getIntCharSet("Alphabetic"); if (null == alphaClass) { // For Unicode 1.1, substitute "Letter" (L) for "Alphabetic". alphaClass = unicodeProperties.getIntCharSet("L"); } IntCharSet markClass = unicodeProperties.getIntCharSet("M"); IntCharSet digitClass = unicodeProperties.getIntCharSet("Nd"); IntCharSet connectorPunctClass = unicodeProperties.getIntCharSet("Pc"); if (null == connectorPunctClass) { // For Unicode 1.1, substitute "_" for "Connector_Punctuation". connectorPunctClass = IntCharSet.ofCharacter('_'); } IntCharSet wordClass = IntCharSet.copyOf(alphaClass); wordClass.add(markClass); wordClass.add(digitClass); wordClass.add(connectorPunctClass); result = IntCharSet.ofCharacterRange(0, unicodeProperties.getMaximumCodePoint()); result.sub(wordClass); preclassCache.put(type, result); break; } case sym.JLETTERCLASS: case sym.JLETTERDIGITCLASS: default: result = new IntCharSet(); int c = 0; int start = 0; int last = charClasses.getMaxCharCode(); boolean prev, current; prev = check(type, 0); for (c = 1; c < last; c++) { current = check(type, c); if (!prev && current) start = c; if (prev && !current) { result.add(new Interval(start, 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.add(new Interval(c, c)); if (prev && current) result.add(new Interval(start, c)); if (prev && !current) result.add(new Interval(start, c - 1)); preclassCache.put(type, result); break; } } 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() { IntCharSet set = IntCharSet.nlChars(); // assumption: line feeds are caseless charClasses.makeClass(set, false); charClasses.makeClass('\n', false); charClasses.makeClass('\r', false); RegExp1 c = new RegExp1(sym.PRIMCLASS, set); Integer n = Integer.valueOf((int)'\n'); Integer r = Integer.valueOf((int)'\r'); return new RegExp2(sym.BAR, c, new RegExp2(sym.CONCAT, new RegExp1(sym.CHAR, r), new RegExp1(sym.CHAR, n))); } private RegExp primClass(int content) { return primClass(content, content); } private RegExp primClass(int start, int end) { return primClass(IntCharSet.ofCharacterRange(start, end)); } private RegExp primClass(IntCharSet set) { return new RegExp1(sym.PRIMCLASS, set); } private final LexParse parser;
Constructor
/** Constructor */
CUP$LexParse$actions(LexParse parser) { this.parser = parser; }
Method 0 with the actual generated action code for actions 0 to 300.
/** Method 0 with the actual generated action code for actions 0 to 300. */
public final java_cup.runtime.Symbol CUP$LexParse$do_action_part00000000( 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 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; /*. . . . . . . . . . . . . . . . . . . .*/ case 1: // specification ::= USERCODE macros DELIMITER rules { NFA RESULT =null; scanner.t.stop(); Out.checkErrors(); Out.time(ErrorMessages.PARSING_TOOK, t); macros.expand(); // expands only inside macro definitions if (Options.unused_warning) { for (String unusedMacro : macros.unused()) { Out.warning(String.format( "Macro \"%s\" has been declared but never used.", unusedMacro)); } } // expand macros + char classes in rules and lookahead rules regExps.normalise(macros); // make char class partitions (modifies charClasses) regExps.makeCCLs(charClasses, Options.jlex && scanner.caseless); SemCheck.check(regExps, scanner.file); regExps.checkActions(); regExps.checkLookAheads(); Out.checkErrors(); charClasses.normalise(); 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 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()), 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()), 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 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 6: // 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 7: // 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 8: // rules ::= rules rule { List<Integer> 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; List<Integer> rlist = (List<Integer>)((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.add(r); RESULT = rlist; CUP$LexParse$result = parser.getSymbolFactory().newSymbol("rules",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 9: // rules ::= rules LESSTHAN states MORETHAN LBRACE rules RBRACE { List<Integer> 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; List<Integer> rlist1 = (List<Integer>)((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; List<Integer> states = (List<Integer>)((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; List<Integer> rlist2 = (List<Integer>)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value; for (Integer elem : rlist2) { // might be null for error case of "rule" if (elem != null) { regExps.addStates( elem, states ); } rlist1.add( elem ); } RESULT = rlist1; CUP$LexParse$result = parser.getSymbolFactory().newSymbol("rules",17, ((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 10: // rules ::= LESSTHAN states MORETHAN LBRACE rules RBRACE { List<Integer> 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; List<Integer> states = (List<Integer>)((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; List<Integer> rlist = (List<Integer>)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value; for (Integer elem : rlist) { // might be null for error case of "rule" if (elem != null) { regExps.addStates( elem, states ); } } RESULT = rlist; CUP$LexParse$result = parser.getSymbolFactory().newSymbol("rules",17, ((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 11: // rules ::= rule { List<Integer> 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 ArrayList<Integer>(); RESULT.add(r); CUP$LexParse$result = parser.getSymbolFactory().newSymbol("rules",17, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 12: // 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; List<Integer> s = (List<Integer>)((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 = 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 13: // 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; List<Integer> s = (List<Integer>)((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 = 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 14: // 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; List<Integer> s = (List<Integer>)((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 15: // 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; List<Integer> s = (List<Integer>)((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 = 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 16: // rule ::= statesOPT EOFRULE NOACTION { 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; List<Integer> s = (List<Integer>)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).value; RESULT = regExps.insert(s, null); 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 ::= 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: // 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: // 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 ::= 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: // 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",20, ((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: // 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",21, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 23: // actions ::= NOACTION { Action RESULT =null; CUP$LexParse$result = parser.getSymbolFactory().newSymbol("actions",21, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 24: // statesOPT ::= LESSTHAN states MORETHAN { List<Integer> 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; List<Integer> list = (List<Integer>)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value; RESULT = list; CUP$LexParse$result = parser.getSymbolFactory().newSymbol("statesOPT",16, ((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: // statesOPT ::= { List<Integer> RESULT =null; RESULT = new ArrayList<Integer>(); CUP$LexParse$result = parser.getSymbolFactory().newSymbol("statesOPT",16, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 26: // states ::= IDENT COMMA states { List<Integer> 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; List<Integer> list = (List<Integer>)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value; stateNumber = scanner.states.getNumber( id ); if ( stateNumber != null ) list.add( stateNumber ); else { throw new ScannerException(scanner.file, ErrorMessages.LEXSTATE_UNDECL, idleft, idright); } RESULT = list; CUP$LexParse$result = parser.getSymbolFactory().newSymbol("states",15, ((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: // states ::= IDENT { List<Integer> 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; List<Integer> list = new ArrayList<Integer>(); stateNumber = scanner.states.getNumber( id ); if ( stateNumber != null ) list.add( stateNumber ); else { throw new ScannerException(scanner.file, ErrorMessages.LEXSTATE_UNDECL, idleft, idright); } RESULT = list; CUP$LexParse$result = parser.getSymbolFactory().newSymbol("states",15, ((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 { List<Integer> 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",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 29: // hatOPT ::= HAT { Boolean RESULT =null; RESULT = true; CUP$LexParse$result = parser.getSymbolFactory().newSymbol("hatOPT",19, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 30: // hatOPT ::= { Boolean RESULT =null; RESULT = false; CUP$LexParse$result = parser.getSymbolFactory().newSymbol("hatOPT",19, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 31: // 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; if ( ! Options.jlex && ! Options.legacy_dot && isDotOrNewlinePattern(r1, r2) ) { warning(ErrorMessages.DOT_BAR_NEWLINE_DOES_NOT_MATCH_ALL_CHARS, r1left, r1right); } 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: // 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 ::= 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: // 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: // 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: // 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: // 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 ::= 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: // 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: // 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 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 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, n, 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 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, n2, 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 ::= 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 ::= 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 ::= 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 ::= preclass { RegExp RESULT =null; int setleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left; int setright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right; IntCharSet set = (IntCharSet)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value; // assumption [correct?]: preclasses are already closed under case charClasses.makeClass(set, false); RESULT = new RegExp1(sym.PRIMCLASS, set); 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 ::= UNIPROPCCLASS { RegExp RESULT =null; int intcharsetleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left; int intcharsetright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right; IntCharSet intcharset = (IntCharSet)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value; IntCharSet set = scanner.caseless ? intcharset.getCaseless(scanner.getUnicodeProperties()) : intcharset; charClasses.makeClass(set, false); RESULT = new RegExp1(sym.PRIMCLASS, set); 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 ::= UNIPROPCCLASSNOT { RegExp RESULT =null; int notintcharsetleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left; int notintcharsetright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right; IntCharSet notintcharset = (IntCharSet)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value; IntCharSet set = scanner.caseless ? notintcharset.getCaseless(scanner.getUnicodeProperties()) : notintcharset; charClasses.makeClass(set, false); ArrayList<RegExp> l = new ArrayList<RegExp>(); l.add(new RegExp1(sym.PRIMCLASS, set)); RESULT = new RegExp1(sym.CCLASSNOT, l); 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; charClasses.makeClass(str, scanner.caseless); RESULT = new RegExp1(scanner.caseless ? sym.STRING_I : sym.STRING, str); 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; IntCharSet nl; if ( Options.jlex || Options.legacy_dot ) { nl = IntCharSet.ofCharacter('\n'); } else { nl = IntCharSet.nlChars(); } nl.add(new Interval(Character.MIN_SURROGATE, Character.MAX_SURROGATE)); // assumption: surrogate and newline chars have no uppercase variant charClasses.makeClass(nl, false); ArrayList<RegExp> l = new ArrayList<RegExp>(); l.add(new RegExp1(sym.PRIMCLASS, nl)); RegExp1 r = new RegExp1(sym.CCLASSNOT, l); r.isPoint = true; RESULT = r; 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 52: // regexp ::= NEWLINE { RegExp RESULT =null; RESULT = makeNL(); 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 53: // 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; Integer c = (Integer)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value; if ( scanner.caseless ) { charClasses.makeClass(c, true); RESULT = new RegExp1(sym.CHAR_I, c); } else { charClasses.makeClass(c, false); RESULT = new RegExp1(sym.CHAR, 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 54: // charclass ::= OPENCLASS CLOSECLASS { RegExp RESULT =null; RESULT = new RegExp1(sym.CCLASS, new ArrayList<RegExp>()); 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 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; RESULT = RegExp.anyChar(); 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 56: // charclass ::= OPENCLASS opt_hat_content CLOSECLASS { RegExp RESULT =null; int cclleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left; int cclright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right; RegExp ccl = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value; RESULT = ccl; 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 57: // charclass ::= OPENCLASS opt_dash_content charclass_op opt_hat_content CLOSECLASS { RegExp RESULT =null; int cc1left = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).left; int cc1right = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).right; List<RegExp> cc1 = (List<RegExp>)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).value; int opleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).left; int opright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).right; Integer op = (Integer)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).value; int c2left = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left; int c2right = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right; RegExp c2 = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value; RegExp c1 = new RegExp1(sym.CCLASS, cc1); RESULT = new RegExp1(sym.CCLASSOP, new RegExp2(op.intValue(), c1, c2)); 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 58: // charclass ::= OPENCLASS HAT opt_dash_content charclass_op opt_hat_content CLOSECLASS { RegExp RESULT =null; int cc1left = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).left; int cc1right = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).right; List<RegExp> cc1 = (List<RegExp>)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-3)).value; int opleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).left; int opright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).right; Integer op = (Integer)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-2)).value; int c2left = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).left; int c2right = ((java_cup.runtime.Symbol)CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).right; RegExp c2 = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.elementAt(CUP$LexParse$top-1)).value; RegExp c1 = new RegExp1(sym.CCLASS, cc1); List<RegExp> l = new ArrayList<>(); l.add(new RegExp1(sym.CCLASSOP, new RegExp2(op.intValue(), c1, c2))); RESULT = new RegExp1(sym.CCLASSNOT, l); CUP$LexParse$result = parser.getSymbolFactory().newSymbol("charclass",8, ((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 59: // charclass_op ::= INTERSECTION { Integer RESULT =null; RESULT = Integer.valueOf(sym.INTERSECTION); CUP$LexParse$result = parser.getSymbolFactory().newSymbol("charclass_op",18, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 60: // charclass_op ::= DIFFERENCE { Integer RESULT =null; RESULT = Integer.valueOf(sym.DIFFERENCE); CUP$LexParse$result = parser.getSymbolFactory().newSymbol("charclass_op",18, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 61: // charclass_op ::= SYMMETRICDIFFERENCE { Integer RESULT =null; RESULT = Integer.valueOf(sym.SYMMETRICDIFFERENCE); CUP$LexParse$result = parser.getSymbolFactory().newSymbol("charclass_op",18, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 62: // opt_hat_content ::= opt_dash_content { 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; List<RegExp> c = (List<RegExp>)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value; RESULT = new RegExp1(sym.CCLASS, c); CUP$LexParse$result = parser.getSymbolFactory().newSymbol("opt_hat_content",10, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 63: // opt_hat_content ::= HAT opt_dash_content { 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; List<RegExp> c = (List<RegExp>)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value; RESULT = new RegExp1(sym.CCLASSNOT, c); CUP$LexParse$result = parser.getSymbolFactory().newSymbol("opt_hat_content",10, ((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: // opt_dash_content ::= classcontent { List<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; List<RegExp> c = (List<RegExp>)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value; RESULT = c; CUP$LexParse$result = parser.getSymbolFactory().newSymbol("opt_dash_content",13, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 65: // opt_dash_content ::= DASH classcontent { List<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; List<RegExp> c = (List<RegExp>)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value; c.add(primClass('-')); RESULT = c; CUP$LexParse$result = parser.getSymbolFactory().newSymbol("opt_dash_content",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 66: // classcontent ::= classcontent classcontentelem { List<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; List<RegExp> list = (List<RegExp>)((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; RegExp elem = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value; list.add(elem); RESULT = list; CUP$LexParse$result = parser.getSymbolFactory().newSymbol("classcontent",14, ((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 67: // classcontent ::= classcontentelem { List<RegExp> RESULT =null; int elemleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left; int elemright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right; RegExp elem = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value; RESULT = new ArrayList<RegExp>(); RESULT.add(elem); CUP$LexParse$result = parser.getSymbolFactory().newSymbol("classcontent",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 DASH CHAR { RegExp 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; Integer c1 = (Integer)((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; Integer c2 = (Integer)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value; if (c2 < c1) { syntaxError(ErrorMessages.IMPOSSIBLE_CHARCLASS_RANGE, c1left, c1right); c2 = c1; // avoid violating Interval invariant; error is logged. } RESULT = primClass(c1, c2); CUP$LexParse$result = parser.getSymbolFactory().newSymbol("classcontentelem",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 69: // classcontentelem ::= 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; Integer c = (Integer)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value; RESULT = primClass(c); CUP$LexParse$result = parser.getSymbolFactory().newSymbol("classcontentelem",11, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 70: // classcontentelem ::= STRING { RegExp 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; IntCharSet set = new IntCharSet(); for (int i = 0; i < s.length(); ) { int ch = s.codePointAt(i); i += Character.charCount(ch); set.add(ch); } RESULT = primClass(set); CUP$LexParse$result = parser.getSymbolFactory().newSymbol("classcontentelem",11, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 71: // classcontentelem ::= preclass { RegExp RESULT =null; int setleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left; int setright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right; IntCharSet set = (IntCharSet)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value; RESULT = primClass(set); CUP$LexParse$result = parser.getSymbolFactory().newSymbol("classcontentelem",11, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 72: // classcontentelem ::= UNIPROPCCLASS { RegExp RESULT =null; int intcharsetleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left; int intcharsetright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right; IntCharSet intcharset = (IntCharSet)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value; RESULT = primClass(intcharset); CUP$LexParse$result = parser.getSymbolFactory().newSymbol("classcontentelem",11, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 73: // classcontentelem ::= UNIPROPCCLASSNOT { RegExp RESULT =null; int notintcharsetleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left; int notintcharsetright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right; IntCharSet notintcharset = (IntCharSet)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value; List<RegExp> l = new ArrayList<RegExp>(); l.add(primClass(notintcharset)); RESULT = new RegExp1(sym.CCLASSNOT, l); CUP$LexParse$result = parser.getSymbolFactory().newSymbol("classcontentelem",11, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 74: // classcontentelem ::= 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("classcontentelem",11, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 75: // classcontentelem ::= charclass { RegExp RESULT =null; int regexleft = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).left; int regexright = ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()).right; RegExp regex = (RegExp)((java_cup.runtime.Symbol) CUP$LexParse$stack.peek()).value; RESULT = regex; CUP$LexParse$result = parser.getSymbolFactory().newSymbol("classcontentelem",11, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 76: // preclass ::= JLETTERCLASS { IntCharSet RESULT =null; RESULT = getPreClass(sym.JLETTERCLASS); CUP$LexParse$result = parser.getSymbolFactory().newSymbol("preclass",12, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 77: // preclass ::= JLETTERDIGITCLASS { IntCharSet RESULT =null; RESULT = getPreClass(sym.JLETTERDIGITCLASS); CUP$LexParse$result = parser.getSymbolFactory().newSymbol("preclass",12, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 78: // preclass ::= LETTERCLASS { IntCharSet RESULT =null; RESULT = getPreClass(sym.LETTERCLASS); CUP$LexParse$result = parser.getSymbolFactory().newSymbol("preclass",12, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 79: // preclass ::= DIGITCLASS { IntCharSet RESULT =null; RESULT = getPreClass(sym.DIGITCLASS); CUP$LexParse$result = parser.getSymbolFactory().newSymbol("preclass",12, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 80: // preclass ::= DIGITCLASSNOT { IntCharSet RESULT =null; RESULT = getPreClass(sym.DIGITCLASSNOT); CUP$LexParse$result = parser.getSymbolFactory().newSymbol("preclass",12, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 81: // preclass ::= UPPERCLASS { IntCharSet RESULT =null; RESULT = getPreClass(sym.UPPERCLASS); CUP$LexParse$result = parser.getSymbolFactory().newSymbol("preclass",12, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 82: // preclass ::= LOWERCLASS { IntCharSet RESULT =null; RESULT = getPreClass(sym.LOWERCLASS); CUP$LexParse$result = parser.getSymbolFactory().newSymbol("preclass",12, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 83: // preclass ::= WHITESPACECLASS { IntCharSet RESULT =null; RESULT = getPreClass(sym.WHITESPACECLASS); CUP$LexParse$result = parser.getSymbolFactory().newSymbol("preclass",12, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 84: // preclass ::= WHITESPACECLASSNOT { IntCharSet RESULT =null; RESULT = getPreClass(sym.WHITESPACECLASSNOT); CUP$LexParse$result = parser.getSymbolFactory().newSymbol("preclass",12, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 85: // preclass ::= WORDCLASS { IntCharSet RESULT =null; RESULT = getPreClass(sym.WORDCLASS); CUP$LexParse$result = parser.getSymbolFactory().newSymbol("preclass",12, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 86: // preclass ::= WORDCLASSNOT { IntCharSet RESULT =null; RESULT = getPreClass(sym.WORDCLASSNOT); CUP$LexParse$result = parser.getSymbolFactory().newSymbol("preclass",12, ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), ((java_cup.runtime.Symbol)CUP$LexParse$stack.peek()), RESULT); } return CUP$LexParse$result; /* . . . . . .*/ default: throw new Exception( "Invalid action number "+CUP$LexParse$act_num+"found in internal parse table"); } } /* end of method */
Method splitting the generated action code into several parts.
/** Method splitting the generated action code into several parts. */
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 { return CUP$LexParse$do_action_part00000000( CUP$LexParse$act_num, CUP$LexParse$parser, CUP$LexParse$stack, CUP$LexParse$top); } } }