//---------------------------------------------------- // The following code was generated by CUP v0.10k // Wed May 03 15:15:45 NZST 2006 //---------------------------------------------------- package grammar; import java.util.*; import java.io.*; import java_cup.runtime.*; /** CUP v0.10k generated parser. * @version Wed May 03 15:15:45 NZST 2006 */ 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\253\000\002\002\004\000\002\003\005\000\002\004" + "\010\000\002\005\010\000\002\006\002\000\002\006\003" + "\000\002\007\005\000\002\010\003\000\002\010\005\000" + "\002\011\003\000\002\012\002\000\002\012\003\000\002" + "\013\005\000\002\014\003\000\002\014\005\000\002\015" + "\005\000\002\016\003\000\002\016\005\000\002\017\003" + "\000\002\017\004\000\002\017\004\000\002\017\003\000" + "\002\017\004\000\002\017\004\000\002\017\003\000\002" + "\017\004\000\002\017\004\000\002\017\003\000\002\020" + "\002\000\002\020\003\000\002\021\005\000\002\022\003" + "\000\002\022\005\000\002\023\005\000\002\024\003\000" + "\002\024\003\000\002\024\003\000\002\025\003\000\002" + "\025\003\000\002\025\003\000\002\026\005\000\002\027" + "\005\000\002\030\003\000\002\030\004\000\002\031\003" + "\000\002\031\003\000\002\031\003\000\002\031\003\000" + "\002\032\010\000\002\033\003\000\002\033\005\000\002" + "\034\005\000\002\035\003\000\002\035\005\000\002\036" + "\002\000\002\036\005\000\002\037\002\000\002\037\005" + "\000\002\040\010\000\002\040\006\000\002\041\003\000" + "\002\041\005\000\002\042\002\000\002\042\007\000\002" + "\043\005\000\002\044\005\000\002\045\004\000\002\046" + "\002\000\002\046\003\000\002\047\005\000\002\050\002" + "\000\002\050\005\000\002\051\005\000\002\052\002\000" + "\002\052\005\000\002\053\002\000\002\053\005\000\002" + "\053\005\000\002\054\004\000\002\055\004\000\002\056" + "\005\000\002\056\010\000\002\057\007\000\002\057\012" + "\000\002\060\003\000\002\060\005\000\002\061\006\000" + "\002\061\005\000\002\061\006\000\002\061\004\000\002" + "\062\003\000\002\062\005\000\002\063\003\000\002\063" + "\003\000\002\064\005\000\002\064\003\000\002\064\006" + "\000\002\064\006\000\002\064\003\000\002\064\004\000" + "\002\064\002\000\002\065\003\000\002\065\003\000\002" + "\065\003\000\002\065\003\000\002\066\003\000\002\066" + "\006\000\002\066\005\000\002\066\004\000\002\067\003" + "\000\002\067\005\000\002\071\003\000\002\071\005\000" + "\002\071\007\000\002\070\003\000\002\070\005\000\002" + "\072\003\000\002\072\005\000\002\072\005\000\002\072" + "\005\000\002\072\005\000\002\072\005\000\002\072\005" + "\000\002\072\005\000\002\073\003\000\002\073\004\000" + "\002\073\004\000\002\073\005\000\002\073\005\000\002" + "\073\005\000\002\074\003\000\002\074\005\000\002\074" + "\005\000\002\074\005\000\002\074\005\000\002\074\005" + "\000\002\075\003\000\002\075\003\000\002\075\003\000" + "\002\075\003\000\002\075\003\000\002\075\003\000\002" + "\075\003\000\002\075\005\000\002\075\003\000\002\075" + "\003\000\002\075\004\000\002\076\006\000\002\077\005" + "\000\002\077\004\000\002\100\003\000\002\100\005\000" + "\002\101\003\000\002\101\005\000\002\102\005\000\002" + "\103\003\000\002\103\005\000\002\104\006\000\002\104" + "\010\000\002\104\007\000\002\105\003\000\002\105\005" + "\000\002\106\002\000\002\106\005\000\002\107\006\000" + "\002\107\006\000\002\107\012\000\002\107\012\000\002" + "\110\006\000\002\111\003\000\002\111\005" }); /** Access to production table. */ public short[][] production_table() {return _production_table;} /** Parse-action table. */ protected static final short[][] _action_table = unpackFromStrings(new String[] { "\000\u014c\000\004\034\006\001\002\000\004\002\u014e\001" + "\002\000\020\006\ufffd\010\ufffd\020\ufffd\024\017\033\ufffd" + "\042\ufffd\044\ufffd\001\002\000\004\074\007\001\002\000" + "\004\063\010\001\002\000\006\064\uffb8\065\uffb8\001\002" + "\000\006\064\013\065\012\001\002\000\004\074\015\001" + "\002\000\004\066\014\001\002\000\020\006\uffff\010\uffff" + "\020\uffff\024\uffff\033\uffff\042\uffff\044\uffff\001\002\000" + "\012\064\uffb7\065\uffb7\066\uffb7\067\uffb7\001\002\000\016" + "\006\ufff7\010\032\020\ufff7\033\ufff7\042\ufff7\044\ufff7\001" + "\002\000\004\076\023\001\002\000\004\062\022\001\002" + "\000\016\006\ufffc\010\ufffc\020\ufffc\033\ufffc\042\ufffc\044" + "\ufffc\001\002\000\004\002\000\001\002\000\006\065\ufff8" + "\066\ufff8\001\002\000\006\065\026\066\027\001\002\000" + "\006\065\ufffa\066\ufffa\001\002\000\004\076\023\001\002" + "\000\016\006\ufffb\010\ufffb\020\ufffb\033\ufffb\042\ufffb\044" + "\ufffb\001\002\000\006\065\ufff9\066\ufff9\001\002\000\014" + "\006\ufff6\020\ufff6\033\ufff6\042\ufff6\044\ufff6\001\002\000" + "\004\074\u0148\001\002\000\014\006\uffe5\020\uffe5\033\uffe5" + "\042\036\044\uffe5\001\002\000\012\006\uffe4\020\uffe4\033" + "\uffe4\044\uffe4\001\002\000\012\006\uffbe\020\uffbe\033\uffbe" + "\044\163\001\002\000\004\074\040\001\002\000\004\066" + "\uffe2\001\002\000\004\054\044\001\002\000\004\066\042" + "\001\002\000\014\006\uffe3\020\uffe3\033\uffe3\044\uffe3\074" + "\040\001\002\000\004\066\uffe1\001\002\000\034\005\073" + "\016\054\032\055\035\065\037\063\050\050\051\067\063" + "\061\073\046\074\045\076\056\077\064\101\051\001\002" + "\000\016\015\uffdc\064\uffdc\065\uffdc\066\uffdc\070\uffe9\072" + "\uffdc\001\002\000\004\074\162\001\002\000\010\015\uffdf" + "\064\uffdf\066\uffdf\001\002\000\010\074\161\076\157\077" + "\160\001\002\000\020\015\uffe6\064\uffe6\065\uffe6\066\uffe6" + "\067\uffe6\070\uffe6\072\uffe6\001\002\000\010\015\uffd2\064" + "\uffd2\066\uffd2\001\002\000\004\070\155\001\002\000\004" + "\030\153\001\002\000\012\005\073\016\054\035\065\037" + "\063\001\002\000\020\015\uffef\064\uffef\065\uffef\066\uffef" + "\067\uffef\070\uffef\072\uffef\001\002\000\004\066\uffe0\001" + "\002\000\010\015\uffd4\064\uffd4\066\uffd4\001\002\000\006" + "\064\uffb8\065\uffb8\001\002\000\010\015\uffdd\064\uffdd\066" + "\uffdd\001\002\000\004\030\146\001\002\000\020\015\uffec" + "\064\uffec\065\uffec\066\uffec\067\uffec\070\uffec\072\uffec\001" + "\002\000\006\015\uffcb\066\uffcb\001\002\000\014\015\uffdb" + "\064\uffdb\065\uffdb\066\uffdb\072\uffdb\001\002\000\010\074" + "\110\076\106\077\107\001\002\000\010\015\uffd5\064\uffd5" + "\066\uffd5\001\002\000\010\015\uffd7\064\uffd7\066\uffd7\001" + "\002\000\014\015\uffda\064\uffda\065\uffda\066\uffda\072\uffda" + "\001\002\000\004\071\076\001\002\000\010\015\uffd3\064" + "\uffd3\066\uffd3\001\002\000\010\015\uffde\064\uffde\066\uffde" + "\001\002\000\020\050\050\051\067\063\061\074\045\076" + "\056\077\064\101\051\001\002\000\006\065\uffd0\072\uffd0" + "\001\002\000\006\065\101\072\102\001\002\000\020\050" + "\050\051\067\063\061\074\045\076\056\077\064\101\051" + "\001\002\000\004\030\103\001\002\000\034\005\073\016" + "\054\032\055\035\065\037\063\050\050\051\067\063\061" + "\073\046\074\045\076\056\077\064\101\051\001\002\000" + "\010\015\uffd1\064\uffd1\066\uffd1\001\002\000\006\065\uffcf" + "\072\uffcf\001\002\000\020\015\uffed\064\uffed\065\uffed\066" + "\uffed\067\uffed\070\uffed\072\uffed\001\002\000\020\015\uffea" + "\064\uffea\065\uffea\066\uffea\067\uffea\070\uffea\072\uffea\001" + "\002\000\020\015\uffe7\064\uffe7\065\uffe7\066\uffe7\067\uffe7" + "\070\uffe7\072\uffe7\001\002\000\004\015\145\001\002\000" + "\010\015\uffcd\064\uffcd\066\113\001\002\000\016\007\117" + "\015\uffc9\064\uffc9\065\uffb8\066\uffc9\067\uffb8\001\002\000" + "\006\015\uffcc\064\uffcc\001\002\000\010\015\uffca\064\uffca" + "\066\uffca\001\002\000\006\065\012\067\143\001\002\000" + "\004\074\120\001\002\000\006\030\122\067\121\001\002" + "\000\004\074\140\001\002\000\024\015\uffc3\050\050\051" + "\067\064\uffc3\066\uffc3\074\123\076\056\077\064\101\051" + "\001\002\000\016\015\uffe9\064\uffe9\065\uffe9\066\uffe9\067" + "\uffe9\072\uffe9\001\002\000\010\015\uffc6\064\uffc6\066\136" + "\001\002\000\006\065\ufff1\067\ufff1\001\002\000\006\065" + "\130\067\131\001\002\000\010\015\uffc5\064\uffc5\066\uffc5" + "\001\002\000\016\050\050\051\067\074\123\076\056\077" + "\064\101\051\001\002\000\004\063\132\001\002\000\006" + "\064\uffcb\066\uffcb\001\002\000\004\064\134\001\002\000" + "\010\015\uffc2\064\uffc2\066\uffc2\001\002\000\006\065\ufff0" + "\067\ufff0\001\002\000\024\015\uffc3\050\050\051\067\064" + "\uffc3\066\uffc3\074\123\076\056\077\064\101\051\001\002" + "\000\010\015\uffc4\064\uffc4\066\uffc4\001\002\000\004\030" + "\141\001\002\000\024\015\uffc3\050\050\051\067\064\uffc3" + "\066\uffc3\074\123\076\056\077\064\101\051\001\002\000" + "\010\015\uffc7\064\uffc7\066\136\001\002\000\034\005\073" + "\016\054\032\055\035\065\037\063\050\050\051\067\063" + "\061\073\046\074\045\076\056\077\064\101\051\001\002" + "\000\010\015\uffc8\064\uffc8\066\uffc8\001\002\000\010\015" + "\uffce\064\uffce\066\uffce\001\002\000\020\050\050\051\067" + "\063\061\074\045\076\056\077\064\101\051\001\002\000" + "\010\015\uffc1\064\uffc1\066\uffc1\001\002\000\006\064\151" + "\065\012\001\002\000\014\015\uffd9\064\uffd9\065\uffd9\066" + "\uffd9\072\uffd9\001\002\000\010\015\uffd6\064\uffd6\066\uffd6" + "\001\002\000\034\005\073\016\054\032\055\035\065\037" + "\063\050\050\051\067\063\061\073\046\074\045\076\056" + "\077\064\101\051\001\002\000\010\015\uffc0\064\uffc0\066" + "\uffc0\001\002\000\016\050\050\051\067\074\123\076\056" + "\077\064\101\051\001\002\000\014\015\uffd8\064\uffd8\065" + "\uffd8\066\uffd8\072\uffd8\001\002\000\020\015\uffee\064\uffee" + "\065\uffee\066\uffee\067\uffee\070\uffee\072\uffee\001\002\000" + "\020\015\uffeb\064\uffeb\065\uffeb\066\uffeb\067\uffeb\070\uffeb" + "\072\uffeb\001\002\000\020\015\uffe8\064\uffe8\065\uffe8\066" + "\uffe8\067\uffe8\070\uffe8\072\uffe8\001\002\000\010\015\uffbf" + "\064\uffbf\066\uffbf\001\002\000\004\066\uffbb\001\002\000" + "\010\006\uffbd\020\uffbd\033\uffbd\001\002\000\010\006\uffb6" + "\020\uffb6\033\uffb6\001\002\000\010\006\173\020\176\033" + "\171\001\002\000\006\062\ufffe\066\ufffe\001\002\000\020" + "\006\ufffd\010\ufffd\020\ufffd\024\017\033\ufffd\042\ufffd\044" + "\ufffd\001\002\000\004\074\u0139\001\002\000\020\006\ufffd" + "\010\ufffd\020\ufffd\024\017\033\ufffd\042\ufffd\044\ufffd\001" + "\002\000\036\006\173\007\247\015\uff9d\017\255\021\235" + "\022\242\036\256\045\236\046\243\066\uff9d\074\233\076" + "\241\104\244\105\237\001\002\000\004\066\232\001\002" + "\000\004\066\231\001\002\000\004\074\177\001\002\000" + "\006\063\200\067\201\001\002\000\014\020\211\033\205" + "\044\204\065\uffb8\067\uffb8\001\002\000\004\074\202\001" + "\002\000\004\066\203\001\002\000\020\006\uffaf\010\uffaf" + "\020\uffaf\024\uffaf\033\uffaf\042\uffaf\044\uffaf\001\002\000" + "\006\065\uffb8\067\uffb8\001\002\000\010\064\uffb8\065\uffb8" + "\066\uffb8\001\002\000\006\064\220\066\217\001\002\000" + "\006\065\012\067\215\001\002\000\006\064\uffad\066\uffad" + "\001\002\000\006\065\uffb8\067\uffb8\001\002\000\006\065" + "\012\067\213\001\002\000\034\005\073\016\054\032\055" + "\035\065\037\063\050\050\051\067\063\061\073\046\074" + "\045\076\056\077\064\101\051\001\002\000\006\064\uffa9" + "\066\uffa9\001\002\000\034\005\073\016\054\032\055\035" + "\065\037\063\050\050\051\067\063\061\073\046\074\045" + "\076\056\077\064\101\051\001\002\000\006\064\uffaa\066" + "\uffaa\001\002\000\014\020\211\033\205\044\204\065\uffb8" + "\067\uffb8\001\002\000\004\067\221\001\002\000\004\074" + "\222\001\002\000\004\066\223\001\002\000\020\006\uffae" + "\010\uffae\020\uffae\024\uffae\033\uffae\042\uffae\044\uffae\001" + "\002\000\006\064\uffac\066\uffac\001\002\000\010\064\uffa8" + "\065\012\066\uffa8\001\002\000\006\065\012\067\227\001" + "\002\000\034\005\073\016\054\032\055\035\065\037\063" + "\050\050\051\067\063\061\073\046\074\045\076\056\077" + "\064\101\051\001\002\000\006\064\uffab\066\uffab\001\002" + "\000\010\006\uffb4\020\uffb4\033\uffb4\001\002\000\010\006" + "\uffb5\020\uffb5\033\uffb5\001\002\000\024\014\uff9f\015\uff9f" + "\043\uff9f\047\uff98\062\uff98\063\352\066\uff9f\071\uff98\073" + "\uff98\001\002\000\010\015\uff66\043\uff66\066\uff66\001\002" + "\000\004\076\u0137\001\002\000\032\026\300\027\274\050" + "\271\051\304\063\301\071\272\074\270\075\310\076\276" + "\077\303\100\302\101\273\001\002\000\004\063\u0131\001" + "\002\000\012\014\uffa2\015\uffa2\043\uffa2\066\uffa2\001\002" + "\000\004\067\u012f\001\002\000\032\026\300\027\274\050" + "\271\051\304\063\301\071\272\074\270\075\310\076\276" + "\077\303\100\302\101\273\001\002\000\004\074\u0125\001" + "\002\000\004\063\u0118\001\002\000\012\014\uff9a\015\uff9a" + "\043\uff9a\066\uff9a\001\002\000\012\014\uff9c\015\uff9c\043" + "\uff9c\066\uff9c\001\002\000\032\026\300\027\274\050\271" + "\051\304\063\301\071\272\074\270\075\310\076\276\077" + "\303\100\302\101\273\001\002\000\012\014\uffa4\015\uffa4" + "\043\uffa4\066\uffa4\001\002\000\012\047\u010c\062\324\071" + "\325\073\323\001\002\000\012\014\uff99\015\uff99\043\uff99" + "\066\uff99\001\002\000\012\014\uffa7\015\uffa7\043\uffa7\066" + "\uffa7\001\002\000\012\014\uffa5\015\uffa5\043\uffa5\066\uffa5" + "\001\002\000\004\074\u0101\001\002\000\036\006\173\007" + "\247\017\255\021\235\022\242\036\256\043\uff9d\045\236" + "\046\243\066\uff9d\074\233\076\241\104\244\105\237\001" + "\002\000\012\014\uff9b\015\uff9b\043\uff9b\066\uff9b\001\002" + "\000\006\015\262\066\261\001\002\000\040\006\173\007" + "\247\015\uff9d\017\255\021\235\022\242\036\256\043\uff9d" + "\045\236\046\243\066\uff9d\074\233\076\241\104\244\105" + "\237\001\002\000\014\014\uff67\015\uff67\043\uff67\062\uff67" + "\066\uff67\001\002\000\010\015\uff65\043\uff65\066\uff65\001" + "\002\000\006\043\265\066\261\001\002\000\032\026\300" + "\027\274\050\271\051\304\063\301\071\272\074\270\075" + "\310\076\276\077\303\100\302\101\273\001\002\000\074" + "\004\uff7f\011\uff7f\012\uff7f\013\uff7f\014\uff7f\015\uff7f\023" + "\uff7f\025\uff7f\030\uff7f\031\uff7f\040\uff7f\041\uff7f\043\uff7f" + "\050\uff7f\051\uff7f\052\uff7f\053\uff7f\054\uff7f\055\uff7f\056" + "\uff7f\057\uff7f\060\uff7f\061\uff7f\064\uff7f\065\uff7f\066\uff7f" + "\067\uff7f\070\uff7f\072\uff7f\001\002\000\062\012\uff8d\013" + "\uff8d\014\uff8d\015\uff8d\023\356\030\uff8d\031\366\040\uff8d" + "\041\uff8d\043\uff8d\050\360\051\355\054\361\055\364\056" + "\365\057\363\060\362\061\357\064\uff8d\065\uff8d\066\uff8d" + "\067\uff8d\070\uff8d\072\uff8d\001\002\000\104\004\uff98\011" + "\uff98\012\uff98\013\uff98\014\uff98\015\uff98\023\uff98\025\uff98" + "\030\uff98\031\uff98\040\uff98\041\uff98\043\uff98\050\uff98\051" + "\uff98\052\uff98\053\uff98\054\uff98\055\uff98\056\uff98\057\uff98" + "\060\uff98\061\uff98\062\uff98\063\352\064\uff98\065\uff98\066" + "\uff98\067\uff98\070\uff98\071\uff98\072\uff98\073\uff98\001\002" + "\000\026\026\300\027\274\063\301\071\272\074\270\075" + "\310\076\276\077\303\100\302\101\273\001\002\000\034" + "\026\300\027\274\050\271\051\304\063\301\071\272\072" + "\341\074\270\075\310\076\276\077\303\100\302\101\273" + "\001\002\000\074\004\uff74\011\uff74\012\uff74\013\uff74\014" + "\uff74\015\uff74\023\uff74\025\uff74\030\uff74\031\uff74\040\uff74" + "\041\uff74\043\uff74\050\uff74\051\uff74\052\uff74\053\uff74\054" + "\uff74\055\uff74\056\uff74\057\uff74\060\uff74\061\uff74\064\uff74" + "\065\uff74\066\uff74\067\uff74\070\uff74\072\uff74\001\002\000" + "\026\026\300\027\274\063\301\071\272\074\270\075\310" + "\076\276\077\303\100\302\101\273\001\002\000\074\004" + "\uff71\011\uff71\012\uff71\013\uff71\014\uff71\015\uff71\023\uff71" + "\025\uff71\030\uff71\031\uff71\040\uff71\041\uff71\043\uff71\050" + "\uff71\051\uff71\052\uff71\053\uff71\054\uff71\055\uff71\056\uff71" + "\057\uff71\060\uff71\061\uff71\064\uff71\065\uff71\066\uff71\067" + "\uff71\070\uff71\072\uff71\001\002\000\074\004\uff77\011\uff77" + "\012\uff77\013\uff77\014\uff77\015\uff77\023\uff77\025\uff77\030" + "\uff77\031\uff77\040\uff77\041\uff77\043\uff77\050\uff77\051\uff77" + "\052\uff77\053\uff77\054\uff77\055\uff77\056\uff77\057\uff77\060" + "\uff77\061\uff77\064\uff77\065\uff77\066\uff77\067\uff77\070\uff77" + "\072\uff77\001\002\000\012\014\uff5c\015\uff5c\043\uff5c\066" + "\uff5c\001\002\000\074\004\uff73\011\uff73\012\uff73\013\uff73" + "\014\uff73\015\uff73\023\uff73\025\uff73\030\uff73\031\uff73\040" + "\uff73\041\uff73\043\uff73\050\uff73\051\uff73\052\uff73\053\uff73" + "\054\uff73\055\uff73\056\uff73\057\uff73\060\uff73\061\uff73\064" + "\uff73\065\uff73\066\uff73\067\uff73\070\uff73\072\uff73\001\002" + "\000\032\026\300\027\274\050\271\051\304\063\301\071" + "\272\074\270\075\310\076\276\077\303\100\302\101\273" + "\001\002\000\074\004\uff75\011\uff75\012\uff75\013\uff75\014" + "\uff75\015\uff75\023\uff75\025\uff75\030\uff75\031\uff75\040\uff75" + "\041\uff75\043\uff75\050\uff75\051\uff75\052\uff75\053\uff75\054" + "\uff75\055\uff75\056\uff75\057\uff75\060\uff75\061\uff75\064\uff75" + "\065\uff75\066\uff75\067\uff75\070\uff75\072\uff75\001\002\000" + "\074\004\uff76\011\uff76\012\uff76\013\uff76\014\uff76\015\uff76" + "\023\uff76\025\uff76\030\uff76\031\uff76\040\uff76\041\uff76\043" + "\uff76\050\uff76\051\uff76\052\uff76\053\uff76\054\uff76\055\uff76" + "\056\uff76\057\uff76\060\uff76\061\uff76\064\uff76\065\uff76\066" + "\uff76\067\uff76\070\uff76\072\uff76\001\002\000\026\026\300" + "\027\274\063\301\071\272\074\270\075\310\076\276\077" + "\303\100\302\101\273\001\002\000\102\004\uff79\011\uff79" + "\012\uff79\013\uff79\014\uff79\015\uff79\023\uff79\025\uff79\030" + "\uff79\031\uff79\040\uff79\041\uff79\043\uff79\050\uff79\051\uff79" + "\052\uff79\053\uff79\054\uff79\055\uff79\056\uff79\057\uff79\060" + "\uff79\061\uff79\062\324\064\uff79\065\uff79\066\uff79\067\uff79" + "\070\uff79\071\325\072\uff79\073\323\001\002\000\074\004" + "\uff70\011\uff70\012\uff70\013\uff70\014\uff70\015\uff70\023\uff70" + "\025\uff70\030\uff70\031\uff70\040\uff70\041\uff70\043\uff70\050" + "\uff70\051\uff70\052\uff70\053\uff70\054\uff70\055\uff70\056\uff70" + "\057\uff70\060\uff70\061\uff70\064\uff70\065\uff70\066\uff70\067" + "\uff70\070\uff70\072\uff70\001\002\000\074\004\312\011\314" + "\012\uff85\013\uff85\014\uff85\015\uff85\023\uff85\025\311\030" + "\uff85\031\uff85\040\uff85\041\uff85\043\uff85\050\uff85\051\uff85" + "\052\315\053\313\054\uff85\055\uff85\056\uff85\057\uff85\060" + "\uff85\061\uff85\064\uff85\065\uff85\066\uff85\067\uff85\070\uff85" + "\072\uff85\001\002\000\074\004\uff78\011\uff78\012\uff78\013" + "\uff78\014\uff78\015\uff78\023\uff78\025\uff78\030\uff78\031\uff78" + "\040\uff78\041\uff78\043\uff78\050\uff78\051\uff78\052\uff78\053" + "\uff78\054\uff78\055\uff78\056\uff78\057\uff78\060\uff78\061\uff78" + "\064\uff78\065\uff78\066\uff78\067\uff78\070\uff78\072\uff78\001" + "\002\000\026\026\300\027\274\063\301\071\272\074\270" + "\075\310\076\276\077\303\100\302\101\273\001\002\000" + "\026\026\300\027\274\063\301\071\272\074\270\075\310" + "\076\276\077\303\100\302\101\273\001\002\000\026\026" + "\300\027\274\063\301\071\272\074\270\075\310\076\276" + "\077\303\100\302\101\273\001\002\000\026\026\300\027" + "\274\063\301\071\272\074\270\075\310\076\276\077\303" + "\100\302\101\273\001\002\000\026\026\300\027\274\063" + "\301\071\272\074\270\075\310\076\276\077\303\100\302" + "\101\273\001\002\000\074\004\uff7e\011\uff7e\012\uff7e\013" + "\uff7e\014\uff7e\015\uff7e\023\uff7e\025\uff7e\030\uff7e\031\uff7e" + "\040\uff7e\041\uff7e\043\uff7e\050\uff7e\051\uff7e\052\uff7e\053" + "\uff7e\054\uff7e\055\uff7e\056\uff7e\057\uff7e\060\uff7e\061\uff7e" + "\064\uff7e\065\uff7e\066\uff7e\067\uff7e\070\uff7e\072\uff7e\001" + "\002\000\074\004\uff7c\011\uff7c\012\uff7c\013\uff7c\014\uff7c" + "\015\uff7c\023\uff7c\025\uff7c\030\uff7c\031\uff7c\040\uff7c\041" + "\uff7c\043\uff7c\050\uff7c\051\uff7c\052\uff7c\053\uff7c\054\uff7c" + "\055\uff7c\056\uff7c\057\uff7c\060\uff7c\061\uff7c\064\uff7c\065" + "\uff7c\066\uff7c\067\uff7c\070\uff7c\072\uff7c\001\002\000\074" + "\004\uff7d\011\uff7d\012\uff7d\013\uff7d\014\uff7d\015\uff7d\023" + "\uff7d\025\uff7d\030\uff7d\031\uff7d\040\uff7d\041\uff7d\043\uff7d" + "\050\uff7d\051\uff7d\052\uff7d\053\uff7d\054\uff7d\055\uff7d\056" + "\uff7d\057\uff7d\060\uff7d\061\uff7d\064\uff7d\065\uff7d\066\uff7d" + "\067\uff7d\070\uff7d\072\uff7d\001\002\000\074\004\uff7a\011" + "\uff7a\012\uff7a\013\uff7a\014\uff7a\015\uff7a\023\uff7a\025\uff7a" + "\030\uff7a\031\uff7a\040\uff7a\041\uff7a\043\uff7a\050\uff7a\051" + "\uff7a\052\uff7a\053\uff7a\054\uff7a\055\uff7a\056\uff7a\057\uff7a" + "\060\uff7a\061\uff7a\064\uff7a\065\uff7a\066\uff7a\067\uff7a\070" + "\uff7a\072\uff7a\001\002\000\074\004\uff7b\011\uff7b\012\uff7b" + "\013\uff7b\014\uff7b\015\uff7b\023\uff7b\025\uff7b\030\uff7b\031" + "\uff7b\040\uff7b\041\uff7b\043\uff7b\050\uff7b\051\uff7b\052\uff7b" + "\053\uff7b\054\uff7b\055\uff7b\056\uff7b\057\uff7b\060\uff7b\061" + "\uff7b\064\uff7b\065\uff7b\066\uff7b\067\uff7b\070\uff7b\072\uff7b" + "\001\002\000\104\004\uff95\011\uff95\012\uff95\013\uff95\014" + "\uff95\015\uff95\023\uff95\025\uff95\030\uff95\031\uff95\040\uff95" + "\041\uff95\043\uff95\047\uff95\050\uff95\051\uff95\052\uff95\053" + "\uff95\054\uff95\055\uff95\056\uff95\057\uff95\060\uff95\061\uff95" + "\062\uff95\064\uff95\065\uff95\066\uff95\067\uff95\070\uff95\071" + "\uff95\072\uff95\073\uff95\001\002\000\004\074\333\001\002" + "\000\032\026\300\027\274\050\271\051\304\063\301\071" + "\272\074\270\075\310\076\276\077\303\100\302\101\273" + "\001\002\000\006\065\330\072\331\001\002\000\010\064" + "\uff8f\065\uff8f\072\uff8f\001\002\000\032\026\300\027\274" + "\050\271\051\304\063\301\071\272\074\270\075\310\076" + "\276\077\303\100\302\101\273\001\002\000\104\004\uff97" + "\011\uff97\012\uff97\013\uff97\014\uff97\015\uff97\023\uff97\025" + "\uff97\030\uff97\031\uff97\040\uff97\041\uff97\043\uff97\047\uff97" + "\050\uff97\051\uff97\052\uff97\053\uff97\054\uff97\055\uff97\056" + "\uff97\057\uff97\060\uff97\061\uff97\062\uff97\064\uff97\065\uff97" + "\066\uff97\067\uff97\070\uff97\071\uff97\072\uff97\073\uff97\001" + "\002\000\010\064\uff8e\065\uff8e\072\uff8e\001\002\000\104" + "\004\uff96\011\uff96\012\uff96\013\uff96\014\uff96\015\uff96\023" + "\uff96\025\uff96\030\uff96\031\uff96\040\uff96\041\uff96\043\uff96" + "\047\uff96\050\uff96\051\uff96\052\uff96\053\uff96\054\uff96\055" + "\uff96\056\uff96\057\uff96\060\uff96\061\uff96\062\uff96\064\uff96" + "\065\uff96\066\uff96\067\uff96\070\uff96\071\uff96\072\uff96\073" + "\uff96\001\002\000\074\004\312\011\314\012\uff83\013\uff83" + "\014\uff83\015\uff83\023\uff83\025\311\030\uff83\031\uff83\040" + "\uff83\041\uff83\043\uff83\050\uff83\051\uff83\052\315\053\313" + "\054\uff83\055\uff83\056\uff83\057\uff83\060\uff83\061\uff83\064" + "\uff83\065\uff83\066\uff83\067\uff83\070\uff83\072\uff83\001\002" + "\000\004\064\336\001\002\000\074\004\uff72\011\uff72\012" + "\uff72\013\uff72\014\uff72\015\uff72\023\uff72\025\uff72\030\uff72" + "\031\uff72\040\uff72\041\uff72\043\uff72\050\uff72\051\uff72\052" + "\uff72\053\uff72\054\uff72\055\uff72\056\uff72\057\uff72\060\uff72" + "\061\uff72\064\uff72\065\uff72\066\uff72\067\uff72\070\uff72\072" + "\uff72\001\002\000\074\004\uff6f\011\uff6f\012\uff6f\013\uff6f" + "\014\uff6f\015\uff6f\023\uff6f\025\uff6f\030\uff6f\031\uff6f\040" + "\uff6f\041\uff6f\043\uff6f\050\uff6f\051\uff6f\052\uff6f\053\uff6f" + "\054\uff6f\055\uff6f\056\uff6f\057\uff6f\060\uff6f\061\uff6f\064" + "\uff6f\065\uff6f\066\uff6f\067\uff6f\070\uff6f\072\uff6f\001\002" + "\000\010\065\uff69\070\347\072\uff69\001\002\000\074\004" + "\uff6c\011\uff6c\012\uff6c\013\uff6c\014\uff6c\015\uff6c\023\uff6c" + "\025\uff6c\030\uff6c\031\uff6c\040\uff6c\041\uff6c\043\uff6c\050" + "\uff6c\051\uff6c\052\uff6c\053\uff6c\054\uff6c\055\uff6c\056\uff6c" + "\057\uff6c\060\uff6c\061\uff6c\064\uff6c\065\uff6c\066\uff6c\067" + "\uff6c\070\uff6c\072\uff6c\001\002\000\006\065\uff6b\072\uff6b" + "\001\002\000\006\065\344\072\345\001\002\000\032\026" + "\300\027\274\050\271\051\304\063\301\071\272\074\270" + "\075\310\076\276\077\303\100\302\101\273\001\002\000" + "\074\004\uff6d\011\uff6d\012\uff6d\013\uff6d\014\uff6d\015\uff6d" + "\023\uff6d\025\uff6d\030\uff6d\031\uff6d\040\uff6d\041\uff6d\043" + "\uff6d\050\uff6d\051\uff6d\052\uff6d\053\uff6d\054\uff6d\055\uff6d" + "\056\uff6d\057\uff6d\060\uff6d\061\uff6d\064\uff6d\065\uff6d\066" + "\uff6d\067\uff6d\070\uff6d\072\uff6d\001\002\000\006\065\uff6a" + "\072\uff6a\001\002\000\032\026\300\027\274\050\271\051" + "\304\063\301\071\272\074\270\075\310\076\276\077\303" + "\100\302\101\273\001\002\000\006\065\uff68\072\uff68\001" + "\002\000\074\004\312\011\314\012\uff84\013\uff84\014\uff84" + "\015\uff84\023\uff84\025\311\030\uff84\031\uff84\040\uff84\041" + "\uff84\043\uff84\050\uff84\051\uff84\052\315\053\313\054\uff84" + "\055\uff84\056\uff84\057\uff84\060\uff84\061\uff84\064\uff84\065" + "\uff84\066\uff84\067\uff84\070\uff84\072\uff84\001\002\000\032" + "\026\300\027\274\050\271\051\304\063\301\071\272\074" + "\270\075\310\076\276\077\303\100\302\101\273\001\002" + "\000\006\064\354\065\330\001\002\000\074\004\uff6e\011" + "\uff6e\012\uff6e\013\uff6e\014\uff6e\015\uff6e\023\uff6e\025\uff6e" + "\030\uff6e\031\uff6e\040\uff6e\041\uff6e\043\uff6e\050\uff6e\051" + "\uff6e\052\uff6e\053\uff6e\054\uff6e\055\uff6e\056\uff6e\057\uff6e" + "\060\uff6e\061\uff6e\064\uff6e\065\uff6e\066\uff6e\067\uff6e\070" + "\uff6e\072\uff6e\001\002\000\026\026\300\027\274\063\301" + "\071\272\074\270\075\310\076\276\077\303\100\302\101" + "\273\001\002\000\032\026\300\027\274\050\271\051\304" + "\063\301\071\272\074\270\075\310\076\276\077\303\100" + "\302\101\273\001\002\000\032\026\300\027\274\050\271" + "\051\304\063\301\071\272\074\270\075\310\076\276\077" + "\303\100\302\101\273\001\002\000\026\026\300\027\274" + "\063\301\071\272\074\270\075\310\076\276\077\303\100" + "\302\101\273\001\002\000\032\026\300\027\274\050\271" + "\051\304\063\301\071\272\074\270\075\310\076\276\077" + "\303\100\302\101\273\001\002\000\032\026\300\027\274" + "\050\271\051\304\063\301\071\272\074\270\075\310\076" + "\276\077\303\100\302\101\273\001\002\000\032\026\300" + "\027\274\050\271\051\304\063\301\071\272\074\270\075" + "\310\076\276\077\303\100\302\101\273\001\002\000\032" + "\026\300\027\274\050\271\051\304\063\301\071\272\074" + "\270\075\310\076\276\077\303\100\302\101\273\001\002" + "\000\032\026\300\027\274\050\271\051\304\063\301\071" + "\272\074\270\075\310\076\276\077\303\100\302\101\273" + "\001\002\000\026\026\300\027\274\063\301\071\272\074" + "\270\075\310\076\276\077\303\100\302\101\273\001\002" + "\000\074\004\312\011\314\012\uff80\013\uff80\014\uff80\015" + "\uff80\023\uff80\025\311\030\uff80\031\uff80\040\uff80\041\uff80" + "\043\uff80\050\uff80\051\uff80\052\315\053\313\054\uff80\055" + "\uff80\056\uff80\057\uff80\060\uff80\061\uff80\064\uff80\065\uff80" + "\066\uff80\067\uff80\070\uff80\072\uff80\001\002\000\044\012" + "\uff8a\013\uff8a\014\uff8a\015\uff8a\030\uff8a\031\366\040\uff8a" + "\041\uff8a\043\uff8a\050\360\051\355\064\uff8a\065\uff8a\066" + "\uff8a\067\uff8a\070\uff8a\072\uff8a\001\002\000\044\012\uff8b" + "\013\uff8b\014\uff8b\015\uff8b\030\uff8b\031\366\040\uff8b\041" + "\uff8b\043\uff8b\050\360\051\355\064\uff8b\065\uff8b\066\uff8b" + "\067\uff8b\070\uff8b\072\uff8b\001\002\000\044\012\uff88\013" + "\uff88\014\uff88\015\uff88\030\uff88\031\366\040\uff88\041\uff88" + "\043\uff88\050\360\051\355\064\uff88\065\uff88\066\uff88\067" + "\uff88\070\uff88\072\uff88\001\002\000\044\012\uff89\013\uff89" + "\014\uff89\015\uff89\030\uff89\031\366\040\uff89\041\uff89\043" + "\uff89\050\360\051\355\064\uff89\065\uff89\066\uff89\067\uff89" + "\070\uff89\072\uff89\001\002\000\044\012\uff8c\013\uff8c\014" + "\uff8c\015\uff8c\030\uff8c\031\366\040\uff8c\041\uff8c\043\uff8c" + "\050\360\051\355\064\uff8c\065\uff8c\066\uff8c\067\uff8c\070" + "\uff8c\072\uff8c\001\002\000\074\004\312\011\314\012\uff82" + "\013\uff82\014\uff82\015\uff82\023\uff82\025\311\030\uff82\031" + "\uff82\040\uff82\041\uff82\043\uff82\050\uff82\051\uff82\052\315" + "\053\313\054\uff82\055\uff82\056\uff82\057\uff82\060\uff82\061" + "\uff82\064\uff82\065\uff82\066\uff82\067\uff82\070\uff82\072\uff82" + "\001\002\000\044\012\uff87\013\uff87\014\uff87\015\uff87\030" + "\uff87\031\366\040\uff87\041\uff87\043\uff87\050\360\051\355" + "\064\uff87\065\uff87\066\uff87\067\uff87\070\uff87\072\uff87\001" + "\002\000\044\012\uff86\013\uff86\014\uff86\015\uff86\030\uff86" + "\031\366\040\uff86\041\uff86\043\uff86\050\360\051\355\064" + "\uff86\065\uff86\066\uff86\067\uff86\070\uff86\072\uff86\001\002" + "\000\074\004\312\011\314\012\uff81\013\uff81\014\uff81\015" + "\uff81\023\uff81\025\311\030\uff81\031\uff81\040\uff81\041\uff81" + "\043\uff81\050\uff81\051\uff81\052\315\053\313\054\uff81\055" + "\uff81\056\uff81\057\uff81\060\uff81\061\uff81\064\uff81\065\uff81" + "\066\uff81\067\uff81\070\uff81\072\uff81\001\002\000\004\047" + "\u0102\001\002\000\032\026\300\027\274\050\271\051\304" + "\063\301\071\272\074\270\075\310\076\276\077\303\100" + "\302\101\273\001\002\000\006\013\u0105\041\u0104\001\002" + "\000\032\026\300\027\274\050\271\051\304\063\301\071" + "\272\074\270\075\310\076\276\077\303\100\302\101\273" + "\001\002\000\032\026\300\027\274\050\271\051\304\063" + "\301\071\272\074\270\075\310\076\276\077\303\100\302" + "\101\273\001\002\000\004\012\u0107\001\002\000\042\006" + "\173\007\247\014\uff9d\015\uff9d\017\255\021\235\022\242" + "\036\256\043\uff9d\045\236\046\243\066\uff9d\074\233\076" + "\241\104\244\105\237\001\002\000\012\014\uff5a\015\uff5a" + "\043\uff5a\066\uff5a\001\002\000\004\012\u010a\001\002\000" + "\042\006\173\007\247\014\uff9d\015\uff9d\017\255\021\235" + "\022\242\036\256\043\uff9d\045\236\046\243\066\uff9d\074" + "\233\076\241\104\244\105\237\001\002\000\012\014\uff5b" + "\015\uff5b\043\uff5b\066\uff5b\001\002\000\032\026\300\027" + "\274\050\271\051\304\063\301\071\272\074\270\075\310" + "\076\276\077\303\100\302\101\273\001\002\000\012\014" + "\uffa3\015\uffa3\043\uffa3\066\uffa3\001\002\000\004\030\u010f" + "\001\002\000\022\015\uff5f\050\050\051\067\066\uff5f\074" + "\123\076\056\077\064\101\051\001\002\000\006\015\u0116" + "\066\u0115\001\002\000\006\065\130\067\u0113\001\002\000" + "\006\015\uff61\066\uff61\001\002\000\036\006\173\007\247" + "\015\uff9d\017\255\021\235\022\242\036\256\045\236\046" + "\243\066\uff9d\074\233\076\241\104\244\105\237\001\002" + "\000\006\015\uff5e\066\uff5e\001\002\000\022\015\uff5f\050" + "\050\051\067\066\uff5f\074\123\076\056\077\064\101\051" + "\001\002\000\012\014\uff62\015\uff62\043\uff62\066\uff62\001" + "\002\000\006\015\uff60\066\uff60\001\002\000\032\026\300" + "\027\274\050\271\051\304\063\301\071\272\074\270\075" + "\310\076\276\077\303\100\302\101\273\001\002\000\010" + "\064\uff92\065\uff92\067\u011f\001\002\000\006\064\u011d\065" + "\u011c\001\002\000\006\064\uff94\065\uff94\001\002\000\032" + "\026\300\027\274\050\271\051\304\063\301\071\272\074" + "\270\075\310\076\276\077\303\100\302\101\273\001\002" + "\000\012\014\uffa1\015\uffa1\043\uffa1\066\uffa1\001\002\000" + "\006\064\uff93\065\uff93\001\002\000\032\026\300\027\274" + "\050\271\051\304\063\301\071\272\074\270\075\310\076" + "\276\077\303\100\302\101\273\001\002\000\010\064\uff91" + "\065\uff91\067\u0121\001\002\000\032\026\300\027\274\050" + "\271\051\304\063\301\071\272\074\270\075\310\076\276" + "\077\303\100\302\101\273\001\002\000\006\064\uff90\065" + "\uff90\001\002\000\006\012\u0127\065\u0126\001\002\000\014" + "\012\uff58\062\324\065\uff58\071\325\073\323\001\002\000" + "\014\012\uff98\062\uff98\065\uff98\071\uff98\073\uff98\001\002" + "\000\004\074\u0125\001\002\000\042\006\173\007\247\014" + "\uff9d\015\uff9d\017\255\021\235\022\242\036\256\043\uff9d" + "\045\236\046\243\066\uff9d\074\233\076\241\104\244\105" + "\237\001\002\000\012\014\uff59\015\uff59\043\uff59\066\uff59" + "\001\002\000\014\012\uff57\062\324\065\uff57\071\325\073" + "\323\001\002\000\004\040\u012b\001\002\000\042\006\173" + "\007\247\014\uff9d\015\uff9d\017\255\021\235\022\242\036" + "\256\043\uff9d\045\236\046\243\066\uff9d\074\233\076\241" + "\104\244\105\237\001\002\000\012\014\u012d\015\uff64\043" + "\uff64\066\uff64\001\002\000\042\006\173\007\247\014\uff9d" + "\015\uff9d\017\255\021\235\022\242\036\256\043\uff9d\045" + "\236\046\243\066\uff9d\074\233\076\241\104\244\105\237" + "\001\002\000\012\014\uff63\015\uff63\043\uff63\066\uff63\001" + "\002\000\040\006\173\007\247\014\uff9d\015\uff9d\017\255" + "\021\235\022\242\036\256\043\uff9d\045\236\046\243\066" + "\uff9d\074\233\104\244\105\237\001\002\000\012\014\uffa6" + "\015\uffa6\043\uffa6\066\uffa6\001\002\000\032\026\300\027" + "\274\050\271\051\304\063\301\071\272\074\270\075\310" + "\076\276\077\303\100\302\101\273\001\002\000\006\064" + "\u0133\065\u011c\001\002\000\012\014\uffa0\015\uffa0\043\uffa0" + "\066\uffa0\001\002\000\004\012\u0135\001\002\000\042\006" + "\173\007\247\014\uff9d\015\uff9d\017\255\021\235\022\242" + "\036\256\043\uff9d\045\236\046\243\066\uff9d\074\233\076" + "\241\104\244\105\237\001\002\000\012\014\uff5d\015\uff5d" + "\043\uff5d\066\uff5d\001\002\000\012\014\uff9e\015\uff9e\043" + "\uff9e\066\uff9e\001\002\000\004\066\uffb2\001\002\000\006" + "\063\u013b\066\u013a\001\002\000\020\006\uffb1\010\uffb1\020" + "\uffb1\024\uffb1\033\uffb1\042\uffb1\044\uffb1\001\002\000\014" + "\020\211\033\205\044\204\065\uffb8\067\uffb8\001\002\000" + "\006\064\u013d\066\217\001\002\000\004\066\u013e\001\002" + "\000\020\006\uffb0\010\uffb0\020\uffb0\024\uffb0\033\uffb0\042" + "\uffb0\044\uffb0\001\002\000\004\066\uffb3\001\002\000\004" + "\066\u0141\001\002\000\014\006\uffbc\020\uffbc\033\uffbc\065" + "\uffb8\067\uffb8\001\002\000\004\066\uffba\001\002\000\006" + "\065\012\067\u0144\001\002\000\034\005\073\016\054\032" + "\055\035\065\037\063\050\050\051\067\063\061\073\046" + "\074\045\076\056\077\064\101\051\001\002\000\004\066" + "\uffb9\001\002\000\006\065\u014b\066\u014c\001\002\000\006" + "\065\ufff4\066\ufff4\001\002\000\004\054\u0149\001\002\000" + "\016\050\050\051\067\074\123\076\056\077\064\101\051" + "\001\002\000\006\065\ufff2\066\ufff2\001\002\000\004\074" + "\u0148\001\002\000\014\006\ufff5\020\ufff5\033\ufff5\042\ufff5" + "\044\ufff5\001\002\000\006\065\ufff3\066\ufff3\001\002\000" + "\004\002\001\001\002" }); /** Access to parse-action table. */ public short[][] action_table() {return _action_table;} /** reduce_goto table. */ protected static final short[][] _reduce_table = unpackFromStrings(new String[] { "\000\u014c\000\006\003\003\004\004\001\001\000\002\001" + "\001\000\010\005\017\006\015\007\020\001\001\000\002" + "\001\001\000\002\001\001\000\004\052\010\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\006\012\032\013\030\001" + "\001\000\006\010\023\011\024\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\027\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\006\014\u0145\015\u0146\001\001\000\006\020\034\021\033" + "\001\001\000\002\001\001\000\006\046\164\047\163\001" + "\001\000\006\022\040\023\036\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\004\023\042\001" + "\001\000\002\001\001\000\032\017\052\024\056\025\046" + "\026\065\027\071\030\074\031\070\032\067\034\057\043" + "\073\044\051\045\061\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\031\151\032\067\034\057\043\073\044\051\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\004\052\147\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\006\035\110\036\111\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\017\052\025\076\026" + "\065\027\071\033\077\001\001\000\002\001\001\000\002" + "\001\001\000\012\017\052\025\104\026\065\027\071\001" + "\001\000\002\001\001\000\032\017\052\024\103\025\046" + "\026\065\027\071\030\074\031\070\032\067\034\057\043" + "\073\044\051\045\061\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\010\037\114" + "\040\113\052\115\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\016\125\017\124\041\123\042" + "\126\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\004\017" + "\134\001\001\000\002\001\001\000\006\035\132\036\111" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\010\016\125\017\124\042\136\001\001\000\002" + "\001\001\000\002\001\001\000\012\016\125\017\124\041" + "\141\042\126\001\001\000\002\001\001\000\032\017\052" + "\024\143\025\046\026\065\027\071\030\074\031\070\032" + "\067\034\057\043\073\044\051\045\061\001\001\000\002" + "\001\001\000\002\001\001\000\012\017\052\025\146\026" + "\065\027\071\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\032\017\052\024" + "\153\025\046\026\065\027\071\030\074\031\070\032\067" + "\034\057\043\073\044\051\045\061\001\001\000\002\001" + "\001\000\004\017\155\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\004\050\u013f\001\001\000\002\001\001\000\004" + "\053\165\001\001\000\014\054\173\055\174\056\167\057" + "\171\102\166\001\001\000\002\001\001\000\010\005\u013e" + "\006\015\007\020\001\001\000\002\001\001\000\010\005" + "\u0137\006\015\007\020\001\001\000\030\062\233\063\252" + "\064\253\065\247\066\250\076\237\102\245\103\257\104" + "\256\107\244\110\251\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\010\052" + "\206\060\205\061\207\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\004\052\225\001\001\000" + "\004\052\224\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\004\052\211\001\001\000\002\001" + "\001\000\032\017\052\024\213\025\046\026\065\027\071" + "\030\074\031\070\032\067\034\057\043\073\044\051\045" + "\061\001\001\000\002\001\001\000\032\017\052\024\215" + "\025\046\026\065\027\071\030\074\031\070\032\067\034" + "\057\043\073\044\051\045\061\001\001\000\002\001\001" + "\000\006\052\206\061\223\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\032\017" + "\052\024\227\025\046\026\065\027\071\030\074\031\070" + "\032\067\034\057\043\073\044\051\045\061\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\020\066" + "\304\072\u0133\073\266\074\306\075\265\076\274\077\305" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\020\066\304\072\u0129\073\266\074\306\075\265" + "\076\274\077\305\001\001\000\006\066\u0123\111\u0122\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\020\066\304\072\u010d\073\266\074\306\075\265\076" + "\274\077\305\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\030\062\233\063\252\064\253\065\247" + "\066\250\076\237\102\245\103\263\104\256\107\244\110" + "\251\001\001\000\002\001\001\000\002\001\001\000\026" + "\062\262\063\252\064\253\065\247\066\250\076\237\102" + "\245\104\256\107\244\110\251\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\020\066\304\072" + "\276\073\266\074\306\075\265\076\274\077\305\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\014\066\304\074\350\075\265\076\274\077\305\001\001" + "\000\024\066\304\072\337\073\266\074\306\075\265\076" + "\274\077\305\100\342\101\341\001\001\000\002\001\001" + "\000\012\066\304\075\336\076\274\077\305\001\001\000" + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\020\066\304\072\334\073\266\074\306\075" + "\265\076\274\077\305\001\001\000\002\001\001\000\002" + "\001\001\000\014\066\304\074\333\075\265\076\274\077" + "\305\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\012\066\304\075\321\076" + "\274\077\305\001\001\000\012\066\304\075\320\076\274" + "\077\305\001\001\000\012\066\304\075\317\076\274\077" + "\305\001\001\000\012\066\304\075\316\076\274\077\305" + "\001\001\000\012\066\304\075\315\076\274\077\305\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\022\066\304\070\325\072\326\073\266" + "\074\306\075\265\076\274\077\305\001\001\000\002\001" + "\001\000\002\001\001\000\020\066\304\072\331\073\266" + "\074\306\075\265\076\274\077\305\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\022\066\304\072\337\073\266\074\306\075" + "\265\076\274\077\305\101\345\001\001\000\002\001\001" + "\000\002\001\001\000\020\066\304\072\347\073\266\074" + "\306\075\265\076\274\077\305\001\001\000\002\001\001" + "\000\002\001\001\000\022\066\304\070\352\072\326\073" + "\266\074\306\075\265\076\274\077\305\001\001\000\002" + "\001\001\000\002\001\001\000\014\066\304\074\377\075" + "\265\076\274\077\305\001\001\000\016\066\304\073\376" + "\074\306\075\265\076\274\077\305\001\001\000\016\066" + "\304\073\375\074\306\075\265\076\274\077\305\001\001" + "\000\014\066\304\074\374\075\265\076\274\077\305\001" + "\001\000\016\066\304\073\373\074\306\075\265\076\274" + "\077\305\001\001\000\016\066\304\073\372\074\306\075" + "\265\076\274\077\305\001\001\000\016\066\304\073\371" + "\074\306\075\265\076\274\077\305\001\001\000\016\066" + "\304\073\370\074\306\075\265\076\274\077\305\001\001" + "\000\016\066\304\073\367\074\306\075\265\076\274\077" + "\305\001\001\000\014\066\304\074\366\075\265\076\274" + "\077\305\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\020\066\304" + "\072\u0102\073\266\074\306\075\265\076\274\077\305\001" + "\001\000\002\001\001\000\020\066\304\072\u0108\073\266" + "\074\306\075\265\076\274\077\305\001\001\000\020\066" + "\304\072\u0105\073\266\074\306\075\265\076\274\077\305" + "\001\001\000\002\001\001\000\026\062\u0107\063\252\064" + "\253\065\247\066\250\076\237\102\245\104\256\107\244" + "\110\251\001\001\000\002\001\001\000\002\001\001\000" + "\026\062\u010a\063\252\064\253\065\247\066\250\076\237" + "\102\245\104\256\107\244\110\251\001\001\000\002\001" + "\001\000\020\066\304\072\u010c\073\266\074\306\075\265" + "\076\274\077\305\001\001\000\002\001\001\000\002\001" + "\001\000\012\016\u0110\017\124\105\u010f\106\u0111\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\026\062\u0113\063\252\064\253\065\247\066\250\076\237" + "\102\245\104\256\107\244\110\251\001\001\000\002\001" + "\001\000\010\016\u0110\017\124\106\u0116\001\001\000\002" + "\001\001\000\002\001\001\000\024\066\304\067\u0119\071" + "\u011a\072\u0118\073\266\074\306\075\265\076\274\077\305" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\022\066\304\071\u011d\072\u0118\073\266\074\306" + "\075\265\076\274\077\305\001\001\000\002\001\001\000" + "\002\001\001\000\020\066\304\072\u011f\073\266\074\306" + "\075\265\076\274\077\305\001\001\000\002\001\001\000" + "\020\066\304\072\u0121\073\266\074\306\075\265\076\274" + "\077\305\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\004\066\u0128\001\001" + "\000\026\062\u0127\063\252\064\253\065\247\066\250\076" + "\237\102\245\104\256\107\244\110\251\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\026\062" + "\u012b\063\252\064\253\065\247\066\250\076\237\102\245" + "\104\256\107\244\110\251\001\001\000\002\001\001\000" + "\026\062\u012d\063\252\064\253\065\247\066\250\076\237" + "\102\245\104\256\107\244\110\251\001\001\000\002\001" + "\001\000\024\063\u012f\064\253\065\247\066\250\076\237" + "\102\245\104\256\107\244\110\251\001\001\000\002\001" + "\001\000\024\066\304\067\u0131\071\u011a\072\u0118\073\266" + "\074\306\075\265\076\274\077\305\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\026\062\u0135" + "\063\252\064\253\065\247\066\250\076\237\102\245\104" + "\256\107\244\110\251\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\010\052\206\060\u013b\061\207\001\001\000\002" + "\001\001\000\002\001\001\000\002\001\001\000\002\001" + "\001\000\002\001\001\000\006\051\u0141\052\u0142\001\001" + "\000\002\001\001\000\002\001\001\000\032\017\052\024" + "\u0144\025\046\026\065\027\071\030\074\031\070\032\067" + "\034\057\043\073\044\051\045\061\001\001\000\002\001" + "\001\000\002\001\001\000\002\001\001\000\002\001\001" + "\000\004\017\u0149\001\001\000\002\001\001\000\004\015" + "\u014c\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001" }); /** Access to reduce_goto 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;} /** EOF Symbol index. */ public int EOF_sym() {return 0;} /** error Symbol index. */ public int error_sym() {return 1;} /** Scan to get the next Symbol. */ public java_cup.runtime.Symbol scan() throws java.lang.Exception { return lexer.yylex(); } private Yylex lexer; private File file; public parser( File file ) { this(); this.file = file; try { lexer = new Yylex( new FileReader( file ) ); } catch ( IOException exception ) { throw new Error( "Unable to open file \"" + file + "\"" ); } } public String terminal_name( int id ) { return sym.terminal_name( id ); } public String non_terminal_name( int id ) { return sym.non_terminal_name( id ); } public String rule_name( int id ) { return sym.rule_name( id ); } public void report_error( String message, Object info ) { System.err.println( file + " ( " + lexer.lineNumber() + " ): " + message ); try { if ( info instanceof Symbol ) { Symbol symbol = ( Symbol ) info; printText( symbol.left, symbol.right ); } } catch ( IOException e ) { } } private void printText( int left, int right ) throws IOException { Reader sourceReader = new FileReader( file ); int veryLeft = Math.max( left - 50, 0 ), veryRight = Math.min( right + 20, ( int ) file.length() ); char[] text = new char[ veryRight - veryLeft ]; char[] underline = new char[ veryRight - veryLeft ]; sourceReader.skip( veryLeft ); sourceReader.read( text ); for ( int i = 0; i < text.length; i++ ) { if ( text[ i ] < ' ' ) { text[ i ] = '|'; underline[ i ] = '|'; } else underline[ i ] = ' '; if ( left <= veryLeft + i && veryLeft + i < right ) underline[ i ] = '^'; } printLine( text ); printLine( underline ); } private static void printLine( char[] text ) { for ( int i = 0; i < text.length; i++ ) System.err.print( text[ i ] ); System.err.println(); } public void syntax_error( Symbol currToken ) { report_error( "Syntax Error", currToken ); } } /** Cup generated class to encapsulate user supplied action code.*/ class CUP$parser$actions { 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 170: // VariableList ::= VariableList COMMA Variable { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(71/*VariableList*/, ((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 169: // VariableList ::= Variable { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(71/*VariableList*/, ((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 168: // WithStmt ::= WITH VariableList DO Stmt { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(70/*WithStmt*/, ((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 167: // LoopStmt ::= FOR IDENT ASSIGN Expr DOWNTO Expr DO Stmt { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(69/*LoopStmt*/, ((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 166: // LoopStmt ::= FOR IDENT ASSIGN Expr TO Expr DO Stmt { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(69/*LoopStmt*/, ((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 165: // LoopStmt ::= REPEAT StmtList UNTIL Expr { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(69/*LoopStmt*/, ((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 164: // LoopStmt ::= WHILE Expr DO Stmt { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(69/*LoopStmt*/, ((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 163: // CaseStmt ::= ConstantList COLON Stmt { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(68/*CaseStmt*/, ((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 162: // CaseStmt ::= { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(68/*CaseStmt*/, ((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 161: // CaseStmtList ::= CaseStmtList SEMICOLON CaseStmt { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(67/*CaseStmtList*/, ((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 160: // CaseStmtList ::= CaseStmt { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(67/*CaseStmtList*/, ((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 159: // ConditionalStmt ::= CASE Expr OF CaseStmtList END { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(66/*ConditionalStmt*/, ((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 158: // ConditionalStmt ::= IF Expr THEN Stmt ELSE Stmt { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(66/*ConditionalStmt*/, ((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 157: // ConditionalStmt ::= IF Expr THEN Stmt { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(66/*ConditionalStmt*/, ((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 156: // StmtList ::= StmtList SEMICOLON Stmt { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(65/*StmtList*/, ((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 155: // StmtList ::= Stmt { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(65/*StmtList*/, ((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 154: // CompoundStmt ::= BEGIN StmtList END { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(64/*CompoundStmt*/, ((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 153: // Element ::= Expr DOTDOT Expr { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(63/*Element*/, ((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 152: // Element ::= Expr { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(63/*Element*/, ((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 151: // ElementList ::= ElementList COMMA Element { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(62/*ElementList*/, ((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 150: // ElementList ::= Element { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(62/*ElementList*/, ((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 149: // Set ::= LEFTSQ RIGHTSQ { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(61/*Set*/, ((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 148: // Set ::= LEFTSQ ElementList RIGHTSQ { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(61/*Set*/, ((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 147: // Invocation ::= IDENT LEFT ExprList RIGHT { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(60/*Invocation*/, ((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 146: // Factor ::= NOT Factor { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(59/*Factor*/, ((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 145: // Factor ::= Set { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(59/*Factor*/, ((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 144: // Factor ::= Invocation { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(59/*Factor*/, ((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 143: // Factor ::= LEFT Expr RIGHT { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(59/*Factor*/, ((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 142: // Factor ::= NIL { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(59/*Factor*/, ((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 141: // Factor ::= STRINGCONST { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(59/*Factor*/, ((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 140: // Factor ::= CHARCONST { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(59/*Factor*/, ((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 139: // Factor ::= REALCONST { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(59/*Factor*/, ((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 138: // Factor ::= INTCONST { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(59/*Factor*/, ((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 137: // Factor ::= BOOLCONST { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(59/*Factor*/, ((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 136: // Factor ::= Variable { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(59/*Factor*/, ((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 135: // Term ::= Term AND Factor { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(58/*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 134: // Term ::= Term MOD Factor { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(58/*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 133: // Term ::= Term DIV Factor { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(58/*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 132: // Term ::= Term DIVIDE Factor { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(58/*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 131: // Term ::= Term TIMES Factor { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(58/*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 130: // Term ::= Factor { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(58/*Term*/, ((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 129: // SimpleExpr ::= SimpleExpr OR Term { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(57/*SimpleExpr*/, ((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 128: // SimpleExpr ::= SimpleExpr MINUS Term { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(57/*SimpleExpr*/, ((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 127: // SimpleExpr ::= SimpleExpr PLUS Term { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(57/*SimpleExpr*/, ((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 126: // SimpleExpr ::= MINUS Term { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(57/*SimpleExpr*/, ((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 125: // SimpleExpr ::= PLUS Term { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(57/*SimpleExpr*/, ((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 124: // SimpleExpr ::= Term { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(57/*SimpleExpr*/, ((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 123: // Expr ::= SimpleExpr IN SimpleExpr { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(56/*Expr*/, ((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 122: // Expr ::= SimpleExpr GE SimpleExpr { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(56/*Expr*/, ((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 121: // Expr ::= SimpleExpr GT SimpleExpr { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(56/*Expr*/, ((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 120: // Expr ::= SimpleExpr LE SimpleExpr { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(56/*Expr*/, ((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 119: // Expr ::= SimpleExpr LT SimpleExpr { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(56/*Expr*/, ((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 118: // Expr ::= SimpleExpr NE SimpleExpr { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(56/*Expr*/, ((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 117: // Expr ::= SimpleExpr EQ SimpleExpr { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(56/*Expr*/, ((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 116: // Expr ::= SimpleExpr { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(56/*Expr*/, ((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 115: // ExprList ::= ExprList COMMA Expr { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(54/*ExprList*/, ((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 114: // ExprList ::= Expr { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(54/*ExprList*/, ((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 113: // WriteExpr ::= Expr COLON Expr COLON Expr { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(55/*WriteExpr*/, ((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 112: // WriteExpr ::= Expr COLON Expr { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(55/*WriteExpr*/, ((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 111: // WriteExpr ::= Expr { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(55/*WriteExpr*/, ((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: // WriteExprList ::= WriteExprList COMMA WriteExpr { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(53/*WriteExprList*/, ((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 109: // WriteExprList ::= WriteExpr { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(53/*WriteExprList*/, ((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: // Variable ::= Variable PTR { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(52/*Variable*/, ((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: // Variable ::= Variable DOT IDENT { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(52/*Variable*/, ((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 106: // Variable ::= Variable LEFTSQ ExprList RIGHTSQ { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(52/*Variable*/, ((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 105: // Variable ::= IDENT { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(52/*Variable*/, ((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: // StructuredStmt ::= WithStmt { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(51/*StructuredStmt*/, ((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: // StructuredStmt ::= LoopStmt { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(51/*StructuredStmt*/, ((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: // StructuredStmt ::= ConditionalStmt { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(51/*StructuredStmt*/, ((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: // StructuredStmt ::= CompoundStmt { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(51/*StructuredStmt*/, ((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: // SimpleStmt ::= { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(50/*SimpleStmt*/, ((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 99: // SimpleStmt ::= GOTO INTCONST { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(50/*SimpleStmt*/, ((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 98: // SimpleStmt ::= IDENT { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(50/*SimpleStmt*/, ((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: // SimpleStmt ::= WRITELN LEFT WriteExprList RIGHT { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(50/*SimpleStmt*/, ((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 96: // SimpleStmt ::= WRITE LEFT WriteExprList RIGHT { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(50/*SimpleStmt*/, ((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 95: // SimpleStmt ::= Invocation { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(50/*SimpleStmt*/, ((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: // SimpleStmt ::= Variable ASSIGN Expr { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(50/*SimpleStmt*/, ((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 93: // UnlabelledStmt ::= StructuredStmt { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(49/*UnlabelledStmt*/, ((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: // UnlabelledStmt ::= SimpleStmt { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(49/*UnlabelledStmt*/, ((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: // Stmt ::= INTCONST COLON UnlabelledStmt { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(48/*Stmt*/, ((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 90: // Stmt ::= UnlabelledStmt { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(48/*Stmt*/, ((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: // FormalParamDecl ::= PROCEDURE IdentList { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(47/*FormalParamDecl*/, ((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 88: // FormalParamDecl ::= FUNCTION IdentList COLON Type { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(47/*FormalParamDecl*/, ((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 87: // FormalParamDecl ::= IdentList COLON Type { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(47/*FormalParamDecl*/, ((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 86: // FormalParamDecl ::= VAR IdentList COLON Type { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(47/*FormalParamDecl*/, ((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 85: // FormalParamDeclList ::= FormalParamDeclList SEMICOLON FormalParamDecl { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(46/*FormalParamDeclList*/, ((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 84: // FormalParamDeclList ::= FormalParamDecl { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(46/*FormalParamDeclList*/, ((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 83: // FuncHeader ::= FUNCTION IDENT LEFT FormalParamDeclList RIGHT COLON IDENT SEMICOLON { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(45/*FuncHeader*/, ((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 82: // FuncHeader ::= FUNCTION IDENT COLON IDENT SEMICOLON { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(45/*FuncHeader*/, ((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 81: // ProcHeader ::= PROCEDURE IDENT LEFT FormalParamDeclList RIGHT SEMICOLON { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(44/*ProcHeader*/, ((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 80: // ProcHeader ::= PROCEDURE IDENT SEMICOLON { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(44/*ProcHeader*/, ((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 79: // FuncDeclr ::= FuncHeader Block { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(43/*FuncDeclr*/, ((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 78: // ProcDeclr ::= ProcHeader Block { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(42/*ProcDeclr*/, ((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 77: // ProcDeclrList ::= ProcDeclrList FuncDeclr SEMICOLON { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(41/*ProcDeclrList*/, ((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 76: // ProcDeclrList ::= ProcDeclrList ProcDeclr SEMICOLON { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(41/*ProcDeclrList*/, ((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 75: // ProcDeclrList ::= { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(41/*ProcDeclrList*/, ((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 74: // IdentList ::= IdentList COMMA IDENT { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(40/*IdentList*/, ((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 73: // IdentList ::= { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(40/*IdentList*/, ((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 72: // VarDeclr ::= IdentList COLON Type { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(39/*VarDeclr*/, ((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 71: // VarDeclrList ::= VarDeclrList SEMICOLON VarDeclr { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(38/*VarDeclrList*/, ((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: // VarDeclrList ::= { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(38/*VarDeclrList*/, ((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 69: // VarDecl ::= VAR VarDeclrList SEMICOLON { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(37/*VarDecl*/, ((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: // VarDeclOpt ::= VarDecl { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(36/*VarDeclOpt*/, ((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 67: // VarDeclOpt ::= { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(36/*VarDeclOpt*/, ((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: // PointerType ::= PTR IDENT { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(35/*PointerType*/, ((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 65: // FileType ::= FILE OF Type { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(34/*FileType*/, ((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 64: // SetType ::= SET OF SimpleType { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(33/*SetType*/, ((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 63: // Variant ::= ConstantList COLON LEFT FieldList RIGHT { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(32/*Variant*/, ((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 62: // Variant ::= { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(32/*Variant*/, ((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 61: // VariantList ::= VariantList SEMICOLON Variant { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(31/*VariantList*/, ((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 60: // VariantList ::= Variant { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(31/*VariantList*/, ((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 59: // VariantFields ::= CASE IDENT OF VariantList { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(30/*VariantFields*/, ((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 58: // VariantFields ::= CASE IDENT COLON IDENT OF VariantList { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(30/*VariantFields*/, ((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 57: // FieldDecl ::= IdentList COLON Type { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(29/*FieldDecl*/, ((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 56: // FieldDecl ::= { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(29/*FieldDecl*/, ((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 55: // FieldDeclList ::= FieldDeclList SEMICOLON FieldDecl { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(28/*FieldDeclList*/, ((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: // FieldDeclList ::= { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(28/*FieldDeclList*/, ((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 53: // FieldList ::= FieldDeclList SEMICOLON VariantFields { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(27/*FieldList*/, ((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 52: // FieldList ::= FieldDeclList { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(27/*FieldList*/, ((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 51: // RecordType ::= RECORD FieldList END { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(26/*RecordType*/, ((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 50: // SimpleTypeList ::= SimpleTypeList COMMA SimpleType { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(25/*SimpleTypeList*/, ((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 49: // SimpleTypeList ::= SimpleType { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(25/*SimpleTypeList*/, ((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 48: // ArrayType ::= ARRAY LEFTSQ SimpleTypeList RIGHTSQ OF Type { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(24/*ArrayType*/, ((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 47: // UnpackedType ::= FileType { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(23/*UnpackedType*/, ((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 46: // UnpackedType ::= SetType { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(23/*UnpackedType*/, ((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: // UnpackedType ::= RecordType { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(23/*UnpackedType*/, ((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: // UnpackedType ::= ArrayType { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(23/*UnpackedType*/, ((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: // StructuredType ::= PACKED UnpackedType { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(22/*StructuredType*/, ((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 42: // StructuredType ::= UnpackedType { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(22/*StructuredType*/, ((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: // SubrangeType ::= Constant DOTDOT Constant { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(21/*SubrangeType*/, ((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: // ScalarType ::= LEFT IdentList RIGHT { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(20/*ScalarType*/, ((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: // SimpleType ::= SubrangeType { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(19/*SimpleType*/, ((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 38: // SimpleType ::= ScalarType { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(19/*SimpleType*/, ((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 37: // SimpleType ::= IDENT { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(19/*SimpleType*/, ((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 36: // Type ::= PointerType { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(18/*Type*/, ((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 35: // Type ::= StructuredType { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(18/*Type*/, ((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 34: // Type ::= SimpleType { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(18/*Type*/, ((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 33: // TypeDeclr ::= IDENT EQ Type { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(17/*TypeDeclr*/, ((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 32: // TypeDeclrList ::= TypeDeclrList SEMICOLON TypeDeclr { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(16/*TypeDeclrList*/, ((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 31: // TypeDeclrList ::= TypeDeclr { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(16/*TypeDeclrList*/, ((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 30: // TypeDecl ::= TYPE TypeDeclrList SEMICOLON { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(15/*TypeDecl*/, ((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 29: // TypeDeclOpt ::= TypeDecl { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(14/*TypeDeclOpt*/, ((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 28: // TypeDeclOpt ::= { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(14/*TypeDeclOpt*/, ((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 27: // Constant ::= STRINGCONST { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(13/*Constant*/, ((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 26: // Constant ::= MINUS IDENT { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(13/*Constant*/, ((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 25: // Constant ::= PLUS IDENT { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(13/*Constant*/, ((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 24: // Constant ::= IDENT { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(13/*Constant*/, ((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 23: // Constant ::= MINUS REALCONST { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(13/*Constant*/, ((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 22: // Constant ::= PLUS REALCONST { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(13/*Constant*/, ((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 21: // Constant ::= REALCONST { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(13/*Constant*/, ((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 20: // Constant ::= MINUS INTCONST { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(13/*Constant*/, ((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 19: // Constant ::= PLUS INTCONST { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(13/*Constant*/, ((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 18: // Constant ::= INTCONST { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(13/*Constant*/, ((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 17: // ConstantList ::= ConstantList COMMA Constant { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(12/*ConstantList*/, ((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 16: // ConstantList ::= Constant { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(12/*ConstantList*/, ((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 15: // ConstDeclr ::= IDENT EQ Constant { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(11/*ConstDeclr*/, ((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 14: // ConstDeclrList ::= ConstDeclrList COMMA ConstDeclr { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(10/*ConstDeclrList*/, ((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 13: // ConstDeclrList ::= ConstDeclr { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(10/*ConstDeclrList*/, ((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: // ConstantDecl ::= CONST ConstDeclrList SEMICOLON { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(9/*ConstantDecl*/, ((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 11: // ConstantDeclOpt ::= ConstantDecl { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(8/*ConstantDeclOpt*/, ((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: // ConstantDeclOpt ::= { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(8/*ConstantDeclOpt*/, ((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 9: // LabelDeclr ::= INTCONST { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(7/*LabelDeclr*/, ((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 8: // LabelDeclrList ::= LabelDeclrList COMMA LabelDeclr { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(6/*LabelDeclrList*/, ((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 7: // LabelDeclrList ::= LabelDeclr { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(6/*LabelDeclrList*/, ((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 6: // LabelDecl ::= LABEL LabelDeclrList SEMICOLON { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(5/*LabelDecl*/, ((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 5: // LabelDeclOpt ::= LabelDecl { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(4/*LabelDeclOpt*/, ((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 4: // LabelDeclOpt ::= { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(4/*LabelDeclOpt*/, ((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: // Block ::= LabelDeclOpt ConstantDeclOpt TypeDeclOpt VarDeclOpt ProcDeclrList CompoundStmt { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(3/*Block*/, ((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 2: // ProgramHeading ::= PROGRAM IDENT LEFT IdentList RIGHT SEMICOLON { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(2/*ProgramHeading*/, ((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 1: // Program ::= ProgramHeading Block DOT { Object RESULT = null; CUP$parser$result = new java_cup.runtime.Symbol(1/*Program*/, ((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 0: // $START ::= Program 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"); } } }