//---------------------------------------------------- // The following code was generated by CUP v0.10k // Tue Jun 03 16:12:28 GMT-05:00 2008 //---------------------------------------------------- package java_cup; import java_cup.runtime.*; import java.util.Hashtable; /** CUP v0.10k generated parser. * @version Tue Jun 03 16:12:28 GMT-05:00 2008 */ public class parser extends java_cup.runtime.lr_parser { /** Default constructor. */ public parser() {super();} /** Constructor which sets the default scanner. */ public parser(java_cup.runtime.Scanner s) {super(s);} /** Production table. */ protected static final short _production_table[][] = unpackFromStrings(new String[] { "\000\161\000\002\002\004\000\002\057\002\000\002\003" + "\012\000\002\003\007\000\002\060\002\000\002\004\006" + "\000\002\004\003\000\002\005\004\000\002\005\003\000" + "\002\061\002\000\002\020\006\000\002\010\003\000\002" + "\010\003\000\002\010\003\000\002\010\003\000\002\007" + "\002\000\002\007\004\000\002\006\006\000\002\013\006" + "\000\002\013\007\000\002\056\002\000\002\056\005\000" + "\002\056\005\000\002\055\003\000\002\055\005\000\002" + "\022\006\000\002\023\006\000\002\014\004\000\002\014" + "\003\000\002\024\005\000\002\024\004\000\002\024\005" + "\000\002\024\004\000\002\062\002\000\002\024\006\000" + "\002\063\002\000\002\024\006\000\002\064\002\000\002" + "\044\005\000\002\065\002\000\002\045\005\000\002\026" + "\005\000\002\026\003\000\002\027\005\000\002\027\003" + "\000\002\040\003\000\002\040\003\000\002\043\004\000" + "\002\043\003\000\002\066\002\000\002\041\007\000\002" + "\067\002\000\002\041\007\000\002\070\002\000\002\041" + "\007\000\002\042\005\000\002\042\003\000\002\052\003" + "\000\002\053\003\000\002\071\002\000\002\015\007\000" + "\002\015\003\000\002\016\004\000\002\016\003\000\002" + "\072\002\000\002\073\002\000\002\030\010\000\002\074" + "\002\000\002\030\005\000\002\035\005\000\002\035\003" + "\000\002\036\005\000\002\036\003\000\002\031\004\000" + "\002\031\003\000\002\032\004\000\002\032\003\000\002" + "\051\004\000\002\051\003\000\002\017\005\000\002\017" + "\003\000\002\021\005\000\002\021\003\000\002\025\003" + "\000\002\025\005\000\002\033\003\000\002\034\003\000" + "\002\046\003\000\002\046\003\000\002\047\003\000\002" + "\047\003\000\002\050\003\000\002\054\003\000\002\054" + "\003\000\002\054\003\000\002\054\003\000\002\054\003" + "\000\002\054\003\000\002\054\003\000\002\054\003\000" + "\002\054\003\000\002\054\003\000\002\054\003\000\002" + "\054\003\000\002\054\003\000\002\054\003\000\002\054" + "\003\000\002\054\003\000\002\012\004\000\002\012\003" + "\000\002\011\002\000\002\011\003\000\002\037\002" }); /** Access to production table. */ public short[][] production_table() {return _production_table;} /** Parse-action table. */ protected static final short[][] _action_table = unpackFromStrings(new String[] { "\000\262\000\026\003\005\004\000\005\000\007\000\010" + "\000\011\000\012\000\013\000\014\000\035\000\001\002" + "\000\004\002\264\001\002\000\010\011\056\012\051\035" + "\055\001\002\000\024\004\011\005\uff91\007\uff91\010\uff91" + "\011\uff91\012\uff91\013\uff91\014\uff91\035\uff91\001\002\000" + "\022\005\uff91\007\uff91\010\uff91\011\uff91\012\uff91\013\uff91" + "\014\uff91\035\uff91\001\002\000\022\005\ufffb\007\ufffb\010" + "\ufffb\011\ufffb\012\ufffb\013\ufffb\014\ufffb\035\ufffb\001\002" + "\000\042\003\030\006\015\007\031\010\026\011\023\012" + "\016\013\012\014\033\015\017\016\032\026\014\027\024" + "\030\022\031\013\035\025\040\020\001\002\000\022\003" + "\uff9e\017\uff9e\022\uff9e\025\uff9e\032\uff9e\033\uff9e\040\uff9e" + "\041\uff9e\001\002\000\022\003\uff97\017\uff97\022\uff97\025" + "\uff97\032\uff97\033\uff97\040\uff97\041\uff97\001\002\000\022" + "\003\uff9a\017\uff9a\022\uff9a\025\uff9a\032\uff9a\033\uff9a\040" + "\uff9a\041\uff9a\001\002\000\022\003\uffa4\017\uffa4\022\uffa4" + "\025\uffa4\032\uffa4\033\uffa4\040\uffa4\041\uffa4\001\002\000" + "\022\003\uffa0\017\uffa0\022\uffa0\025\uffa0\032\uffa0\033\uffa0" + "\040\uffa0\041\uffa0\001\002\000\022\003\uff9c\017\uff9c\022" + "\uff9c\025\uff9c\032\uff9c\033\uff9c\040\uff9c\041\uff9c\001\002" + "\000\022\003\uffa5\017\uffa5\022\uffa5\025\uffa5\032\uffa5\033" + "\uffa5\040\uffa5\041\uffa5\001\002\000\006\017\ufffd\022\035" + "\001\002\000\022\003\uff98\017\uff98\022\uff98\025\uff98\032" + "\uff98\033\uff98\040\uff98\041\uff98\001\002\000\022\003\uffa1" + "\017\uffa1\022\uffa1\025\uffa1\032\uffa1\033\uffa1\040\uffa1\041" + "\uffa1\001\002\000\022\003\uff99\017\uff99\022\uff99\025\uff99" + "\032\uff99\033\uff99\040\uff99\041\uff99\001\002\000\022\003" + "\uff9f\017\uff9f\022\uff9f\025\uff9f\032\uff9f\033\uff9f\040\uff9f" + "\041\uff9f\001\002\000\022\003\uffa2\017\uffa2\022\uffa2\025" + "\uffa2\032\uffa2\033\uffa2\040\uffa2\041\uffa2\001\002\000\012" + "\017\uffb1\022\uffb1\033\uffb1\040\uffb1\001\002\000\022\003" + "\uff96\017\uff96\022\uff96\025\uff96\032\uff96\033\uff96\040\uff96" + "\041\uff96\001\002\000\022\003\uffa3\017\uffa3\022\uffa3\025" + "\uffa3\032\uffa3\033\uffa3\040\uffa3\041\uffa3\001\002\000\022" + "\003\uff9b\017\uff9b\022\uff9b\025\uff9b\032\uff9b\033\uff9b\040" + "\uff9b\041\uff9b\001\002\000\022\003\uff9d\017\uff9d\022\uff9d" + "\025\uff9d\032\uff9d\033\uff9d\040\uff9d\041\uff9d\001\002\000" + "\004\017\037\001\002\000\042\003\030\006\015\007\031" + "\010\026\011\023\012\016\013\012\014\033\015\017\016" + "\032\026\014\027\024\030\022\031\013\035\025\040\020" + "\001\002\000\012\017\uffb2\022\uffb2\033\uffb2\040\uffb2\001" + "\002\000\022\005\ufffc\007\ufffc\010\ufffc\011\ufffc\012\ufffc" + "\013\ufffc\014\ufffc\035\ufffc\001\002\000\022\005\043\007" + "\ufff2\010\ufff2\011\ufff2\012\ufff2\013\ufff2\014\ufff2\035\ufff2" + "\001\002\000\022\005\ufff9\007\ufff9\010\ufff9\011\ufff9\012" + "\ufff9\013\ufff9\014\ufff9\035\ufff9\001\002\000\022\005\ufffa" + "\007\ufffa\010\ufffa\011\ufffa\012\ufffa\013\ufffa\014\ufffa\035" + "\ufffa\001\002\000\042\003\030\006\015\007\031\010\026" + "\011\023\012\016\013\012\014\033\015\017\016\032\026" + "\014\027\024\030\022\031\013\035\025\040\020\001\002" + "\000\020\007\045\010\046\011\056\012\051\013\061\014" + "\062\035\055\001\002\000\004\006\247\001\002\000\006" + "\006\232\040\231\001\002\000\020\007\ufff1\010\ufff1\011" + "\ufff1\012\ufff1\013\ufff1\014\ufff1\035\ufff1\001\002\000\020" + "\007\ufff5\010\ufff5\011\ufff5\012\ufff5\013\ufff5\014\ufff5\035" + "\ufff5\001\002\000\004\011\230\001\002\000\042\003\216" + "\006\015\007\031\010\026\011\023\012\016\013\012\014" + "\033\015\017\016\032\026\014\027\024\030\022\031\013" + "\035\025\040\212\001\002\000\020\007\ufff3\010\ufff3\011" + "\ufff3\012\ufff3\013\ufff3\014\ufff3\035\ufff3\001\002\000\020" + "\003\uffe5\011\uffe5\012\uffe5\016\uffe5\026\uffe5\035\uffe5\040" + "\uffe5\001\002\000\042\003\uff94\006\uff94\007\uff94\010\uff94" + "\011\uff94\012\uff94\013\uff94\014\uff94\015\uff94\016\uff94\026" + "\uff94\027\uff94\030\uff94\031\uff94\035\uff94\040\uff94\001\002" + "\000\042\003\177\006\015\007\031\010\026\011\023\012" + "\016\013\012\014\033\015\017\016\032\026\014\027\024" + "\030\022\031\013\035\025\040\173\001\002\000\020\007" + "\ufff6\010\ufff6\011\ufff6\012\ufff6\013\ufff6\014\ufff6\035\ufff6" + "\001\002\000\020\003\uff91\011\056\012\051\016\uff91\026" + "\075\035\055\040\uff91\001\002\000\004\015\070\001\002" + "\000\004\015\064\001\002\000\020\007\ufff4\010\ufff4\011" + "\ufff4\012\ufff4\013\ufff4\014\ufff4\035\ufff4\001\002\000\004" + "\041\065\001\002\000\022\007\uff93\010\uff93\011\uff93\012" + "\uff93\013\uff93\014\uff93\017\067\035\uff93\001\002\000\020" + "\007\uffe7\010\uffe7\011\uffe7\012\uffe7\013\uffe7\014\uffe7\035" + "\uffe7\001\002\000\020\007\uff92\010\uff92\011\uff92\012\uff92" + "\013\uff92\014\uff92\035\uff92\001\002\000\004\041\071\001" + "\002\000\022\007\uff93\010\uff93\011\uff93\012\uff93\013\uff93" + "\014\uff93\017\067\035\uff93\001\002\000\020\007\uffe8\010" + "\uffe8\011\uffe8\012\uffe8\013\uffe8\014\uffe8\035\uffe8\001\002" + "\000\010\003\uff91\016\127\040\uff91\001\002\000\012\003" + "\uffd1\016\uffd1\026\uffd1\040\uffd1\001\002\000\010\027\102" + "\030\103\031\104\001\002\000\020\003\uffe6\011\uffe6\012" + "\uffe6\016\uffe6\026\uffe6\035\uffe6\040\uffe6\001\002\000\010" + "\003\uffd3\016\uffd3\040\uffd3\001\002\000\012\003\uffd4\016" + "\uffd4\026\075\040\uffd4\001\002\000\012\003\uffd2\016\uffd2" + "\026\uffd2\040\uffd2\001\002\000\006\003\uffd0\040\uffd0\001" + "\002\000\006\003\uffce\040\uffce\001\002\000\006\003\uffcc" + "\040\uffcc\001\002\000\006\003\107\040\106\001\002\000" + "\022\003\uffa8\017\uffa8\020\uffa8\023\uffa8\025\uffa8\032\uffa8" + "\040\uffa8\041\uffa8\001\002\000\022\003\uffa7\017\uffa7\020" + "\uffa7\023\uffa7\025\uffa7\032\uffa7\040\uffa7\041\uffa7\001\002" + "\000\010\017\uffc7\020\uffc7\025\uffc7\001\002\000\006\017" + "\uffc8\020\uffc8\001\002\000\006\017\uffc9\020\uffc9\001\002" + "\000\006\017\115\020\114\001\002\000\006\003\107\040" + "\106\001\002\000\012\003\uffcb\016\uffcb\026\uffcb\040\uffcb" + "\001\002\000\006\017\uffca\020\uffca\001\002\000\006\003" + "\107\040\106\001\002\000\006\017\121\020\114\001\002" + "\000\012\003\uffcd\016\uffcd\026\uffcd\040\uffcd\001\002\000" + "\006\003\107\040\106\001\002\000\006\017\124\020\114" + "\001\002\000\012\003\uffcf\016\uffcf\026\uffcf\040\uffcf\001" + "\002\000\006\003\136\040\131\001\002\000\006\003\uffc4" + "\040\uffc4\001\002\000\004\015\130\001\002\000\006\003" + "\132\040\131\001\002\000\006\017\uffaa\024\uffaa\001\002" + "\000\004\017\uffa9\001\002\000\004\017\uffc6\001\002\000" + "\004\017\135\001\002\000\006\003\uffc5\040\uffc5\001\002" + "\000\006\017\uffbe\024\uffa9\001\002\000\004\024\uffc1\001" + "\002\000\010\002\uffff\003\136\040\131\001\002\000\010" + "\002\uffc2\003\uffc2\040\uffc2\001\002\000\010\002\uffc3\003" + "\uffc3\040\uffc3\001\002\000\004\024\144\001\002\000\016" + "\003\uffc0\017\uffc0\025\uffc0\032\uffc0\040\uffc0\041\uffc0\001" + "\002\000\016\003\uff91\017\uff91\025\uff91\032\uff91\040\uff91" + "\041\uff91\001\002\000\006\017\165\025\164\001\002\000" + "\016\003\uffb7\017\uffb7\025\uffb7\032\uffb7\040\uffb7\041\uffb7" + "\001\002\000\006\017\uffbb\025\uffbb\001\002\000\016\003" + "\107\017\uffb9\025\uffb9\032\154\040\106\041\152\001\002" + "\000\016\003\uffb5\017\uffb5\025\uffb5\032\uffb5\040\uffb5\041" + "\uffb5\001\002\000\020\003\uff91\017\uff91\023\157\025\uff91" + "\032\uff91\040\uff91\041\uff91\001\002\000\006\003\107\040" + "\106\001\002\000\016\003\uffb8\017\uffb8\025\uffb8\032\uffb8" + "\040\uffb8\041\uffb8\001\002\000\006\017\uffba\025\uffba\001" + "\002\000\042\003\030\006\015\007\031\010\026\011\023" + "\012\016\013\012\014\033\015\017\016\032\026\014\027" + "\024\030\022\031\013\035\025\040\020\001\002\000\016" + "\003\uffb3\017\uffb3\025\uffb3\032\uffb3\040\uffb3\041\uffb3\001" + "\002\000\016\003\uffb6\017\uffb6\025\uffb6\032\uffb6\040\uffb6" + "\041\uffb6\001\002\000\016\003\uffb4\017\uffb4\025\uffb4\032" + "\uffb4\040\uffb4\041\uffb4\001\002\000\016\003\uffa6\017\uffa6" + "\025\uffa6\032\uffa6\040\uffa6\041\uffa6\001\002\000\016\003" + "\uff91\017\uff91\025\uff91\032\uff91\040\uff91\041\uff91\001\002" + "\000\010\002\uffbf\003\uffbf\040\uffbf\001\002\000\006\017" + "\uffbc\025\uffbc\001\002\000\004\017\170\001\002\000\010" + "\002\uffbd\003\uffbd\040\uffbd\001\002\000\006\017\uffd7\020" + "\uffd7\001\002\000\020\003\uffe3\011\uffe3\012\uffe3\016\uffe3" + "\026\uffe3\035\uffe3\040\uffe3\001\002\000\014\017\uffac\020" + "\uffac\022\uffa5\033\uffa5\040\uffa5\001\002\000\010\022\035" + "\033\uffae\040\uffae\001\002\000\006\017\uffdc\020\206\001" + "\002\000\006\033\203\040\202\001\002\000\012\017\uffe0" + "\022\uff96\033\uff96\040\uff96\001\002\000\004\017\201\001" + "\002\000\020\003\uffdf\011\uffdf\012\uffdf\016\uffdf\026\uffdf" + "\035\uffdf\040\uffdf\001\002\000\006\017\uffac\020\uffac\001" + "\002\000\004\034\205\001\002\000\020\003\uffe4\011\uffe4" + "\012\uffe4\016\uffe4\026\uffe4\035\uffe4\040\uffe4\001\002\000" + "\006\033\uffad\040\uffad\001\002\000\004\040\202\001\002" + "\000\004\017\210\001\002\000\020\003\uffdb\011\uffdb\012" + "\uffdb\016\uffdb\026\uffdb\035\uffdb\040\uffdb\001\002\000\006" + "\017\uffd8\020\uffd8\001\002\000\014\017\uffab\020\uffab\022" + "\uffa5\033\uffa5\040\uffa5\001\002\000\006\017\uffd5\020\uffd5" + "\001\002\000\006\017\uffda\020\224\001\002\000\006\033" + "\203\040\222\001\002\000\012\017\uffde\022\uff96\033\uff96" + "\040\uff96\001\002\000\020\003\uffe1\011\uffe1\012\uffe1\016" + "\uffe1\026\uffe1\035\uffe1\040\uffe1\001\002\000\004\017\221" + "\001\002\000\020\003\uffdd\011\uffdd\012\uffdd\016\uffdd\026" + "\uffdd\035\uffdd\040\uffdd\001\002\000\006\017\uffab\020\uffab" + "\001\002\000\020\003\uffe2\011\uffe2\012\uffe2\016\uffe2\026" + "\uffe2\035\uffe2\040\uffe2\001\002\000\004\040\222\001\002" + "\000\004\017\226\001\002\000\020\003\uffd9\011\uffd9\012" + "\uffd9\016\uffd9\026\uffd9\035\uffd9\040\uffd9\001\002\000\006" + "\017\uffd6\020\uffd6\001\002\000\042\003\uff95\006\uff95\007" + "\uff95\010\uff95\011\uff95\012\uff95\013\uff95\014\uff95\015\uff95" + "\016\uff95\026\uff95\027\uff95\030\uff95\031\uff95\035\uff95\040" + "\uff95\001\002\000\010\036\uffed\037\uffed\041\uffed\001\002" + "\000\004\041\233\001\002\000\022\007\uff93\010\uff93\011" + "\uff93\012\uff93\013\uff93\014\uff93\017\067\035\uff93\001\002" + "\000\020\007\uffef\010\uffef\011\uffef\012\uffef\013\uffef\014" + "\uffef\035\uffef\001\002\000\010\036\237\037\240\041\236" + "\001\002\000\022\007\uff93\010\uff93\011\uff93\012\uff93\013" + "\uff93\014\uff93\017\067\035\uff93\001\002\000\004\040\241" + "\001\002\000\004\040\241\001\002\000\012\022\uffea\036" + "\uffea\037\uffea\041\uffea\001\002\000\012\022\243\036\uffeb" + "\037\uffeb\041\uffeb\001\002\000\004\040\244\001\002\000" + "\012\022\uffe9\036\uffe9\037\uffe9\041\uffe9\001\002\000\012" + "\022\243\036\uffec\037\uffec\041\uffec\001\002\000\020\007" + "\uffee\010\uffee\011\uffee\012\uffee\013\uffee\014\uffee\035\uffee" + "\001\002\000\004\041\250\001\002\000\022\007\uff93\010" + "\uff93\011\uff93\012\uff93\013\uff93\014\uff93\017\067\035\uff93" + "\001\002\000\020\007\ufff0\010\ufff0\011\ufff0\012\ufff0\013" + "\ufff0\014\ufff0\035\ufff0\001\002\000\004\017\ufff8\001\002" + "\000\006\017\uffaf\022\254\001\002\000\044\003\030\006" + "\015\007\031\010\026\011\023\012\016\013\012\014\033" + "\015\017\016\032\021\255\026\014\027\024\030\022\031" + "\013\035\025\040\020\001\002\000\004\017\uffb0\001\002" + "\000\004\017\257\001\002\000\022\005\ufff7\007\ufff7\010" + "\ufff7\011\ufff7\012\ufff7\013\ufff7\014\ufff7\035\ufff7\001\002" + "\000\020\003\uff91\011\056\012\051\016\uff91\026\075\035" + "\055\040\uff91\001\002\000\010\003\uff91\016\127\040\uff91" + "\001\002\000\006\003\136\040\131\001\002\000\010\002" + "\ufffe\003\136\040\131\001\002\000\004\002\001\001\002" + "" }); /** Access to parse-action table. */ public short[][] action_table() {return _action_table;} /** <code>reduce_goto</code> table. */ protected static final short[][] _reduce_table = unpackFromStrings(new String[] { "\000\262\000\006\003\003\057\005\001\001\000\002\001" + "\001\000\010\012\051\014\257\024\053\001\001\000\006" + "\004\006\037\007\001\001\000\006\005\037\037\040\001" + "\001\000\002\001\001\000\006\017\020\054\026\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\004\060\033\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\004\054\035\001\001\000\002\001\001\000\002\001" + "\001\000\006\007\043\020\041\001\001\000\002\001\001" + "\000\002\001\001\000\010\017\252\021\251\054\026\001" + "\001\000\022\006\056\010\046\012\051\013\047\014\057" + "\022\062\023\052\024\053\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\016\017\173\025\214\027\213\034\212\045" + "\216\054\026\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\016\017\173\025\175\026\174\033" + "\170\044\171\054\026\001\001\000\002\001\001\000\016" + "\012\051\024\075\037\076\040\072\041\073\043\077\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\004\011\065\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\004\011\071" + "\001\001\000\002\001\001\000\006\015\124\037\125\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\004\041\100\001\001\000\002\001" + "\001\000\004\066\121\001\001\000\004\067\116\001\001" + "\000\004\070\104\001\001\000\012\042\112\047\107\052" + "\111\053\110\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\010\047\107\052\115\053\110\001\001" + "\000\002\001\001\000\002\001\001\000\012\042\117\047" + "\107\052\111\053\110\001\001\000\002\001\001\000\002" + "\001\001\000\012\042\122\047\107\052\111\053\110\001" + "\001\000\002\001\001\000\002\001\001\000\010\016\137" + "\030\140\046\136\001\001\000\002\001\001\000\002\001" + "\001\000\004\046\132\001\001\000\002\001\001\000\002" + "\001\001\000\004\071\133\001\001\000\002\001\001\000" + "\002\001\001\000\004\074\166\001\001\000\004\072\142" + "\001\001\000\006\030\141\046\136\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\004\073\144" + "\001\001\000\012\031\150\035\145\036\147\037\146\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\006\032\154\047\152\001\001\000\002\001\001\000" + "\006\037\157\051\160\001\001\000\006\047\107\053\155" + "\001\001\000\002\001\001\000\002\001\001\000\006\050" + "\161\054\162\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\010\031\150\036" + "\165\037\146\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\004" + "\064\206\001\001\000\010\026\174\033\170\044\203\001" + "\001\000\004\062\177\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\033\210\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\004\065\224\001\001\000\010" + "\027\213\034\212\045\222\001\001\000\004\063\217\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\004\034\226\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\004\056\234\001\001\000\002\001" + "\001\000\004\011\233\001\001\000\002\001\001\000\002" + "\001\001\000\004\011\245\001\001\000\004\055\244\001" + "\001\000\004\055\241\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\011\250" + "\001\001\000\002\001\001\000\004\061\255\001\001\000" + "\002\001\001\000\004\054\035\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\016\012\051\024" + "\075\037\076\040\260\041\073\043\077\001\001\000\006" + "\015\261\037\125\001\001\000\010\016\262\030\140\046" + "\136\001\001\000\006\030\141\046\136\001\001\000\002" + "\001\001" }); /** Access to <code>reduce_goto</code> table. */ public short[][] reduce_table() {return _reduce_table;} /** Instance of action encapsulation class. */ protected CUP$parser$actions action_obj; /** Action encapsulation object initializer. */ protected void init_actions() { action_obj = new CUP$parser$actions(this); } /** Invoke a user supplied parse action. */ public java_cup.runtime.Symbol do_action( int act_num, java_cup.runtime.lr_parser parser, java.util.Stack stack, int top) throws java.lang.Exception { /* call code in generated class */ return action_obj.CUP$parser$do_action(act_num, parser, stack, top); } /** Indicates start state. */ public int start_state() {return 0;} /** Indicates start production. */ public int start_production() {return 0;} /** <code>EOF</code> Symbol index. */ public int EOF_sym() {return 0;} /** <code>error</code> Symbol index. */ public int error_sym() {return 1;} /** User initialization code. */ public void user_init() throws java.lang.Exception { lexer.init(); } /** Scan to get the next Symbol. */ public java_cup.runtime.Symbol scan() throws java.lang.Exception { return lexer.next_token(); } /* override error routines */ public void report_fatal_error( String message, Object info) { done_parsing(); lexer.emit_error(message); System.err.println("Can't recover from previous error(s), giving up."); System.exit(1); } public void report_error(String message, Object info) { lexer.emit_error(message); } } /** Cup generated class to encapsulate user supplied action code.*/ class CUP$parser$actions { /** helper routine to clone a new production part adding a given label */ protected production_part add_lab(production_part part, String lab) throws internal_error { /* if there is no label, or this is an action, just return the original */ if (lab == null || part.is_action()) return part; /* otherwise build a new one with the given label attached */ return new symbol_part(((symbol_part)part).the_symbol(),lab); } /** max size of right hand side we will support */ protected final int MAX_RHS = 200; /** array for accumulating right hand side parts */ protected production_part[] rhs_parts = new production_part[MAX_RHS]; /** where we are currently in building a right hand side */ protected int rhs_pos = 0; /** start a new right hand side */ protected void new_rhs() {rhs_pos = 0; } /** add a new right hand side part */ protected void add_rhs_part(production_part part) throws java.lang.Exception { if (rhs_pos >= MAX_RHS) throw new Exception("Internal Error: Productions limited to " + MAX_RHS + " symbols and actions"); rhs_parts[rhs_pos] = part; rhs_pos++; } /** string to build up multiple part names */ protected String multipart_name = new String(); /** append a new name segment to the accumulated multipart name */ protected void append_multipart(String name) { String dot = ""; /* if we aren't just starting out, put on a dot */ if (multipart_name.length() != 0) dot = "."; multipart_name = multipart_name.concat(dot + name); } /** table of declared symbols -- contains production parts indexed by name */ protected Hashtable symbols = new Hashtable(); /** table of just non terminals -- contains non_terminals indexed by name */ protected Hashtable non_terms = new Hashtable(); /** declared start non_terminal */ protected non_terminal start_nt = null; /** left hand side non terminal of the current production */ protected non_terminal lhs_nt; /** Current precedence number */ int _cur_prec = 0; /** Current precedence side */ int _cur_side = assoc.no_prec; /** update the precedences we are declaring */ protected void update_precedence(int p) { _cur_side = p; _cur_prec++; } /** add relevant data to terminals */ protected void add_precedence(String term) { if (term == null) { System.err.println("Unable to add precedence to nonexistent terminal"); } else { symbol_part sp = (symbol_part)symbols.get(term); if (sp == null) { System.err.println("Could find terminal " + term + " while declaring precedence"); } else { java_cup.symbol sym = sp.the_symbol(); if (sym instanceof terminal) ((terminal)sym).set_precedence(_cur_side, _cur_prec); else System.err.println("Precedence declaration: Can't find terminal " + term); } } } private final parser parser; /** Constructor */ CUP$parser$actions(parser parser) { this.parser = parser; } /** Method with the actual generated action code. */ public final java_cup.runtime.Symbol CUP$parser$do_action( int CUP$parser$act_num, java_cup.runtime.lr_parser CUP$parser$parser, java.util.Stack CUP$parser$stack, int CUP$parser$top) throws java.lang.Exception { /* Symbol object for return from actions */ java_cup.runtime.Symbol CUP$parser$result; /* select the action based on the action number */ switch (CUP$parser$act_num) { /*. . . . . . . . . . . . . . . . . . . .*/ case 112: // empty ::= { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(29/*empty*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 111: // opt_semi ::= SEMI { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(7/*opt_semi*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 110: // opt_semi ::= { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(7/*opt_semi*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 109: // non_terminal ::= NONTERMINAL { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(8/*non_terminal*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 108: // non_terminal ::= NON TERMINAL { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(8/*non_terminal*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 107: // robust_id ::= error { String RESULT = null; lexer.emit_error("Illegal use of reserved word"); RESULT="ILLEGAL"; CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 106: // robust_id ::= NONASSOC { String RESULT = null; RESULT = "nonassoc"; CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 105: // robust_id ::= RIGHT { String RESULT = null; RESULT = "right"; CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 104: // robust_id ::= LEFT { String RESULT = null; RESULT = "left"; CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 103: // robust_id ::= PRECEDENCE { String RESULT = null; RESULT = "precedence"; CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 102: // robust_id ::= START { String RESULT = null; RESULT = "start"; CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 101: // robust_id ::= WITH { String RESULT = null; RESULT = "with"; CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 100: // robust_id ::= SCAN { String RESULT = null; RESULT = "scan"; CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 99: // robust_id ::= INIT { String RESULT = null; RESULT = "init"; CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 98: // robust_id ::= NONTERMINAL { String RESULT = null; RESULT = "nonterminal"; CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 97: // robust_id ::= NON { String RESULT = null; RESULT = "non"; CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 96: // robust_id ::= TERMINAL { String RESULT = null; RESULT = "terminal"; CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 95: // robust_id ::= PARSER { String RESULT = null; RESULT = "parser"; CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 94: // robust_id ::= ACTION { String RESULT = null; RESULT = "action"; CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 93: // robust_id ::= CODE { String RESULT = null; RESULT = "code"; CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 92: // robust_id ::= ID { String RESULT = null; int the_idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int the_idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String the_id = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = the_id; CUP$parser$result = new java_cup.runtime.Symbol(42/*robust_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 91: // label_id ::= robust_id { String RESULT = null; int the_idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int the_idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String the_id = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = the_id; CUP$parser$result = new java_cup.runtime.Symbol(38/*label_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 90: // symbol_id ::= error { String RESULT = null; lexer.emit_error("Illegal use of reserved word"); RESULT="ILLEGAL"; CUP$parser$result = new java_cup.runtime.Symbol(37/*symbol_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 89: // symbol_id ::= ID { String RESULT = null; int the_idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int the_idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String the_id = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = the_id; CUP$parser$result = new java_cup.runtime.Symbol(37/*symbol_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 88: // nt_id ::= error { String RESULT = null; lexer.emit_error("Illegal use of reserved word"); RESULT="ILLEGAL"; CUP$parser$result = new java_cup.runtime.Symbol(36/*nt_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 87: // nt_id ::= ID { String RESULT = null; int the_idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int the_idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String the_id = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = the_id; CUP$parser$result = new java_cup.runtime.Symbol(36/*nt_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 86: // new_non_term_id ::= ID { Object RESULT = null; int non_term_idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int non_term_idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String non_term_id = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; /* see if this non terminal has been declared before */ if (symbols.get(non_term_id) != null) { /* issue a message */ lexer.emit_error( "java_cup.runtime.Symbol \"" + non_term_id + "\" has already been declared"); } else { if (multipart_name.equals("")) { append_multipart("Object"); } /* build the non terminal object */ non_terminal this_nt = new non_terminal(non_term_id, multipart_name); /* put it in the non_terms table */ non_terms.put(non_term_id, this_nt); /* build a production_part and put it in the symbols table */ symbols.put(non_term_id, new symbol_part(this_nt)); } CUP$parser$result = new java_cup.runtime.Symbol(26/*new_non_term_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 85: // new_term_id ::= ID { Object RESULT = null; int term_idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int term_idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String term_id = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; /* see if this terminal has been declared before */ if (symbols.get(term_id) != null) { /* issue a message */ lexer.emit_error("java_cup.runtime.Symbol \"" + term_id + "\" has already been declared"); } else { /* if no type declared, declare one */ if (multipart_name.equals("")) { append_multipart("Object"); } /* build a production_part and put it in the table */ symbols.put(term_id, new symbol_part(new terminal(term_id, multipart_name))); } CUP$parser$result = new java_cup.runtime.Symbol(25/*new_term_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 84: // type_id ::= type_id LBRACK RBRACK { Object RESULT = null; multipart_name = multipart_name.concat("[]"); CUP$parser$result = new java_cup.runtime.Symbol(19/*type_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 83: // type_id ::= multipart_id { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(19/*type_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 82: // import_id ::= multipart_id { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(15/*import_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 81: // import_id ::= multipart_id DOT STAR { Object RESULT = null; append_multipart("*"); CUP$parser$result = new java_cup.runtime.Symbol(15/*import_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 80: // multipart_id ::= robust_id { Object RESULT = null; int an_idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int an_idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String an_id = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; append_multipart(an_id); CUP$parser$result = new java_cup.runtime.Symbol(13/*multipart_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 79: // multipart_id ::= multipart_id DOT robust_id { Object RESULT = null; int another_idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int another_idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String another_id = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; append_multipart(another_id); CUP$parser$result = new java_cup.runtime.Symbol(13/*multipart_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 78: // opt_label ::= empty { String RESULT = null; RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(39/*opt_label*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 77: // opt_label ::= COLON label_id { String RESULT = null; int labidleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int labidright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String labid = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = labid; CUP$parser$result = new java_cup.runtime.Symbol(39/*opt_label*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 76: // prod_part ::= CODE_STRING { Object RESULT = null; int code_strleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int code_strright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String code_str = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; /* add a new production part */ add_rhs_part(new action_part(code_str)); CUP$parser$result = new java_cup.runtime.Symbol(24/*prod_part*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 75: // prod_part ::= symbol_id opt_label { Object RESULT = null; int symidleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int symidright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; String symid = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; int labidleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int labidright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String labid = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; /* try to look up the id */ production_part symb = (production_part)symbols.get(symid); /* if that fails, symbol is undeclared */ if (symb == null) { if (lexer.error_count == 0) lexer.emit_error("java_cup.runtime.Symbol \"" + symid + "\" has not been declared"); } else { /* add a labeled production part */ add_rhs_part(add_lab(symb, labid)); } CUP$parser$result = new java_cup.runtime.Symbol(24/*prod_part*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 74: // prod_part_list ::= empty { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(23/*prod_part_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 73: // prod_part_list ::= prod_part_list prod_part { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(23/*prod_part_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 72: // rhs ::= prod_part_list { Object RESULT = null; if (lhs_nt != null) { /* build the production */ production p = new production(lhs_nt, rhs_parts, rhs_pos); /* if we have no start non-terminal declared and this is the first production, make its lhs nt the start_nt and build a special start production for it. */ if (start_nt == null) { start_nt = lhs_nt; /* build a special start production */ new_rhs(); add_rhs_part(add_lab(new symbol_part(start_nt),"start_val")); add_rhs_part(new symbol_part(terminal.EOF)); add_rhs_part(new action_part("RESULT = start_val;")); emit.start_production = new production(non_terminal.START_nt, rhs_parts, rhs_pos); new_rhs(); } } /* reset the rhs accumulation in any case */ new_rhs(); CUP$parser$result = new java_cup.runtime.Symbol(28/*rhs*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 71: // rhs ::= prod_part_list PERCENT_PREC term_id { Object RESULT = null; int term_nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int term_nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String term_name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; java_cup.symbol sym = null; if (lhs_nt != null) { /* Find the precedence symbol */ if (term_name == null) { System.err.println("No terminal for contextual precedence"); sym = null; } else { sym = ((symbol_part)symbols.get(term_name)).the_symbol(); } /* build the production */ production p; if ((sym!=null) && (sym instanceof terminal)) { p = new production(lhs_nt, rhs_parts, rhs_pos, ((terminal)sym).precedence_num(), ((terminal)sym).precedence_side()); ((symbol_part)symbols.get(term_name)).the_symbol().note_use(); } else { System.err.println("Invalid terminal " + term_name + " for contextual precedence assignment"); p = new production(lhs_nt, rhs_parts, rhs_pos); } /* if we have no start non-terminal declared and this is the first production, make its lhs nt the start_nt and build a special start production for it. */ if (start_nt == null) { start_nt = lhs_nt; /* build a special start production */ new_rhs(); add_rhs_part(add_lab(new symbol_part(start_nt),"start_val")); add_rhs_part(new symbol_part(terminal.EOF)); add_rhs_part(new action_part("RESULT = start_val;")); if ((sym!=null) && (sym instanceof terminal)) { emit.start_production = new production(non_terminal.START_nt, rhs_parts, rhs_pos, ((terminal)sym).precedence_num(), ((terminal)sym).precedence_side()); } else { emit.start_production = new production(non_terminal.START_nt, rhs_parts, rhs_pos); } new_rhs(); } } /* reset the rhs accumulation in any case */ new_rhs(); CUP$parser$result = new java_cup.runtime.Symbol(28/*rhs*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 70: // rhs_list ::= rhs { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(27/*rhs_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 69: // rhs_list ::= rhs_list BAR rhs { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(27/*rhs_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 68: // production ::= error NT$13 SEMI { Object RESULT = null; // propagate RESULT from NT$13 if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value != null ) RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; CUP$parser$result = new java_cup.runtime.Symbol(22/*production*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 67: // NT$13 ::= { Object RESULT = null; lexer.emit_error("Syntax Error"); CUP$parser$result = new java_cup.runtime.Symbol(58/*NT$13*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 66: // production ::= nt_id NT$11 COLON_COLON_EQUALS NT$12 rhs_list SEMI { Object RESULT = null; // propagate RESULT from NT$11 if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value != null ) RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value; // propagate RESULT from NT$12 if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value != null ) RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int lhs_idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left; int lhs_idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).right; String lhs_id = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value; CUP$parser$result = new java_cup.runtime.Symbol(22/*production*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 65: // NT$12 ::= { Object RESULT = null; int lhs_idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int lhs_idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; String lhs_id = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; CUP$parser$result = new java_cup.runtime.Symbol(57/*NT$12*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 64: // NT$11 ::= { Object RESULT = null; int lhs_idleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int lhs_idright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String lhs_id = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; /* lookup the lhs nt */ lhs_nt = (non_terminal)non_terms.get(lhs_id); /* if it wasn't declared, emit a message */ if (lhs_nt == null) { if (lexer.error_count == 0) lexer.emit_error("LHS non terminal \"" + lhs_id + "\" has not been declared"); } /* reset the rhs accumulation */ new_rhs(); CUP$parser$result = new java_cup.runtime.Symbol(56/*NT$11*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 63: // production_list ::= production { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(12/*production_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 62: // production_list ::= production_list production { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(12/*production_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 61: // start_spec ::= empty { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(11/*start_spec*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 60: // start_spec ::= START WITH nt_id NT$10 SEMI { Object RESULT = null; // propagate RESULT from NT$10 if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value != null ) RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; int start_nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int start_nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; String start_name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; CUP$parser$result = new java_cup.runtime.Symbol(11/*start_spec*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 59: // NT$10 ::= { Object RESULT = null; int start_nameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int start_nameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String start_name = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; /* verify that the name has been declared as a non terminal */ non_terminal nt = (non_terminal)non_terms.get(start_name); if (nt == null) { lexer.emit_error( "Start non terminal \"" + start_name + "\" has not been declared"); } else { /* remember the non-terminal for later */ start_nt = nt; /* build a special start production */ new_rhs(); add_rhs_part(add_lab(new symbol_part(start_nt), "start_val")); add_rhs_part(new symbol_part(terminal.EOF)); add_rhs_part(new action_part("RESULT = start_val;")); emit.start_production = new production(non_terminal.START_nt, rhs_parts, rhs_pos); new_rhs(); } CUP$parser$result = new java_cup.runtime.Symbol(55/*NT$10*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 58: // term_id ::= symbol_id { String RESULT = null; int symleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int symright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String sym = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; /* check that the symbol_id is a terminal */ if (symbols.get(sym) == null) { /* issue a message */ lexer.emit_error("Terminal \"" + sym + "\" has not been declared"); } RESULT = sym; CUP$parser$result = new java_cup.runtime.Symbol(41/*term_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 57: // terminal_id ::= term_id { String RESULT = null; int symleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int symright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String sym = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; add_precedence(sym); RESULT = sym; CUP$parser$result = new java_cup.runtime.Symbol(40/*terminal_id*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 56: // terminal_list ::= terminal_id { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(32/*terminal_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 55: // terminal_list ::= terminal_list COMMA terminal_id { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(32/*terminal_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 54: // preced ::= PRECEDENCE NONASSOC NT$9 terminal_list SEMI { Object RESULT = null; // propagate RESULT from NT$9 if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value != null ) RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; CUP$parser$result = new java_cup.runtime.Symbol(31/*preced*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 53: // NT$9 ::= { Object RESULT = null; update_precedence(assoc.nonassoc); CUP$parser$result = new java_cup.runtime.Symbol(54/*NT$9*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 52: // preced ::= PRECEDENCE RIGHT NT$8 terminal_list SEMI { Object RESULT = null; // propagate RESULT from NT$8 if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value != null ) RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; CUP$parser$result = new java_cup.runtime.Symbol(31/*preced*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 51: // NT$8 ::= { Object RESULT = null; update_precedence(assoc.right); CUP$parser$result = new java_cup.runtime.Symbol(53/*NT$8*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 50: // preced ::= PRECEDENCE LEFT NT$7 terminal_list SEMI { Object RESULT = null; // propagate RESULT from NT$7 if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value != null ) RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; CUP$parser$result = new java_cup.runtime.Symbol(31/*preced*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 49: // NT$7 ::= { Object RESULT = null; update_precedence(assoc.left); CUP$parser$result = new java_cup.runtime.Symbol(52/*NT$7*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 48: // precedence_l ::= preced { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(33/*precedence_l*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 47: // precedence_l ::= precedence_l preced { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(33/*precedence_l*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 46: // precedence_list ::= empty { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(30/*precedence_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 45: // precedence_list ::= precedence_l { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(30/*precedence_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 44: // non_term_name_list ::= new_non_term_id { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(21/*non_term_name_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 43: // non_term_name_list ::= non_term_name_list COMMA new_non_term_id { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(21/*non_term_name_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 42: // term_name_list ::= new_term_id { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(20/*term_name_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 41: // term_name_list ::= term_name_list COMMA new_term_id { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(20/*term_name_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 40: // declares_non_term ::= non_term_name_list NT$6 SEMI { Object RESULT = null; // propagate RESULT from NT$6 if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value != null ) RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; CUP$parser$result = new java_cup.runtime.Symbol(35/*declares_non_term*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 39: // NT$6 ::= { Object RESULT = null; /* reset the accumulated multipart name */ multipart_name = new String(); CUP$parser$result = new java_cup.runtime.Symbol(51/*NT$6*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 38: // declares_term ::= term_name_list NT$5 SEMI { Object RESULT = null; // propagate RESULT from NT$5 if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value != null ) RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; CUP$parser$result = new java_cup.runtime.Symbol(34/*declares_term*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 37: // NT$5 ::= { Object RESULT = null; /* reset the accumulated multipart name */ multipart_name = new String(); CUP$parser$result = new java_cup.runtime.Symbol(50/*NT$5*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 36: // symbol ::= non_terminal error NT$4 SEMI { Object RESULT = null; // propagate RESULT from NT$4 if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value != null ) RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; CUP$parser$result = new java_cup.runtime.Symbol(18/*symbol*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 35: // NT$4 ::= { Object RESULT = null; /* reset the accumulated multipart name */ multipart_name = new String(); CUP$parser$result = new java_cup.runtime.Symbol(49/*NT$4*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 34: // symbol ::= TERMINAL error NT$3 SEMI { Object RESULT = null; // propagate RESULT from NT$3 if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value != null ) RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; CUP$parser$result = new java_cup.runtime.Symbol(18/*symbol*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 33: // NT$3 ::= { Object RESULT = null; /* reset the accumulated multipart name */ multipart_name = new String(); CUP$parser$result = new java_cup.runtime.Symbol(48/*NT$3*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 32: // symbol ::= non_terminal declares_non_term { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(18/*symbol*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 31: // symbol ::= non_terminal type_id declares_non_term { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(18/*symbol*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 30: // symbol ::= TERMINAL declares_term { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(18/*symbol*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 29: // symbol ::= TERMINAL type_id declares_term { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(18/*symbol*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 28: // symbol_list ::= symbol { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(10/*symbol_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 27: // symbol_list ::= symbol_list symbol { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(10/*symbol_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 26: // scan_code ::= SCAN WITH CODE_STRING opt_semi { Object RESULT = null; int user_codeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int user_coderight = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; String user_code = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; if (emit.scan_code!=null) lexer.emit_error("Redundant scan code (skipping)"); else /* save the user code */ emit.scan_code = user_code; CUP$parser$result = new java_cup.runtime.Symbol(17/*scan_code*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 25: // init_code ::= INIT WITH CODE_STRING opt_semi { Object RESULT = null; int user_codeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int user_coderight = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; String user_code = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; if (emit.init_code!=null) lexer.emit_error("Redundant init code (skipping)"); else /* save the user code */ emit.init_code = user_code; CUP$parser$result = new java_cup.runtime.Symbol(16/*init_code*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 24: // qualified_identifier ::= qualified_identifier DOT ID { String RESULT = null; int qidleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int qidright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; String qid = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int xleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int xright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String x = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = qid + "." + x; CUP$parser$result = new java_cup.runtime.Symbol(43/*qualified_identifier*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 23: // qualified_identifier ::= ID { String RESULT = null; int xleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int xright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String x = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = x; CUP$parser$result = new java_cup.runtime.Symbol(43/*qualified_identifier*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 22: // extendsimpls ::= extendsimpls IMPLEMENTS qualified_identifier { String RESULT = null; int eleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int eright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; String e = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int qidleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int qidright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String qid = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = e + " implements " + qid; CUP$parser$result = new java_cup.runtime.Symbol(44/*extendsimpls*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 21: // extendsimpls ::= extendsimpls EXTENDS qualified_identifier { String RESULT = null; int eleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int eright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; String e = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int qidleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int qidright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String qid = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = e + " extends " + qid; CUP$parser$result = new java_cup.runtime.Symbol(44/*extendsimpls*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 20: // extendsimpls ::= { String RESULT = null; RESULT = ""; CUP$parser$result = new java_cup.runtime.Symbol(44/*extendsimpls*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 19: // parser_code_part ::= PARSER ID extendsimpls CODE_STRING opt_semi { Object RESULT = null; int classnameleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left; int classnameright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right; String classname = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value; int eleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left; int eright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right; String e = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value; int user_codeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int user_coderight = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; String user_code = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; if (emit.parser_code!=null) { lexer.emit_error("Redundant parser code (skipping)"); } else { emit.parser_code = user_code; emit.parser_class_name = classname; emit.extendsimpls = e; } CUP$parser$result = new java_cup.runtime.Symbol(9/*parser_code_part*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 18: // parser_code_part ::= PARSER CODE CODE_STRING opt_semi { Object RESULT = null; int user_codeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int user_coderight = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; String user_code = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; if (emit.parser_code!=null) lexer.emit_error("Redundant parser code (skipping)"); else /* save the user included code string */ emit.parser_code = user_code; CUP$parser$result = new java_cup.runtime.Symbol(9/*parser_code_part*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 17: // action_code_part ::= ACTION CODE CODE_STRING opt_semi { Object RESULT = null; int user_codeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int user_coderight = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; String user_code = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; if (emit.action_code!=null) lexer.emit_error("Redundant action code (skipping)"); else /* save the user included code string */ emit.action_code = user_code; CUP$parser$result = new java_cup.runtime.Symbol(4/*action_code_part*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 16: // code_parts ::= code_parts code_part { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(5/*code_parts*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 15: // code_parts ::= { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(5/*code_parts*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 14: // code_part ::= scan_code { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(6/*code_part*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 13: // code_part ::= init_code { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(6/*code_part*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 12: // code_part ::= parser_code_part { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(6/*code_part*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 11: // code_part ::= action_code_part { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(6/*code_part*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 10: // import_spec ::= IMPORT import_id NT$2 SEMI { Object RESULT = null; // propagate RESULT from NT$2 if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value != null ) RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; CUP$parser$result = new java_cup.runtime.Symbol(14/*import_spec*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 9: // NT$2 ::= { Object RESULT = null; /* save this import on the imports list */ emit.import_list.push(multipart_name); /* reset the accumulated multipart name */ multipart_name = new String(); CUP$parser$result = new java_cup.runtime.Symbol(47/*NT$2*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 8: // import_list ::= empty { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(3/*import_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 7: // import_list ::= import_list import_spec { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(3/*import_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 6: // package_spec ::= empty { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(2/*package_spec*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 5: // package_spec ::= PACKAGE multipart_id NT$1 SEMI { Object RESULT = null; // propagate RESULT from NT$1 if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value != null ) RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; CUP$parser$result = new java_cup.runtime.Symbol(2/*package_spec*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 4: // NT$1 ::= { Object RESULT = null; /* save the package name */ emit.package_name = multipart_name; /* reset the accumulated multipart name */ multipart_name = new String(); CUP$parser$result = new java_cup.runtime.Symbol(46/*NT$1*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 3: // spec ::= error symbol_list precedence_list start_spec production_list { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(1/*spec*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 2: // spec ::= NT$0 package_spec import_list code_parts symbol_list precedence_list start_spec production_list { Object RESULT = null; // propagate RESULT from NT$0 if ( ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-7)).value != null ) RESULT = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-7)).value; CUP$parser$result = new java_cup.runtime.Symbol(1/*spec*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 1: // NT$0 ::= { Object RESULT = null; /* declare "error" as a terminal */ symbols.put("error", new symbol_part(terminal.error)); /* declare start non terminal */ non_terms.put("$START", non_terminal.START_nt); CUP$parser$result = new java_cup.runtime.Symbol(45/*NT$0*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 0: // $START ::= spec EOF { Object RESULT = null; int start_valleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int start_valright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; Object start_val = (Object)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; RESULT = start_val; CUP$parser$result = new java_cup.runtime.Symbol(0/*$START*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } /* ACCEPT */ CUP$parser$parser.done_parsing(); return CUP$parser$result; default: { throw new Exception( "Invalid action number found in internal parse table"); } } } }