1. //----------------------------------------------------
  2. // The following code was generated by CUP v0.10j
  3. // Sat Jul 24 08:05:57 EDT 1999
  4. //----------------------------------------------------
  5. package com.sun.java_cup.internal;
  6. import com.sun.java_cup.internal.runtime.*;
  7. import java.util.Hashtable;
  8. /** CUP v0.10j generated parser.
  9. * @version Sat Jul 24 08:05:57 EDT 1999
  10. */
  11. public class parser extends com.sun.java_cup.internal.runtime.lr_parser {
  12. /** Default constructor. */
  13. public parser() {super();}
  14. /** Constructor which sets the default scanner. */
  15. public parser(com.sun.java_cup.internal.runtime.Scanner s) {super(s);}
  16. /** Production table. */
  17. protected static final short _production_table[][] =
  18. unpackFromStrings(new String[] {
  19. "\000\153\000\002\002\004\000\002\055\002\000\002\003" +
  20. "\012\000\002\003\007\000\002\056\002\000\002\004\006" +
  21. "\000\002\004\003\000\002\005\004\000\002\005\003\000" +
  22. "\002\057\002\000\002\020\006\000\002\010\003\000\002" +
  23. "\010\003\000\002\010\003\000\002\010\003\000\002\007" +
  24. "\002\000\002\007\004\000\002\006\006\000\002\013\006" +
  25. "\000\002\022\006\000\002\023\006\000\002\014\004\000" +
  26. "\002\014\003\000\002\024\005\000\002\024\004\000\002" +
  27. "\024\005\000\002\024\004\000\002\060\002\000\002\024" +
  28. "\006\000\002\061\002\000\002\024\006\000\002\062\002" +
  29. "\000\002\044\005\000\002\063\002\000\002\045\005\000" +
  30. "\002\026\005\000\002\026\003\000\002\027\005\000\002" +
  31. "\027\003\000\002\040\003\000\002\040\003\000\002\043" +
  32. "\004\000\002\043\003\000\002\064\002\000\002\041\007" +
  33. "\000\002\065\002\000\002\041\007\000\002\066\002\000" +
  34. "\002\041\007\000\002\042\005\000\002\042\003\000\002" +
  35. "\052\003\000\002\053\003\000\002\067\002\000\002\015" +
  36. "\007\000\002\015\003\000\002\016\004\000\002\016\003" +
  37. "\000\002\070\002\000\002\071\002\000\002\030\010\000" +
  38. "\002\072\002\000\002\030\005\000\002\035\005\000\002" +
  39. "\035\003\000\002\036\005\000\002\036\003\000\002\031" +
  40. "\004\000\002\031\003\000\002\032\004\000\002\032\003" +
  41. "\000\002\051\004\000\002\051\003\000\002\017\005\000" +
  42. "\002\017\003\000\002\021\005\000\002\021\003\000\002" +
  43. "\025\003\000\002\025\005\000\002\033\003\000\002\034" +
  44. "\003\000\002\046\003\000\002\046\003\000\002\047\003" +
  45. "\000\002\047\003\000\002\050\003\000\002\054\003\000" +
  46. "\002\054\003\000\002\054\003\000\002\054\003\000\002" +
  47. "\054\003\000\002\054\003\000\002\054\003\000\002\054" +
  48. "\003\000\002\054\003\000\002\054\003\000\002\054\003" +
  49. "\000\002\054\003\000\002\054\003\000\002\054\003\000" +
  50. "\002\054\003\000\002\054\003\000\002\012\004\000\002" +
  51. "\012\003\000\002\011\002\000\002\011\003\000\002\037" +
  52. "\002" });
  53. /** Access to production table. */
  54. public short[][] production_table() {return _production_table;}
  55. /** Parse-action table. */
  56. protected static final short[][] _action_table =
  57. unpackFromStrings(new String[] {
  58. "\000\247\000\026\003\006\004\000\005\000\007\000\010" +
  59. "\000\011\000\012\000\013\000\014\000\035\000\001\002" +
  60. "\000\004\002\251\001\002\000\024\004\200\005\uff97\007" +
  61. "\uff97\010\uff97\011\uff97\012\uff97\013\uff97\014\uff97\035\uff97" +
  62. "\001\002\000\010\011\007\012\012\035\014\001\002\000" +
  63. "\042\003\163\006\026\007\027\010\040\011\036\012\022" +
  64. "\013\042\014\030\015\017\016\015\026\033\027\023\030" +
  65. "\035\031\041\035\025\036\160\001\002\000\020\003\uffeb" +
  66. "\011\uffeb\012\uffeb\016\uffeb\026\uffeb\035\uffeb\036\uffeb\001" +
  67. "\002\000\020\003\uff97\011\007\012\012\016\uff97\026\065" +
  68. "\035\014\036\uff97\001\002\000\004\011\061\001\002\000" +
  69. "\042\003\034\006\026\007\027\010\040\011\036\012\022" +
  70. "\013\042\014\030\015\017\016\015\026\033\027\023\030" +
  71. "\035\031\041\035\025\036\016\001\002\000\042\003\uff9a" +
  72. "\006\uff9a\007\uff9a\010\uff9a\011\uff9a\012\uff9a\013\uff9a\014" +
  73. "\uff9a\015\uff9a\016\uff9a\026\uff9a\027\uff9a\030\uff9a\031\uff9a" +
  74. "\035\uff9a\036\uff9a\001\002\000\022\003\uffa1\017\uffa1\022" +
  75. "\uffa1\025\uffa1\032\uffa1\033\uffa1\036\uffa1\037\uffa1\001\002" +
  76. "\000\014\017\uffb1\020\uffb1\022\uffab\033\uffab\036\uffab\001" +
  77. "\002\000\022\003\uffa2\017\uffa2\022\uffa2\025\uffa2\032\uffa2" +
  78. "\033\uffa2\036\uffa2\037\uffa2\001\002\000\006\017\uffe0\020" +
  79. "\055\001\002\000\010\022\051\033\uffb4\036\uffb4\001\002" +
  80. "\000\022\003\uffa6\017\uffa6\022\uffa6\025\uffa6\032\uffa6\033" +
  81. "\uffa6\036\uffa6\037\uffa6\001\002\000\022\003\uff9f\017\uff9f" +
  82. "\022\uff9f\025\uff9f\032\uff9f\033\uff9f\036\uff9f\037\uff9f\001" +
  83. "\002\000\006\033\047\036\045\001\002\000\022\003\uffa5" +
  84. "\017\uffa5\022\uffa5\025\uffa5\032\uffa5\033\uffa5\036\uffa5\037" +
  85. "\uffa5\001\002\000\022\003\uffaa\017\uffaa\022\uffaa\025\uffaa" +
  86. "\032\uffaa\033\uffaa\036\uffaa\037\uffaa\001\002\000\022\003" +
  87. "\uffa9\017\uffa9\022\uffa9\025\uffa9\032\uffa9\033\uffa9\036\uffa9" +
  88. "\037\uffa9\001\002\000\022\003\uffa3\017\uffa3\022\uffa3\025" +
  89. "\uffa3\032\uffa3\033\uffa3\036\uffa3\037\uffa3\001\002\000\012" +
  90. "\017\uffb7\022\uffb7\033\uffb7\036\uffb7\001\002\000\020\003" +
  91. "\uffe7\011\uffe7\012\uffe7\016\uffe7\026\uffe7\035\uffe7\036\uffe7" +
  92. "\001\002\000\022\003\uffa0\017\uffa0\022\uffa0\025\uffa0\032" +
  93. "\uffa0\033\uffa0\036\uffa0\037\uffa0\001\002\000\012\017\uffe4" +
  94. "\022\uff9c\033\uff9c\036\uff9c\001\002\000\022\003\uff9e\017" +
  95. "\uff9e\022\uff9e\025\uff9e\032\uff9e\033\uff9e\036\uff9e\037\uff9e" +
  96. "\001\002\000\022\003\uffa7\017\uffa7\022\uffa7\025\uffa7\032" +
  97. "\uffa7\033\uffa7\036\uffa7\037\uffa7\001\002\000\006\017\uffdb" +
  98. "\020\uffdb\001\002\000\022\003\uffa8\017\uffa8\022\uffa8\025" +
  99. "\uffa8\032\uffa8\033\uffa8\036\uffa8\037\uffa8\001\002\000\022" +
  100. "\003\uff9d\017\uff9d\022\uff9d\025\uff9d\032\uff9d\033\uff9d\036" +
  101. "\uff9d\037\uff9d\001\002\000\022\003\uffa4\017\uffa4\022\uffa4" +
  102. "\025\uffa4\032\uffa4\033\uffa4\036\uffa4\037\uffa4\001\002\000" +
  103. "\004\017\044\001\002\000\020\003\uffe3\011\uffe3\012\uffe3" +
  104. "\016\uffe3\026\uffe3\035\uffe3\036\uffe3\001\002\000\006\017" +
  105. "\uffb1\020\uffb1\001\002\000\020\003\uffe8\011\uffe8\012\uffe8" +
  106. "\016\uffe8\026\uffe8\035\uffe8\036\uffe8\001\002\000\004\034" +
  107. "\050\001\002\000\006\033\uffb3\036\uffb3\001\002\000\042" +
  108. "\003\054\006\026\007\027\010\040\011\036\012\022\013" +
  109. "\042\014\030\015\017\016\015\026\033\027\023\030\035" +
  110. "\031\041\035\025\036\053\001\002\000\012\017\uffb8\022" +
  111. "\uffb8\033\uffb8\036\uffb8\001\002\000\022\003\uffab\017\uffab" +
  112. "\022\uffab\025\uffab\032\uffab\033\uffab\036\uffab\037\uffab\001" +
  113. "\002\000\022\003\uff9c\017\uff9c\022\uff9c\025\uff9c\032\uff9c" +
  114. "\033\uff9c\036\uff9c\037\uff9c\001\002\000\004\036\045\001" +
  115. "\002\000\004\017\057\001\002\000\020\003\uffdf\011\uffdf" +
  116. "\012\uffdf\016\uffdf\026\uffdf\035\uffdf\036\uffdf\001\002\000" +
  117. "\006\017\uffdc\020\uffdc\001\002\000\042\003\uff9b\006\uff9b" +
  118. "\007\uff9b\010\uff9b\011\uff9b\012\uff9b\013\uff9b\014\uff9b\015" +
  119. "\uff9b\016\uff9b\026\uff9b\027\uff9b\030\uff9b\031\uff9b\035\uff9b" +
  120. "\036\uff9b\001\002\000\010\003\uff97\016\116\036\uff97\001" +
  121. "\002\000\012\003\uffda\016\uffda\026\065\036\uffda\001\002" +
  122. "\000\010\003\uffd9\016\uffd9\036\uffd9\001\002\000\010\027" +
  123. "\071\030\072\031\070\001\002\000\020\003\uffec\011\uffec" +
  124. "\012\uffec\016\uffec\026\uffec\035\uffec\036\uffec\001\002\000" +
  125. "\012\003\uffd7\016\uffd7\026\uffd7\036\uffd7\001\002\000\006" +
  126. "\003\uffd2\036\uffd2\001\002\000\006\003\uffd6\036\uffd6\001" +
  127. "\002\000\006\003\uffd4\036\uffd4\001\002\000\006\003\077" +
  128. "\036\074\001\002\000\022\003\uffae\017\uffae\020\uffae\023" +
  129. "\uffae\025\uffae\032\uffae\036\uffae\037\uffae\001\002\000\010" +
  130. "\017\uffcd\020\uffcd\025\uffcd\001\002\000\006\017\uffce\020" +
  131. "\uffce\001\002\000\022\003\uffad\017\uffad\020\uffad\023\uffad" +
  132. "\025\uffad\032\uffad\036\uffad\037\uffad\001\002\000\006\017" +
  133. "\102\020\103\001\002\000\006\017\uffcf\020\uffcf\001\002" +
  134. "\000\012\003\uffd3\016\uffd3\026\uffd3\036\uffd3\001\002\000" +
  135. "\006\003\077\036\074\001\002\000\006\017\uffd0\020\uffd0" +
  136. "\001\002\000\006\003\077\036\074\001\002\000\006\017" +
  137. "\107\020\103\001\002\000\012\003\uffd5\016\uffd5\026\uffd5" +
  138. "\036\uffd5\001\002\000\006\003\077\036\074\001\002\000" +
  139. "\006\017\112\020\103\001\002\000\012\003\uffd1\016\uffd1" +
  140. "\026\uffd1\036\uffd1\001\002\000\012\003\uffd8\016\uffd8\026" +
  141. "\uffd8\036\uffd8\001\002\000\006\003\uffca\036\uffca\001\002" +
  142. "\000\006\003\126\036\120\001\002\000\004\015\117\001" +
  143. "\002\000\006\003\122\036\120\001\002\000\006\017\uffb0" +
  144. "\024\uffb0\001\002\000\004\017\uffcc\001\002\000\004\017" +
  145. "\uffaf\001\002\000\004\017\124\001\002\000\006\003\uffcb" +
  146. "\036\uffcb\001\002\000\004\024\uffc7\001\002\000\006\017" +
  147. "\uffc4\024\uffaf\001\002\000\010\002\ufffe\003\126\036\120" +
  148. "\001\002\000\010\002\uffc8\003\uffc8\036\uffc8\001\002\000" +
  149. "\010\002\uffc9\003\uffc9\036\uffc9\001\002\000\004\017\133" +
  150. "\001\002\000\010\002\uffc3\003\uffc3\036\uffc3\001\002\000" +
  151. "\004\024\135\001\002\000\016\003\uffc6\017\uffc6\025\uffc6" +
  152. "\032\uffc6\036\uffc6\037\uffc6\001\002\000\016\003\uff97\017" +
  153. "\uff97\025\uff97\032\uff97\036\uff97\037\uff97\001\002\000\016" +
  154. "\003\uffbd\017\uffbd\025\uffbd\032\uffbd\036\uffbd\037\uffbd\001" +
  155. "\002\000\016\003\077\017\uffbf\025\uffbf\032\147\036\074" +
  156. "\037\146\001\002\000\006\017\uffc1\025\uffc1\001\002\000" +
  157. "\006\017\143\025\144\001\002\000\010\002\uffc5\003\uffc5" +
  158. "\036\uffc5\001\002\000\016\003\uff97\017\uff97\025\uff97\032" +
  159. "\uff97\036\uff97\037\uff97\001\002\000\006\017\uffc2\025\uffc2" +
  160. "\001\002\000\016\003\uffbb\017\uffbb\025\uffbb\032\uffbb\036" +
  161. "\uffbb\037\uffbb\001\002\000\006\003\077\036\074\001\002" +
  162. "\000\020\003\uff97\017\uff97\023\154\025\uff97\032\uff97\036" +
  163. "\uff97\037\uff97\001\002\000\016\003\uffbe\017\uffbe\025\uffbe" +
  164. "\032\uffbe\036\uffbe\037\uffbe\001\002\000\016\003\uffb9\017" +
  165. "\uffb9\025\uffb9\032\uffb9\036\uffb9\037\uffb9\001\002\000\016" +
  166. "\003\uffbc\017\uffbc\025\uffbc\032\uffbc\036\uffbc\037\uffbc\001" +
  167. "\002\000\042\003\054\006\026\007\027\010\040\011\036" +
  168. "\012\022\013\042\014\030\015\017\016\015\026\033\027" +
  169. "\023\030\035\031\041\035\025\036\053\001\002\000\016" +
  170. "\003\uffba\017\uffba\025\uffba\032\uffba\036\uffba\037\uffba\001" +
  171. "\002\000\016\003\uffac\017\uffac\025\uffac\032\uffac\036\uffac" +
  172. "\037\uffac\001\002\000\006\017\uffc0\025\uffc0\001\002\000" +
  173. "\014\017\uffb2\020\uffb2\022\uffab\033\uffab\036\uffab\001\002" +
  174. "\000\006\033\047\036\170\001\002\000\006\017\uffdd\020" +
  175. "\uffdd\001\002\000\012\017\uffe6\022\uff9c\033\uff9c\036\uff9c" +
  176. "\001\002\000\020\003\uffe9\011\uffe9\012\uffe9\016\uffe9\026" +
  177. "\uffe9\035\uffe9\036\uffe9\001\002\000\006\017\uffe2\020\167" +
  178. "\001\002\000\004\017\172\001\002\000\004\036\170\001" +
  179. "\002\000\006\017\uffb2\020\uffb2\001\002\000\006\017\uffde" +
  180. "\020\uffde\001\002\000\020\003\uffe1\011\uffe1\012\uffe1\016" +
  181. "\uffe1\026\uffe1\035\uffe1\036\uffe1\001\002\000\004\017\174" +
  182. "\001\002\000\020\003\uffe5\011\uffe5\012\uffe5\016\uffe5\026" +
  183. "\uffe5\035\uffe5\036\uffe5\001\002\000\020\003\uffea\011\uffea" +
  184. "\012\uffea\016\uffea\026\uffea\035\uffea\036\uffea\001\002\000" +
  185. "\022\005\ufffb\007\ufffb\010\ufffb\011\ufffb\012\ufffb\013\ufffb" +
  186. "\014\ufffb\035\ufffb\001\002\000\022\005\uff97\007\uff97\010" +
  187. "\uff97\011\uff97\012\uff97\013\uff97\014\uff97\035\uff97\001\002" +
  188. "\000\042\003\054\006\026\007\027\010\040\011\036\012" +
  189. "\022\013\042\014\030\015\017\016\015\026\033\027\023" +
  190. "\030\035\031\041\035\025\036\053\001\002\000\006\017" +
  191. "\ufffd\022\051\001\002\000\004\017\203\001\002\000\022" +
  192. "\005\ufffc\007\ufffc\010\ufffc\011\ufffc\012\ufffc\013\ufffc\014" +
  193. "\ufffc\035\ufffc\001\002\000\022\005\210\007\ufff2\010\ufff2" +
  194. "\011\ufff2\012\ufff2\013\ufff2\014\ufff2\035\ufff2\001\002\000" +
  195. "\022\005\ufff9\007\ufff9\010\ufff9\011\ufff9\012\ufff9\013\ufff9" +
  196. "\014\ufff9\035\ufff9\001\002\000\020\007\223\010\224\011" +
  197. "\007\012\012\013\227\014\225\035\014\001\002\000\022" +
  198. "\005\ufffa\007\ufffa\010\ufffa\011\ufffa\012\ufffa\013\ufffa\014" +
  199. "\ufffa\035\ufffa\001\002\000\042\003\054\006\026\007\027" +
  200. "\010\040\011\036\012\022\013\042\014\030\015\017\016" +
  201. "\015\026\033\027\023\030\035\031\041\035\025\036\053" +
  202. "\001\002\000\006\017\uffb5\022\215\001\002\000\004\017" +
  203. "\ufff8\001\002\000\004\017\214\001\002\000\022\005\ufff7" +
  204. "\007\ufff7\010\ufff7\011\ufff7\012\ufff7\013\ufff7\014\ufff7\035" +
  205. "\ufff7\001\002\000\044\003\054\006\026\007\027\010\040" +
  206. "\011\036\012\022\013\042\014\030\015\017\016\015\021" +
  207. "\216\026\033\027\023\030\035\031\041\035\025\036\053" +
  208. "\001\002\000\004\017\uffb6\001\002\000\020\007\ufff3\010" +
  209. "\ufff3\011\ufff3\012\ufff3\013\ufff3\014\ufff3\035\ufff3\001\002" +
  210. "\000\020\007\ufff5\010\ufff5\011\ufff5\012\ufff5\013\ufff5\014" +
  211. "\ufff5\035\ufff5\001\002\000\020\007\ufff1\010\ufff1\011\ufff1" +
  212. "\012\ufff1\013\ufff1\014\ufff1\035\ufff1\001\002\000\020\007" +
  213. "\ufff4\010\ufff4\011\ufff4\012\ufff4\013\ufff4\014\ufff4\035\ufff4" +
  214. "\001\002\000\004\006\246\001\002\000\004\006\243\001" +
  215. "\002\000\004\015\240\001\002\000\020\007\ufff6\010\ufff6" +
  216. "\011\ufff6\012\ufff6\013\ufff6\014\ufff6\035\ufff6\001\002\000" +
  217. "\004\015\234\001\002\000\020\003\uff97\011\007\012\012" +
  218. "\016\uff97\026\065\035\014\036\uff97\001\002\000\010\003" +
  219. "\uff97\016\116\036\uff97\001\002\000\006\003\126\036\120" +
  220. "\001\002\000\010\002\uffff\003\126\036\120\001\002\000" +
  221. "\004\037\235\001\002\000\022\007\uff99\010\uff99\011\uff99" +
  222. "\012\uff99\013\uff99\014\uff99\017\236\035\uff99\001\002\000" +
  223. "\020\007\uff98\010\uff98\011\uff98\012\uff98\013\uff98\014\uff98" +
  224. "\035\uff98\001\002\000\020\007\uffee\010\uffee\011\uffee\012" +
  225. "\uffee\013\uffee\014\uffee\035\uffee\001\002\000\004\037\241" +
  226. "\001\002\000\022\007\uff99\010\uff99\011\uff99\012\uff99\013" +
  227. "\uff99\014\uff99\017\236\035\uff99\001\002\000\020\007\uffed" +
  228. "\010\uffed\011\uffed\012\uffed\013\uffed\014\uffed\035\uffed\001" +
  229. "\002\000\004\037\244\001\002\000\022\007\uff99\010\uff99" +
  230. "\011\uff99\012\uff99\013\uff99\014\uff99\017\236\035\uff99\001" +
  231. "\002\000\020\007\uffef\010\uffef\011\uffef\012\uffef\013\uffef" +
  232. "\014\uffef\035\uffef\001\002\000\004\037\247\001\002\000" +
  233. "\022\007\uff99\010\uff99\011\uff99\012\uff99\013\uff99\014\uff99" +
  234. "\017\236\035\uff99\001\002\000\020\007\ufff0\010\ufff0\011" +
  235. "\ufff0\012\ufff0\013\ufff0\014\ufff0\035\ufff0\001\002\000\004" +
  236. "\002\001\001\002" });
  237. /** Access to parse-action table. */
  238. public short[][] action_table() {return _action_table;}
  239. /** <code>reduce_goto</code> table. */
  240. protected static final short[][] _reduce_table =
  241. unpackFromStrings(new String[] {
  242. "\000\247\000\006\003\003\055\004\001\001\000\002\001" +
  243. "\001\000\006\004\176\037\175\001\001\000\010\012\012" +
  244. "\014\010\024\007\001\001\000\016\017\020\025\160\026" +
  245. "\164\033\161\044\163\054\030\001\001\000\002\001\001" +
  246. "\000\016\012\012\024\065\037\063\040\061\041\066\043" +
  247. "\062\001\001\000\002\001\001\000\016\017\020\025\023" +
  248. "\027\017\034\036\045\031\054\030\001\001\000\002\001" +
  249. "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
  250. "\000\004\063\055\001\001\000\002\001\001\000\002\001" +
  251. "\001\000\002\001\001\000\010\027\017\034\036\045\045" +
  252. "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
  253. "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
  254. "\000\002\001\001\000\004\061\042\001\001\000\002\001" +
  255. "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
  256. "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
  257. "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
  258. "\001\001\000\002\001\001\000\004\054\051\001\001\000" +
  259. "\002\001\001\000\002\001\001\000\002\001\001\000\004" +
  260. "\034\057\001\001\000\002\001\001\000\002\001\001\000" +
  261. "\002\001\001\000\002\001\001\000\006\015\114\037\113" +
  262. "\001\001\000\004\041\112\001\001\000\002\001\001\000" +
  263. "\002\001\001\000\002\001\001\000\002\001\001\000\004" +
  264. "\066\107\001\001\000\004\064\104\001\001\000\004\065" +
  265. "\072\001\001\000\012\042\077\047\074\052\100\053\075" +
  266. "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
  267. "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
  268. "\000\002\001\001\000\010\047\074\052\103\053\075\001" +
  269. "\001\000\002\001\001\000\012\042\105\047\074\052\100" +
  270. "\053\075\001\001\000\002\001\001\000\002\001\001\000" +
  271. "\012\042\110\047\074\052\100\053\075\001\001\000\002" +
  272. "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
  273. "\001\000\010\016\126\030\127\046\124\001\001\000\002" +
  274. "\001\001\000\004\046\120\001\001\000\002\001\001\000" +
  275. "\004\067\122\001\001\000\002\001\001\000\002\001\001" +
  276. "\000\002\001\001\000\004\070\133\001\001\000\004\072" +
  277. "\131\001\001\000\006\030\130\046\124\001\001\000\002" +
  278. "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
  279. "\001\000\002\001\001\000\004\071\135\001\001\000\012" +
  280. "\031\137\035\141\036\140\037\136\001\001\000\002\001" +
  281. "\001\000\006\032\150\047\147\001\001\000\002\001\001" +
  282. "\000\002\001\001\000\002\001\001\000\010\031\137\036" +
  283. "\144\037\136\001\001\000\002\001\001\000\002\001\001" +
  284. "\000\006\047\074\053\156\001\001\000\006\037\151\051" +
  285. "\152\001\001\000\002\001\001\000\002\001\001\000\002" +
  286. "\001\001\000\006\050\154\054\155\001\001\000\002\001" +
  287. "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
  288. "\000\010\026\164\033\161\044\174\001\001\000\002\001" +
  289. "\001\000\004\060\172\001\001\000\002\001\001\000\004" +
  290. "\062\165\001\001\000\002\001\001\000\004\033\170\001" +
  291. "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
  292. "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
  293. "\002\001\001\000\006\005\203\037\204\001\001\000\006" +
  294. "\017\200\054\030\001\001\000\004\056\201\001\001\000" +
  295. "\002\001\001\000\002\001\001\000\006\007\205\020\206" +
  296. "\001\001\000\002\001\001\000\022\006\225\010\220\012" +
  297. "\012\013\217\014\227\022\221\023\216\024\007\001\001" +
  298. "\000\002\001\001\000\010\017\210\021\211\054\030\001" +
  299. "\001\000\002\001\001\000\004\057\212\001\001\000\002" +
  300. "\001\001\000\002\001\001\000\004\054\051\001\001\000" +
  301. "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
  302. "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
  303. "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
  304. "\000\016\012\012\024\065\037\063\040\230\041\066\043" +
  305. "\062\001\001\000\006\015\231\037\113\001\001\000\010" +
  306. "\016\232\030\127\046\124\001\001\000\006\030\130\046" +
  307. "\124\001\001\000\002\001\001\000\004\011\236\001\001" +
  308. "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
  309. "\004\011\241\001\001\000\002\001\001\000\002\001\001" +
  310. "\000\004\011\244\001\001\000\002\001\001\000\002\001" +
  311. "\001\000\004\011\247\001\001\000\002\001\001\000\002" +
  312. "\001\001" });
  313. /** Access to <code>reduce_goto</code> table. */
  314. public short[][] reduce_table() {return _reduce_table;}
  315. /** Instance of action encapsulation class. */
  316. protected CUP$parser$actions action_obj;
  317. /** Action encapsulation object initializer. */
  318. protected void init_actions()
  319. {
  320. action_obj = new CUP$parser$actions(this);
  321. }
  322. /** Invoke a user supplied parse action. */
  323. public com.sun.java_cup.internal.runtime.Symbol do_action(
  324. int act_num,
  325. com.sun.java_cup.internal.runtime.lr_parser parser,
  326. java.util.Stack stack,
  327. int top)
  328. throws java.lang.Exception
  329. {
  330. /* call code in generated class */
  331. return action_obj.CUP$parser$do_action(act_num, parser, stack, top);
  332. }
  333. /** Indicates start state. */
  334. public int start_state() {return 0;}
  335. /** Indicates start production. */
  336. public int start_production() {return 0;}
  337. /** <code>EOF</code> Symbol index. */
  338. public int EOF_sym() {return 0;}
  339. /** <code>error</code> Symbol index. */
  340. public int error_sym() {return 1;}
  341. /** User initialization code. */
  342. public void user_init() throws java.lang.Exception
  343. {
  344. lexer.init();
  345. }
  346. /** Scan to get the next Symbol. */
  347. public com.sun.java_cup.internal.runtime.Symbol scan()
  348. throws java.lang.Exception
  349. {
  350. return lexer.next_token();
  351. }
  352. /* override error routines */
  353. public void report_fatal_error(
  354. String message,
  355. Object info)
  356. {
  357. done_parsing();
  358. lexer.emit_error(message);
  359. System.err.println("Can't recover from previous error(s), giving up.");
  360. System.exit(1);
  361. }
  362. public void report_error(String message, Object info)
  363. {
  364. lexer.emit_error(message);
  365. }
  366. }
  367. /** Cup generated class to encapsulate user supplied action code.*/
  368. class CUP$parser$actions {
  369. /** helper routine to clone a new production part adding a given label */
  370. protected production_part add_lab(production_part part, String lab)
  371. throws internal_error
  372. {
  373. /* if there is no label, or this is an action, just return the original */
  374. if (lab == null || part.is_action()) return part;
  375. /* otherwise build a new one with the given label attached */
  376. return new symbol_part(((symbol_part)part).the_symbol(),lab);
  377. }
  378. /** max size of right hand side we will support */
  379. protected final int MAX_RHS = 200;
  380. /** array for accumulating right hand side parts */
  381. protected production_part[] rhs_parts = new production_part[MAX_RHS];
  382. /** where we are currently in building a right hand side */
  383. protected int rhs_pos = 0;
  384. /** start a new right hand side */
  385. protected void new_rhs() {rhs_pos = 0; }
  386. /** add a new right hand side part */
  387. protected void add_rhs_part(production_part part) throws java.lang.Exception
  388. {
  389. if (rhs_pos >= MAX_RHS)
  390. throw new Exception("Internal Error: Productions limited to " +
  391. MAX_RHS + " symbols and actions");
  392. rhs_parts[rhs_pos] = part;
  393. rhs_pos++;
  394. }
  395. /** string to build up multiple part names */
  396. protected String multipart_name = new String();
  397. /** append a new name segment to the accumulated multipart name */
  398. protected void append_multipart(String name)
  399. {
  400. String dot = "";
  401. /* if we aren't just starting out, put on a dot */
  402. if (multipart_name.length() != 0) dot = ".";
  403. multipart_name = multipart_name.concat(dot + name);
  404. }
  405. /** table of declared symbols -- contains production parts indexed by name */
  406. protected Hashtable symbols = new Hashtable();
  407. /** table of just non terminals -- contains non_terminals indexed by name */
  408. protected Hashtable non_terms = new Hashtable();
  409. /** declared start non_terminal */
  410. protected non_terminal start_nt = null;
  411. /** left hand side non terminal of the current production */
  412. protected non_terminal lhs_nt;
  413. /** Current precedence number */
  414. int _cur_prec = 0;
  415. /** Current precedence side */
  416. int _cur_side = assoc.no_prec;
  417. /** update the precedences we are declaring */
  418. protected void update_precedence(int p) {
  419. _cur_side = p;
  420. _cur_prec++;
  421. }
  422. /** add relevant data to terminals */
  423. protected void add_precedence(String term) {
  424. if (term == null) {
  425. System.err.println("Unable to add precedence to nonexistent terminal");
  426. } else {
  427. symbol_part sp = (symbol_part)symbols.get(term);
  428. if (sp == null) {
  429. System.err.println("Could find terminal " + term + " while declaring precedence");
  430. } else {
  431. com.sun.java_cup.internal.symbol sym = sp.the_symbol();
  432. if (sym instanceof terminal)
  433. ((terminal)sym).set_precedence(_cur_side, _cur_prec);
  434. else System.err.println("Precedence declaration: Can't find terminal " + term);
  435. }
  436. }
  437. }
  438. private final parser parser;
  439. /** Constructor */
  440. CUP$parser$actions(parser parser) {
  441. this.parser = parser;
  442. }
  443. /** Method with the actual generated action code. */
  444. public final com.sun.java_cup.internal.runtime.Symbol CUP$parser$do_action(
  445. int CUP$parser$act_num,
  446. com.sun.java_cup.internal.runtime.lr_parser CUP$parser$parser,
  447. java.util.Stack CUP$parser$stack,
  448. int CUP$parser$top)
  449. throws java.lang.Exception
  450. {
  451. /* Symbol object for return from actions */
  452. com.sun.java_cup.internal.runtime.Symbol CUP$parser$result;
  453. /* select the action based on the action number */
  454. switch (CUP$parser$act_num)
  455. {
  456. /*. . . . . . . . . . . . . . . . . . . .*/
  457. case 106: // empty ::=
  458. {
  459. Object RESULT = null;
  460. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(29/*empty*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  461. }
  462. return CUP$parser$result;
  463. /*. . . . . . . . . . . . . . . . . . . .*/
  464. case 105: // opt_semi ::= SEMI
  465. {
  466. Object RESULT = null;
  467. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(7/*opt_semi*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  468. }
  469. return CUP$parser$result;
  470. /*. . . . . . . . . . . . . . . . . . . .*/
  471. case 104: // opt_semi ::=
  472. {
  473. Object RESULT = null;
  474. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(7/*opt_semi*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  475. }
  476. return CUP$parser$result;
  477. /*. . . . . . . . . . . . . . . . . . . .*/
  478. case 103: // non_terminal ::= NONTERMINAL
  479. {
  480. Object RESULT = null;
  481. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(8/*non_terminal*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  482. }
  483. return CUP$parser$result;
  484. /*. . . . . . . . . . . . . . . . . . . .*/
  485. case 102: // non_terminal ::= NON TERMINAL
  486. {
  487. Object RESULT = null;
  488. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(8/*non_terminal*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  489. }
  490. return CUP$parser$result;
  491. /*. . . . . . . . . . . . . . . . . . . .*/
  492. case 101: // robust_id ::= error
  493. {
  494. String RESULT = null;
  495. lexer.emit_error("Illegal use of reserved word");
  496. RESULT="ILLEGAL";
  497. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(42/*robust_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  498. }
  499. return CUP$parser$result;
  500. /*. . . . . . . . . . . . . . . . . . . .*/
  501. case 100: // robust_id ::= NONASSOC
  502. {
  503. String RESULT = null;
  504. RESULT = "nonassoc";
  505. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(42/*robust_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  506. }
  507. return CUP$parser$result;
  508. /*. . . . . . . . . . . . . . . . . . . .*/
  509. case 99: // robust_id ::= RIGHT
  510. {
  511. String RESULT = null;
  512. RESULT = "right";
  513. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(42/*robust_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  514. }
  515. return CUP$parser$result;
  516. /*. . . . . . . . . . . . . . . . . . . .*/
  517. case 98: // robust_id ::= LEFT
  518. {
  519. String RESULT = null;
  520. RESULT = "left";
  521. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(42/*robust_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  522. }
  523. return CUP$parser$result;
  524. /*. . . . . . . . . . . . . . . . . . . .*/
  525. case 97: // robust_id ::= PRECEDENCE
  526. {
  527. String RESULT = null;
  528. RESULT = "precedence";
  529. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(42/*robust_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  530. }
  531. return CUP$parser$result;
  532. /*. . . . . . . . . . . . . . . . . . . .*/
  533. case 96: // robust_id ::= START
  534. {
  535. String RESULT = null;
  536. RESULT = "start";
  537. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(42/*robust_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  538. }
  539. return CUP$parser$result;
  540. /*. . . . . . . . . . . . . . . . . . . .*/
  541. case 95: // robust_id ::= WITH
  542. {
  543. String RESULT = null;
  544. RESULT = "with";
  545. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(42/*robust_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  546. }
  547. return CUP$parser$result;
  548. /*. . . . . . . . . . . . . . . . . . . .*/
  549. case 94: // robust_id ::= SCAN
  550. {
  551. String RESULT = null;
  552. RESULT = "scan";
  553. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(42/*robust_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  554. }
  555. return CUP$parser$result;
  556. /*. . . . . . . . . . . . . . . . . . . .*/
  557. case 93: // robust_id ::= INIT
  558. {
  559. String RESULT = null;
  560. RESULT = "init";
  561. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(42/*robust_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  562. }
  563. return CUP$parser$result;
  564. /*. . . . . . . . . . . . . . . . . . . .*/
  565. case 92: // robust_id ::= NONTERMINAL
  566. {
  567. String RESULT = null;
  568. RESULT = "nonterminal";
  569. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(42/*robust_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  570. }
  571. return CUP$parser$result;
  572. /*. . . . . . . . . . . . . . . . . . . .*/
  573. case 91: // robust_id ::= NON
  574. {
  575. String RESULT = null;
  576. RESULT = "non";
  577. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(42/*robust_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  578. }
  579. return CUP$parser$result;
  580. /*. . . . . . . . . . . . . . . . . . . .*/
  581. case 90: // robust_id ::= TERMINAL
  582. {
  583. String RESULT = null;
  584. RESULT = "terminal";
  585. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(42/*robust_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  586. }
  587. return CUP$parser$result;
  588. /*. . . . . . . . . . . . . . . . . . . .*/
  589. case 89: // robust_id ::= PARSER
  590. {
  591. String RESULT = null;
  592. RESULT = "parser";
  593. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(42/*robust_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  594. }
  595. return CUP$parser$result;
  596. /*. . . . . . . . . . . . . . . . . . . .*/
  597. case 88: // robust_id ::= ACTION
  598. {
  599. String RESULT = null;
  600. RESULT = "action";
  601. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(42/*robust_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  602. }
  603. return CUP$parser$result;
  604. /*. . . . . . . . . . . . . . . . . . . .*/
  605. case 87: // robust_id ::= CODE
  606. {
  607. String RESULT = null;
  608. RESULT = "code";
  609. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(42/*robust_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  610. }
  611. return CUP$parser$result;
  612. /*. . . . . . . . . . . . . . . . . . . .*/
  613. case 86: // robust_id ::= ID
  614. {
  615. String RESULT = null;
  616. int the_idleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
  617. int the_idright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
  618. String the_id = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
  619. RESULT = the_id;
  620. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(42/*robust_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  621. }
  622. return CUP$parser$result;
  623. /*. . . . . . . . . . . . . . . . . . . .*/
  624. case 85: // label_id ::= robust_id
  625. {
  626. String RESULT = null;
  627. int the_idleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
  628. int the_idright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
  629. String the_id = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
  630. RESULT = the_id;
  631. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(38/*label_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  632. }
  633. return CUP$parser$result;
  634. /*. . . . . . . . . . . . . . . . . . . .*/
  635. case 84: // symbol_id ::= error
  636. {
  637. String RESULT = null;
  638. lexer.emit_error("Illegal use of reserved word");
  639. RESULT="ILLEGAL";
  640. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*symbol_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  641. }
  642. return CUP$parser$result;
  643. /*. . . . . . . . . . . . . . . . . . . .*/
  644. case 83: // symbol_id ::= ID
  645. {
  646. String RESULT = null;
  647. int the_idleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
  648. int the_idright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
  649. String the_id = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
  650. RESULT = the_id;
  651. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*symbol_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  652. }
  653. return CUP$parser$result;
  654. /*. . . . . . . . . . . . . . . . . . . .*/
  655. case 82: // nt_id ::= error
  656. {
  657. String RESULT = null;
  658. lexer.emit_error("Illegal use of reserved word");
  659. RESULT="ILLEGAL";
  660. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(36/*nt_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  661. }
  662. return CUP$parser$result;
  663. /*. . . . . . . . . . . . . . . . . . . .*/
  664. case 81: // nt_id ::= ID
  665. {
  666. String RESULT = null;
  667. int the_idleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
  668. int the_idright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
  669. String the_id = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
  670. RESULT = the_id;
  671. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(36/*nt_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  672. }
  673. return CUP$parser$result;
  674. /*. . . . . . . . . . . . . . . . . . . .*/
  675. case 80: // new_non_term_id ::= ID
  676. {
  677. Object RESULT = null;
  678. int non_term_idleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
  679. int non_term_idright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
  680. String non_term_id = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
  681. /* see if this non terminal has been declared before */
  682. if (symbols.get(non_term_id) != null)
  683. {
  684. /* issue a message */
  685. lexer.emit_error( "com.sun.java_cup.internal.runtime.Symbol \"" + non_term_id +
  686. "\" has already been declared");
  687. }
  688. else
  689. {
  690. if (multipart_name.equals("")) {
  691. append_multipart("Object");
  692. }
  693. /* build the non terminal object */
  694. non_terminal this_nt =
  695. new non_terminal(non_term_id, multipart_name);
  696. /* put it in the non_terms table */
  697. non_terms.put(non_term_id, this_nt);
  698. /* build a production_part and put it in the symbols table */
  699. symbols.put(non_term_id, new symbol_part(this_nt));
  700. }
  701. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(26/*new_non_term_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  702. }
  703. return CUP$parser$result;
  704. /*. . . . . . . . . . . . . . . . . . . .*/
  705. case 79: // new_term_id ::= ID
  706. {
  707. Object RESULT = null;
  708. int term_idleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
  709. int term_idright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
  710. String term_id = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
  711. /* see if this terminal has been declared before */
  712. if (symbols.get(term_id) != null)
  713. {
  714. /* issue a message */
  715. lexer.emit_error("com.sun.java_cup.internal.runtime.Symbol \"" + term_id +
  716. "\" has already been declared");
  717. }
  718. else
  719. {
  720. /* if no type declared, declare one */
  721. if (multipart_name.equals("")) {
  722. append_multipart("Object");
  723. }
  724. /* build a production_part and put it in the table */
  725. symbols.put(term_id,
  726. new symbol_part(new terminal(term_id, multipart_name)));
  727. }
  728. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(25/*new_term_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  729. }
  730. return CUP$parser$result;
  731. /*. . . . . . . . . . . . . . . . . . . .*/
  732. case 78: // type_id ::= type_id LBRACK RBRACK
  733. {
  734. Object RESULT = null;
  735. multipart_name = multipart_name.concat("[]");
  736. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(19/*type_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  737. }
  738. return CUP$parser$result;
  739. /*. . . . . . . . . . . . . . . . . . . .*/
  740. case 77: // type_id ::= multipart_id
  741. {
  742. Object RESULT = null;
  743. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(19/*type_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  744. }
  745. return CUP$parser$result;
  746. /*. . . . . . . . . . . . . . . . . . . .*/
  747. case 76: // import_id ::= multipart_id
  748. {
  749. Object RESULT = null;
  750. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(15/*import_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  751. }
  752. return CUP$parser$result;
  753. /*. . . . . . . . . . . . . . . . . . . .*/
  754. case 75: // import_id ::= multipart_id DOT STAR
  755. {
  756. Object RESULT = null;
  757. append_multipart("*");
  758. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(15/*import_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  759. }
  760. return CUP$parser$result;
  761. /*. . . . . . . . . . . . . . . . . . . .*/
  762. case 74: // multipart_id ::= robust_id
  763. {
  764. Object RESULT = null;
  765. int an_idleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
  766. int an_idright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
  767. String an_id = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
  768. append_multipart(an_id);
  769. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(13/*multipart_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  770. }
  771. return CUP$parser$result;
  772. /*. . . . . . . . . . . . . . . . . . . .*/
  773. case 73: // multipart_id ::= multipart_id DOT robust_id
  774. {
  775. Object RESULT = null;
  776. int another_idleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
  777. int another_idright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
  778. String another_id = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
  779. append_multipart(another_id);
  780. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(13/*multipart_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  781. }
  782. return CUP$parser$result;
  783. /*. . . . . . . . . . . . . . . . . . . .*/
  784. case 72: // opt_label ::= empty
  785. {
  786. String RESULT = null;
  787. RESULT = null;
  788. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(39/*opt_label*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  789. }
  790. return CUP$parser$result;
  791. /*. . . . . . . . . . . . . . . . . . . .*/
  792. case 71: // opt_label ::= COLON label_id
  793. {
  794. String RESULT = null;
  795. int labidleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
  796. int labidright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
  797. String labid = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
  798. RESULT = labid;
  799. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(39/*opt_label*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  800. }
  801. return CUP$parser$result;
  802. /*. . . . . . . . . . . . . . . . . . . .*/
  803. case 70: // prod_part ::= CODE_STRING
  804. {
  805. Object RESULT = null;
  806. int code_strleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
  807. int code_strright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
  808. String code_str = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
  809. /* add a new production part */
  810. add_rhs_part(new action_part(code_str));
  811. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(24/*prod_part*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  812. }
  813. return CUP$parser$result;
  814. /*. . . . . . . . . . . . . . . . . . . .*/
  815. case 69: // prod_part ::= symbol_id opt_label
  816. {
  817. Object RESULT = null;
  818. int symidleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
  819. int symidright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
  820. String symid = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
  821. int labidleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
  822. int labidright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
  823. String labid = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
  824. /* try to look up the id */
  825. production_part symb = (production_part)symbols.get(symid);
  826. /* if that fails, symbol is undeclared */
  827. if (symb == null)
  828. {
  829. if (lexer.error_count == 0)
  830. lexer.emit_error("com.sun.java_cup.internal.runtime.Symbol \"" + symid +
  831. "\" has not been declared");
  832. }
  833. else
  834. {
  835. /* add a labeled production part */
  836. add_rhs_part(add_lab(symb, labid));
  837. }
  838. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(24/*prod_part*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  839. }
  840. return CUP$parser$result;
  841. /*. . . . . . . . . . . . . . . . . . . .*/
  842. case 68: // prod_part_list ::= empty
  843. {
  844. Object RESULT = null;
  845. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(23/*prod_part_list*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  846. }
  847. return CUP$parser$result;
  848. /*. . . . . . . . . . . . . . . . . . . .*/
  849. case 67: // prod_part_list ::= prod_part_list prod_part
  850. {
  851. Object RESULT = null;
  852. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(23/*prod_part_list*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  853. }
  854. return CUP$parser$result;
  855. /*. . . . . . . . . . . . . . . . . . . .*/
  856. case 66: // rhs ::= prod_part_list
  857. {
  858. Object RESULT = null;
  859. if (lhs_nt != null)
  860. {
  861. /* build the production */
  862. production p = new production(lhs_nt, rhs_parts, rhs_pos);
  863. /* if we have no start non-terminal declared and this is
  864. the first production, make its lhs nt the start_nt
  865. and build a special start production for it. */
  866. if (start_nt == null)
  867. {
  868. start_nt = lhs_nt;
  869. /* build a special start production */
  870. new_rhs();
  871. add_rhs_part(add_lab(new symbol_part(start_nt),"start_val"));
  872. add_rhs_part(new symbol_part(terminal.EOF));
  873. add_rhs_part(new action_part("RESULT = start_val;"));
  874. emit.start_production =
  875. new production(non_terminal.START_nt, rhs_parts, rhs_pos);
  876. new_rhs();
  877. }
  878. }
  879. /* reset the rhs accumulation in any case */
  880. new_rhs();
  881. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(28/*rhs*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  882. }
  883. return CUP$parser$result;
  884. /*. . . . . . . . . . . . . . . . . . . .*/
  885. case 65: // rhs ::= prod_part_list PERCENT_PREC term_id
  886. {
  887. Object RESULT = null;
  888. int term_nameleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
  889. int term_nameright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
  890. String term_name = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
  891. com.sun.java_cup.internal.symbol sym = null;
  892. if (lhs_nt != null)
  893. {
  894. /* Find the precedence symbol */
  895. if (term_name == null) {
  896. System.err.println("No terminal for contextual precedence");
  897. sym = null;
  898. } else {
  899. sym = ((symbol_part)symbols.get(term_name)).the_symbol();
  900. }
  901. /* build the production */
  902. production p;
  903. if ((sym!=null) && (sym instanceof terminal)) {
  904. p = new production(lhs_nt, rhs_parts, rhs_pos,
  905. ((terminal)sym).precedence_num(),
  906. ((terminal)sym).precedence_side());
  907. ((symbol_part)symbols.get(term_name)).the_symbol().note_use();
  908. } else {
  909. System.err.println("Invalid terminal " + term_name +
  910. " for contextual precedence assignment");
  911. p = new production(lhs_nt, rhs_parts, rhs_pos);
  912. }
  913. /* if we have no start non-terminal declared and this is
  914. the first production, make its lhs nt the start_nt
  915. and build a special start production for it. */
  916. if (start_nt == null)
  917. {
  918. start_nt = lhs_nt;
  919. /* build a special start production */
  920. new_rhs();
  921. add_rhs_part(add_lab(new symbol_part(start_nt),"start_val"));
  922. add_rhs_part(new symbol_part(terminal.EOF));
  923. add_rhs_part(new action_part("RESULT = start_val;"));
  924. if ((sym!=null) && (sym instanceof terminal)) {
  925. emit.start_production =
  926. new production(non_terminal.START_nt, rhs_parts,
  927. rhs_pos, ((terminal)sym).precedence_num(),
  928. ((terminal)sym).precedence_side());
  929. } else {
  930. emit.start_production =
  931. new production(non_terminal.START_nt, rhs_parts, rhs_pos);
  932. }
  933. new_rhs();
  934. }
  935. }
  936. /* reset the rhs accumulation in any case */
  937. new_rhs();
  938. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(28/*rhs*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  939. }
  940. return CUP$parser$result;
  941. /*. . . . . . . . . . . . . . . . . . . .*/
  942. case 64: // rhs_list ::= rhs
  943. {
  944. Object RESULT = null;
  945. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(27/*rhs_list*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  946. }
  947. return CUP$parser$result;
  948. /*. . . . . . . . . . . . . . . . . . . .*/
  949. case 63: // rhs_list ::= rhs_list BAR rhs
  950. {
  951. Object RESULT = null;
  952. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(27/*rhs_list*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  953. }
  954. return CUP$parser$result;
  955. /*. . . . . . . . . . . . . . . . . . . .*/
  956. case 62: // production ::= error NT$13 SEMI
  957. {
  958. Object RESULT = null;
  959. // propagate RESULT from NT$13
  960. if ( ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value != null )
  961. RESULT = (Object) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
  962. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(22/*production*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  963. }
  964. return CUP$parser$result;
  965. /*. . . . . . . . . . . . . . . . . . . .*/
  966. case 61: // NT$13 ::=
  967. {
  968. Object RESULT = null;
  969. lexer.emit_error("Syntax Error");
  970. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(56/*NT$13*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  971. }
  972. return CUP$parser$result;
  973. /*. . . . . . . . . . . . . . . . . . . .*/
  974. case 60: // production ::= nt_id NT$11 COLON_COLON_EQUALS NT$12 rhs_list SEMI
  975. {
  976. Object RESULT = null;
  977. // propagate RESULT from NT$11
  978. if ( ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value != null )
  979. RESULT = (Object) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-4)).value;
  980. // propagate RESULT from NT$12
  981. if ( ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value != null )
  982. RESULT = (Object) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
  983. int lhs_idleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left;
  984. int lhs_idright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).right;
  985. String lhs_id = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-5)).value;
  986. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(22/*production*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-5)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  987. }
  988. return CUP$parser$result;
  989. /*. . . . . . . . . . . . . . . . . . . .*/
  990. case 59: // NT$12 ::=
  991. {
  992. Object RESULT = null;
  993. int lhs_idleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
  994. int lhs_idright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
  995. String lhs_id = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
  996. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(55/*NT$12*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  997. }
  998. return CUP$parser$result;
  999. /*. . . . . . . . . . . . . . . . . . . .*/
  1000. case 58: // NT$11 ::=
  1001. {
  1002. Object RESULT = null;
  1003. int lhs_idleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
  1004. int lhs_idright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
  1005. String lhs_id = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
  1006. /* lookup the lhs nt */
  1007. lhs_nt = (non_terminal)non_terms.get(lhs_id);
  1008. /* if it wasn't declared, emit a message */
  1009. if (lhs_nt == null)
  1010. {
  1011. if (lexer.error_count == 0)
  1012. lexer.emit_error("LHS non terminal \"" + lhs_id +
  1013. "\" has not been declared");
  1014. }
  1015. /* reset the rhs accumulation */
  1016. new_rhs();
  1017. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(54/*NT$11*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1018. }
  1019. return CUP$parser$result;
  1020. /*. . . . . . . . . . . . . . . . . . . .*/
  1021. case 57: // production_list ::= production
  1022. {
  1023. Object RESULT = null;
  1024. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(12/*production_list*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1025. }
  1026. return CUP$parser$result;
  1027. /*. . . . . . . . . . . . . . . . . . . .*/
  1028. case 56: // production_list ::= production_list production
  1029. {
  1030. Object RESULT = null;
  1031. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(12/*production_list*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1032. }
  1033. return CUP$parser$result;
  1034. /*. . . . . . . . . . . . . . . . . . . .*/
  1035. case 55: // start_spec ::= empty
  1036. {
  1037. Object RESULT = null;
  1038. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(11/*start_spec*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1039. }
  1040. return CUP$parser$result;
  1041. /*. . . . . . . . . . . . . . . . . . . .*/
  1042. case 54: // start_spec ::= START WITH nt_id NT$10 SEMI
  1043. {
  1044. Object RESULT = null;
  1045. // propagate RESULT from NT$10
  1046. if ( ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value != null )
  1047. RESULT = (Object) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
  1048. int start_nameleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
  1049. int start_nameright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
  1050. String start_name = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
  1051. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(11/*start_spec*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1052. }
  1053. return CUP$parser$result;
  1054. /*. . . . . . . . . . . . . . . . . . . .*/
  1055. case 53: // NT$10 ::=
  1056. {
  1057. Object RESULT = null;
  1058. int start_nameleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
  1059. int start_nameright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
  1060. String start_name = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
  1061. /* verify that the name has been declared as a non terminal */
  1062. non_terminal nt = (non_terminal)non_terms.get(start_name);
  1063. if (nt == null)
  1064. {
  1065. lexer.emit_error( "Start non terminal \"" + start_name +
  1066. "\" has not been declared");
  1067. }
  1068. else
  1069. {
  1070. /* remember the non-terminal for later */
  1071. start_nt = nt;
  1072. /* build a special start production */
  1073. new_rhs();
  1074. add_rhs_part(add_lab(new symbol_part(start_nt), "start_val"));
  1075. add_rhs_part(new symbol_part(terminal.EOF));
  1076. add_rhs_part(new action_part("RESULT = start_val;"));
  1077. emit.start_production =
  1078. new production(non_terminal.START_nt, rhs_parts, rhs_pos);
  1079. new_rhs();
  1080. }
  1081. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(53/*NT$10*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1082. }
  1083. return CUP$parser$result;
  1084. /*. . . . . . . . . . . . . . . . . . . .*/
  1085. case 52: // term_id ::= symbol_id
  1086. {
  1087. String RESULT = null;
  1088. int symleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
  1089. int symright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
  1090. String sym = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
  1091. /* check that the symbol_id is a terminal */
  1092. if (symbols.get(sym) == null)
  1093. {
  1094. /* issue a message */
  1095. lexer.emit_error("Terminal \"" + sym +
  1096. "\" has not been declared");
  1097. }
  1098. RESULT = sym;
  1099. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(41/*term_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1100. }
  1101. return CUP$parser$result;
  1102. /*. . . . . . . . . . . . . . . . . . . .*/
  1103. case 51: // terminal_id ::= term_id
  1104. {
  1105. String RESULT = null;
  1106. int symleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
  1107. int symright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
  1108. String sym = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
  1109. add_precedence(sym);
  1110. RESULT = sym;
  1111. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(40/*terminal_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1112. }
  1113. return CUP$parser$result;
  1114. /*. . . . . . . . . . . . . . . . . . . .*/
  1115. case 50: // terminal_list ::= terminal_id
  1116. {
  1117. Object RESULT = null;
  1118. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(32/*terminal_list*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1119. }
  1120. return CUP$parser$result;
  1121. /*. . . . . . . . . . . . . . . . . . . .*/
  1122. case 49: // terminal_list ::= terminal_list COMMA terminal_id
  1123. {
  1124. Object RESULT = null;
  1125. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(32/*terminal_list*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1126. }
  1127. return CUP$parser$result;
  1128. /*. . . . . . . . . . . . . . . . . . . .*/
  1129. case 48: // preced ::= PRECEDENCE NONASSOC NT$9 terminal_list SEMI
  1130. {
  1131. Object RESULT = null;
  1132. // propagate RESULT from NT$9
  1133. if ( ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value != null )
  1134. RESULT = (Object) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
  1135. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(31/*preced*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1136. }
  1137. return CUP$parser$result;
  1138. /*. . . . . . . . . . . . . . . . . . . .*/
  1139. case 47: // NT$9 ::=
  1140. {
  1141. Object RESULT = null;
  1142. update_precedence(assoc.nonassoc);
  1143. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(52/*NT$9*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1144. }
  1145. return CUP$parser$result;
  1146. /*. . . . . . . . . . . . . . . . . . . .*/
  1147. case 46: // preced ::= PRECEDENCE RIGHT NT$8 terminal_list SEMI
  1148. {
  1149. Object RESULT = null;
  1150. // propagate RESULT from NT$8
  1151. if ( ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value != null )
  1152. RESULT = (Object) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
  1153. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(31/*preced*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1154. }
  1155. return CUP$parser$result;
  1156. /*. . . . . . . . . . . . . . . . . . . .*/
  1157. case 45: // NT$8 ::=
  1158. {
  1159. Object RESULT = null;
  1160. update_precedence(assoc.right);
  1161. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(51/*NT$8*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1162. }
  1163. return CUP$parser$result;
  1164. /*. . . . . . . . . . . . . . . . . . . .*/
  1165. case 44: // preced ::= PRECEDENCE LEFT NT$7 terminal_list SEMI
  1166. {
  1167. Object RESULT = null;
  1168. // propagate RESULT from NT$7
  1169. if ( ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value != null )
  1170. RESULT = (Object) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
  1171. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(31/*preced*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1172. }
  1173. return CUP$parser$result;
  1174. /*. . . . . . . . . . . . . . . . . . . .*/
  1175. case 43: // NT$7 ::=
  1176. {
  1177. Object RESULT = null;
  1178. update_precedence(assoc.left);
  1179. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(50/*NT$7*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1180. }
  1181. return CUP$parser$result;
  1182. /*. . . . . . . . . . . . . . . . . . . .*/
  1183. case 42: // precedence_l ::= preced
  1184. {
  1185. Object RESULT = null;
  1186. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(33/*precedence_l*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1187. }
  1188. return CUP$parser$result;
  1189. /*. . . . . . . . . . . . . . . . . . . .*/
  1190. case 41: // precedence_l ::= precedence_l preced
  1191. {
  1192. Object RESULT = null;
  1193. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(33/*precedence_l*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1194. }
  1195. return CUP$parser$result;
  1196. /*. . . . . . . . . . . . . . . . . . . .*/
  1197. case 40: // precedence_list ::= empty
  1198. {
  1199. Object RESULT = null;
  1200. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(30/*precedence_list*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1201. }
  1202. return CUP$parser$result;
  1203. /*. . . . . . . . . . . . . . . . . . . .*/
  1204. case 39: // precedence_list ::= precedence_l
  1205. {
  1206. Object RESULT = null;
  1207. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(30/*precedence_list*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1208. }
  1209. return CUP$parser$result;
  1210. /*. . . . . . . . . . . . . . . . . . . .*/
  1211. case 38: // non_term_name_list ::= new_non_term_id
  1212. {
  1213. Object RESULT = null;
  1214. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(21/*non_term_name_list*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1215. }
  1216. return CUP$parser$result;
  1217. /*. . . . . . . . . . . . . . . . . . . .*/
  1218. case 37: // non_term_name_list ::= non_term_name_list COMMA new_non_term_id
  1219. {
  1220. Object RESULT = null;
  1221. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(21/*non_term_name_list*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1222. }
  1223. return CUP$parser$result;
  1224. /*. . . . . . . . . . . . . . . . . . . .*/
  1225. case 36: // term_name_list ::= new_term_id
  1226. {
  1227. Object RESULT = null;
  1228. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(20/*term_name_list*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1229. }
  1230. return CUP$parser$result;
  1231. /*. . . . . . . . . . . . . . . . . . . .*/
  1232. case 35: // term_name_list ::= term_name_list COMMA new_term_id
  1233. {
  1234. Object RESULT = null;
  1235. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(20/*term_name_list*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1236. }
  1237. return CUP$parser$result;
  1238. /*. . . . . . . . . . . . . . . . . . . .*/
  1239. case 34: // declares_non_term ::= non_term_name_list NT$6 SEMI
  1240. {
  1241. Object RESULT = null;
  1242. // propagate RESULT from NT$6
  1243. if ( ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value != null )
  1244. RESULT = (Object) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
  1245. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(35/*declares_non_term*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1246. }
  1247. return CUP$parser$result;
  1248. /*. . . . . . . . . . . . . . . . . . . .*/
  1249. case 33: // NT$6 ::=
  1250. {
  1251. Object RESULT = null;
  1252. /* reset the accumulated multipart name */
  1253. multipart_name = new String();
  1254. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(49/*NT$6*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1255. }
  1256. return CUP$parser$result;
  1257. /*. . . . . . . . . . . . . . . . . . . .*/
  1258. case 32: // declares_term ::= term_name_list NT$5 SEMI
  1259. {
  1260. Object RESULT = null;
  1261. // propagate RESULT from NT$5
  1262. if ( ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value != null )
  1263. RESULT = (Object) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
  1264. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(34/*declares_term*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1265. }
  1266. return CUP$parser$result;
  1267. /*. . . . . . . . . . . . . . . . . . . .*/
  1268. case 31: // NT$5 ::=
  1269. {
  1270. Object RESULT = null;
  1271. /* reset the accumulated multipart name */
  1272. multipart_name = new String();
  1273. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(48/*NT$5*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1274. }
  1275. return CUP$parser$result;
  1276. /*. . . . . . . . . . . . . . . . . . . .*/
  1277. case 30: // symbol ::= non_terminal error NT$4 SEMI
  1278. {
  1279. Object RESULT = null;
  1280. // propagate RESULT from NT$4
  1281. if ( ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value != null )
  1282. RESULT = (Object) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
  1283. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(18/*symbol*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1284. }
  1285. return CUP$parser$result;
  1286. /*. . . . . . . . . . . . . . . . . . . .*/
  1287. case 29: // NT$4 ::=
  1288. {
  1289. Object RESULT = null;
  1290. /* reset the accumulated multipart name */
  1291. multipart_name = new String();
  1292. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(47/*NT$4*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1293. }
  1294. return CUP$parser$result;
  1295. /*. . . . . . . . . . . . . . . . . . . .*/
  1296. case 28: // symbol ::= TERMINAL error NT$3 SEMI
  1297. {
  1298. Object RESULT = null;
  1299. // propagate RESULT from NT$3
  1300. if ( ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value != null )
  1301. RESULT = (Object) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
  1302. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(18/*symbol*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1303. }
  1304. return CUP$parser$result;
  1305. /*. . . . . . . . . . . . . . . . . . . .*/
  1306. case 27: // NT$3 ::=
  1307. {
  1308. Object RESULT = null;
  1309. /* reset the accumulated multipart name */
  1310. multipart_name = new String();
  1311. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(46/*NT$3*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1312. }
  1313. return CUP$parser$result;
  1314. /*. . . . . . . . . . . . . . . . . . . .*/
  1315. case 26: // symbol ::= non_terminal declares_non_term
  1316. {
  1317. Object RESULT = null;
  1318. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(18/*symbol*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1319. }
  1320. return CUP$parser$result;
  1321. /*. . . . . . . . . . . . . . . . . . . .*/
  1322. case 25: // symbol ::= non_terminal type_id declares_non_term
  1323. {
  1324. Object RESULT = null;
  1325. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(18/*symbol*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1326. }
  1327. return CUP$parser$result;
  1328. /*. . . . . . . . . . . . . . . . . . . .*/
  1329. case 24: // symbol ::= TERMINAL declares_term
  1330. {
  1331. Object RESULT = null;
  1332. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(18/*symbol*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1333. }
  1334. return CUP$parser$result;
  1335. /*. . . . . . . . . . . . . . . . . . . .*/
  1336. case 23: // symbol ::= TERMINAL type_id declares_term
  1337. {
  1338. Object RESULT = null;
  1339. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(18/*symbol*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1340. }
  1341. return CUP$parser$result;
  1342. /*. . . . . . . . . . . . . . . . . . . .*/
  1343. case 22: // symbol_list ::= symbol
  1344. {
  1345. Object RESULT = null;
  1346. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(10/*symbol_list*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1347. }
  1348. return CUP$parser$result;
  1349. /*. . . . . . . . . . . . . . . . . . . .*/
  1350. case 21: // symbol_list ::= symbol_list symbol
  1351. {
  1352. Object RESULT = null;
  1353. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(10/*symbol_list*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1354. }
  1355. return CUP$parser$result;
  1356. /*. . . . . . . . . . . . . . . . . . . .*/
  1357. case 20: // scan_code ::= SCAN WITH CODE_STRING opt_semi
  1358. {
  1359. Object RESULT = null;
  1360. int user_codeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
  1361. int user_coderight = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
  1362. String user_code = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
  1363. if (emit.scan_code!=null)
  1364. lexer.emit_error("Redundant scan code (skipping)");
  1365. else /* save the user code */
  1366. emit.scan_code = user_code;
  1367. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(17/*scan_code*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1368. }
  1369. return CUP$parser$result;
  1370. /*. . . . . . . . . . . . . . . . . . . .*/
  1371. case 19: // init_code ::= INIT WITH CODE_STRING opt_semi
  1372. {
  1373. Object RESULT = null;
  1374. int user_codeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
  1375. int user_coderight = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
  1376. String user_code = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
  1377. if (emit.init_code!=null)
  1378. lexer.emit_error("Redundant init code (skipping)");
  1379. else /* save the user code */
  1380. emit.init_code = user_code;
  1381. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(16/*init_code*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1382. }
  1383. return CUP$parser$result;
  1384. /*. . . . . . . . . . . . . . . . . . . .*/
  1385. case 18: // parser_code_part ::= PARSER CODE CODE_STRING opt_semi
  1386. {
  1387. Object RESULT = null;
  1388. int user_codeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
  1389. int user_coderight = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
  1390. String user_code = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
  1391. if (emit.parser_code!=null)
  1392. lexer.emit_error("Redundant parser code (skipping)");
  1393. else /* save the user included code string */
  1394. emit.parser_code = user_code;
  1395. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(9/*parser_code_part*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1396. }
  1397. return CUP$parser$result;
  1398. /*. . . . . . . . . . . . . . . . . . . .*/
  1399. case 17: // action_code_part ::= ACTION CODE CODE_STRING opt_semi
  1400. {
  1401. Object RESULT = null;
  1402. int user_codeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
  1403. int user_coderight = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
  1404. String user_code = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
  1405. if (emit.action_code!=null)
  1406. lexer.emit_error("Redundant action code (skipping)");
  1407. else /* save the user included code string */
  1408. emit.action_code = user_code;
  1409. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(4/*action_code_part*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1410. }
  1411. return CUP$parser$result;
  1412. /*. . . . . . . . . . . . . . . . . . . .*/
  1413. case 16: // code_parts ::= code_parts code_part
  1414. {
  1415. Object RESULT = null;
  1416. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(5/*code_parts*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1417. }
  1418. return CUP$parser$result;
  1419. /*. . . . . . . . . . . . . . . . . . . .*/
  1420. case 15: // code_parts ::=
  1421. {
  1422. Object RESULT = null;
  1423. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(5/*code_parts*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1424. }
  1425. return CUP$parser$result;
  1426. /*. . . . . . . . . . . . . . . . . . . .*/
  1427. case 14: // code_part ::= scan_code
  1428. {
  1429. Object RESULT = null;
  1430. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(6/*code_part*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1431. }
  1432. return CUP$parser$result;
  1433. /*. . . . . . . . . . . . . . . . . . . .*/
  1434. case 13: // code_part ::= init_code
  1435. {
  1436. Object RESULT = null;
  1437. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(6/*code_part*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1438. }
  1439. return CUP$parser$result;
  1440. /*. . . . . . . . . . . . . . . . . . . .*/
  1441. case 12: // code_part ::= parser_code_part
  1442. {
  1443. Object RESULT = null;
  1444. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(6/*code_part*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1445. }
  1446. return CUP$parser$result;
  1447. /*. . . . . . . . . . . . . . . . . . . .*/
  1448. case 11: // code_part ::= action_code_part
  1449. {
  1450. Object RESULT = null;
  1451. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(6/*code_part*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1452. }
  1453. return CUP$parser$result;
  1454. /*. . . . . . . . . . . . . . . . . . . .*/
  1455. case 10: // import_spec ::= IMPORT import_id NT$2 SEMI
  1456. {
  1457. Object RESULT = null;
  1458. // propagate RESULT from NT$2
  1459. if ( ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value != null )
  1460. RESULT = (Object) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
  1461. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(14/*import_spec*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1462. }
  1463. return CUP$parser$result;
  1464. /*. . . . . . . . . . . . . . . . . . . .*/
  1465. case 9: // NT$2 ::=
  1466. {
  1467. Object RESULT = null;
  1468. /* save this import on the imports list */
  1469. emit.import_list.push(multipart_name);
  1470. /* reset the accumulated multipart name */
  1471. multipart_name = new String();
  1472. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(45/*NT$2*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1473. }
  1474. return CUP$parser$result;
  1475. /*. . . . . . . . . . . . . . . . . . . .*/
  1476. case 8: // import_list ::= empty
  1477. {
  1478. Object RESULT = null;
  1479. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(3/*import_list*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1480. }
  1481. return CUP$parser$result;
  1482. /*. . . . . . . . . . . . . . . . . . . .*/
  1483. case 7: // import_list ::= import_list import_spec
  1484. {
  1485. Object RESULT = null;
  1486. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(3/*import_list*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1487. }
  1488. return CUP$parser$result;
  1489. /*. . . . . . . . . . . . . . . . . . . .*/
  1490. case 6: // package_spec ::= empty
  1491. {
  1492. Object RESULT = null;
  1493. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(2/*package_spec*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1494. }
  1495. return CUP$parser$result;
  1496. /*. . . . . . . . . . . . . . . . . . . .*/
  1497. case 5: // package_spec ::= PACKAGE multipart_id NT$1 SEMI
  1498. {
  1499. Object RESULT = null;
  1500. // propagate RESULT from NT$1
  1501. if ( ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value != null )
  1502. RESULT = (Object) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
  1503. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(2/*package_spec*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1504. }
  1505. return CUP$parser$result;
  1506. /*. . . . . . . . . . . . . . . . . . . .*/
  1507. case 4: // NT$1 ::=
  1508. {
  1509. Object RESULT = null;
  1510. /* save the package name */
  1511. emit.package_name = multipart_name;
  1512. /* reset the accumulated multipart name */
  1513. multipart_name = new String();
  1514. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(44/*NT$1*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1515. }
  1516. return CUP$parser$result;
  1517. /*. . . . . . . . . . . . . . . . . . . .*/
  1518. case 3: // spec ::= error symbol_list precedence_list start_spec production_list
  1519. {
  1520. Object RESULT = null;
  1521. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(1/*spec*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-4)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1522. }
  1523. return CUP$parser$result;
  1524. /*. . . . . . . . . . . . . . . . . . . .*/
  1525. case 2: // spec ::= NT$0 package_spec import_list code_parts symbol_list precedence_list start_spec production_list
  1526. {
  1527. Object RESULT = null;
  1528. // propagate RESULT from NT$0
  1529. if ( ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-7)).value != null )
  1530. RESULT = (Object) ((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-7)).value;
  1531. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(1/*spec*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-7)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1532. }
  1533. return CUP$parser$result;
  1534. /*. . . . . . . . . . . . . . . . . . . .*/
  1535. case 1: // NT$0 ::=
  1536. {
  1537. Object RESULT = null;
  1538. /* declare "error" as a terminal */
  1539. symbols.put("error", new symbol_part(terminal.error));
  1540. /* declare start non terminal */
  1541. non_terms.put("$START", non_terminal.START_nt);
  1542. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(43/*NT$0*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1543. }
  1544. return CUP$parser$result;
  1545. /*. . . . . . . . . . . . . . . . . . . .*/
  1546. case 0: // $START ::= spec EOF
  1547. {
  1548. Object RESULT = null;
  1549. int start_valleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
  1550. int start_valright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
  1551. Object start_val = (Object)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
  1552. RESULT = start_val;
  1553. CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(0/*$START*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  1554. }
  1555. /* ACCEPT */
  1556. CUP$parser$parser.done_parsing();
  1557. return CUP$parser$result;
  1558. /* . . . . . .*/
  1559. default:
  1560. throw new Exception(
  1561. "Invalid action number found in internal parse table");
  1562. }
  1563. }
  1564. }