1. //----------------------------------------------------
  2. // The following code was generated by CUP v0.10j
  3. // Fri Feb 27 13:01:50 PST 2004
  4. //----------------------------------------------------
  5. package com.sun.org.apache.xalan.internal.xsltc.compiler;
  6. import java.util.Stack;
  7. import java.util.Vector;
  8. import java.io.StringReader;
  9. import com.sun.java_cup.internal.runtime.*;
  10. import com.sun.org.apache.xml.internal.dtm.DTM;
  11. import com.sun.org.apache.xalan.internal.xsltc.DOM;
  12. import com.sun.org.apache.xalan.internal.xsltc.dom.Axis;
  13. import com.sun.org.apache.xalan.internal.xsltc.runtime.Operators;
  14. import com.sun.org.apache.xalan.internal.xsltc.compiler.util.ErrorMsg;
  15. /** CUP v0.10j generated parser.
  16. * @version Fri Feb 27 13:01:50 PST 2004
  17. */
  18. public class XPathParser extends com.sun.java_cup.internal.runtime.lr_parser {
  19. /** Default constructor. */
  20. public XPathParser() {super();}
  21. /** Constructor which sets the default scanner. */
  22. public XPathParser(com.sun.java_cup.internal.runtime.Scanner s) {super(s);}
  23. /** Production table. */
  24. protected static final short _production_table[][] =
  25. unpackFromStrings(new String[] {
  26. "\000\215\000\002\002\004\000\002\003\004\000\002\003" +
  27. "\004\000\002\036\003\000\002\036\005\000\002\037\003" +
  28. "\000\002\037\004\000\002\037\003\000\002\037\005\000" +
  29. "\002\037\005\000\002\037\004\000\002\037\003\000\002" +
  30. "\035\006\000\002\035\010\000\002\040\006\000\002\041" +
  31. "\003\000\002\041\005\000\002\041\005\000\002\042\003" +
  32. "\000\002\042\004\000\002\042\003\000\002\042\004\000" +
  33. "\002\042\004\000\002\042\005\000\002\042\004\000\002" +
  34. "\042\005\000\002\043\003\000\002\043\003\000\002\043" +
  35. "\003\000\002\043\003\000\002\043\003\000\002\044\003" +
  36. "\000\002\044\003\000\002\054\003\000\002\054\004\000" +
  37. "\002\054\004\000\002\045\003\000\002\045\004\000\002" +
  38. "\007\005\000\002\004\003\000\002\012\003\000\002\012" +
  39. "\005\000\002\013\003\000\002\013\005\000\002\014\003" +
  40. "\000\002\014\005\000\002\014\005\000\002\015\003\000" +
  41. "\002\015\005\000\002\015\005\000\002\015\005\000\002" +
  42. "\015\005\000\002\016\003\000\002\016\005\000\002\016" +
  43. "\005\000\002\017\003\000\002\017\005\000\002\017\005" +
  44. "\000\002\017\005\000\002\020\003\000\002\020\004\000" +
  45. "\002\024\003\000\002\024\005\000\002\025\003\000\002" +
  46. "\025\003\000\002\025\005\000\002\025\005\000\002\006" +
  47. "\003\000\002\006\003\000\002\027\003\000\002\027\005" +
  48. "\000\002\027\003\000\002\031\003\000\002\031\004\000" +
  49. "\002\031\003\000\002\030\005\000\002\032\004\000\002" +
  50. "\011\003\000\002\011\004\000\002\011\005\000\002\011" +
  51. "\004\000\002\011\003\000\002\053\004\000\002\053\003" +
  52. "\000\002\052\003\000\002\052\003\000\002\052\003\000" +
  53. "\002\052\003\000\002\052\003\000\002\052\003\000\002" +
  54. "\052\003\000\002\052\003\000\002\052\003\000\002\052" +
  55. "\003\000\002\052\003\000\002\052\003\000\002\052\003" +
  56. "\000\002\026\003\000\002\026\003\000\002\010\003\000" +
  57. "\002\010\004\000\002\023\003\000\002\023\005\000\002" +
  58. "\023\003\000\002\023\003\000\002\023\003\000\002\023" +
  59. "\003\000\002\021\004\000\002\022\005\000\002\022\006" +
  60. "\000\002\046\003\000\002\046\005\000\002\050\003\000" +
  61. "\002\051\003\000\002\005\003\000\002\033\003\000\002" +
  62. "\033\003\000\002\033\003\000\002\033\003\000\002\033" +
  63. "\006\000\002\033\003\000\002\034\003\000\002\034\003" +
  64. "\000\002\047\003\000\002\047\003\000\002\047\003\000" +
  65. "\002\047\003\000\002\047\003\000\002\047\003\000\002" +
  66. "\047\003\000\002\047\003\000\002\047\003\000\002\047" +
  67. "\003\000\002\047\003\000\002\047\003\000\002\047\003" +
  68. "\000\002\047\003\000\002\047\003\000\002\047\003\000" +
  69. "\002\047\003\000\002\047\003" });
  70. /** Access to production table. */
  71. public short[][] production_table() {return _production_table;}
  72. /** Parse-action table. */
  73. protected static final short[][] _action_table =
  74. unpackFromStrings(new String[] {
  75. "\000\307\000\006\066\006\067\005\001\002\000\004\002" +
  76. "\311\001\002\000\110\004\061\005\111\011\071\013\103" +
  77. "\015\134\016\066\017\106\021\070\031\075\032\031\033" +
  78. "\040\034\057\035\034\036\113\037\141\040\142\041\145" +
  79. "\044\063\045\062\046\065\047\115\050\123\051\136\052" +
  80. "\077\053\143\054\131\055\125\056\116\057\104\060\140" +
  81. "\061\067\062\060\063\127\064\132\065\072\001\002\000" +
  82. "\070\004\013\013\027\016\020\021\023\032\031\033\040" +
  83. "\035\034\036\033\037\046\040\047\041\051\044\015\045" +
  84. "\014\046\016\047\036\050\037\051\044\052\025\053\050" +
  85. "\054\043\055\041\056\035\057\030\060\045\061\021\062" +
  86. "\012\063\042\001\002\000\006\002\ufffe\010\306\001\002" +
  87. "\000\004\002\000\001\002\000\014\002\uffe7\004\uffe7\006" +
  88. "\uffe7\010\uffe7\021\uffe7\001\002\000\054\002\uff7a\004\uff7a" +
  89. "\006\uff7a\007\uff7a\010\uff7a\012\uff7a\013\uff7a\014\uff7a\021" +
  90. "\uff7a\022\uff7a\023\uff7a\024\uff7a\025\uff7a\026\uff7a\027\uff7a" +
  91. "\030\uff7a\031\uff7a\032\uff7a\033\uff7a\042\uff7a\043\uff7a\001" +
  92. "\002\000\070\002\ufffc\010\ufffc\013\027\016\020\032\031" +
  93. "\033\040\035\034\036\113\037\141\040\047\041\051\044" +
  94. "\015\045\014\046\016\047\036\050\037\051\044\052\025" +
  95. "\053\050\054\043\055\041\056\035\057\030\060\045\061" +
  96. "\021\062\012\063\042\001\002\000\014\002\uffe3\004\uffe3" +
  97. "\006\uffe3\010\uffe3\021\uffe3\001\002\000\014\002\uffe4\004" +
  98. "\uffe4\006\uffe4\010\uffe4\021\uffe4\001\002\000\004\011\302" +
  99. "\001\002\000\012\002\ufffa\004\277\010\ufffa\021\276\001" +
  100. "\002\000\062\013\uffe0\032\uffe0\033\uffe0\035\uffe0\036\uffe0" +
  101. "\037\uffe0\040\uffe0\041\uffe0\044\uffe0\045\uffe0\046\uffe0\047" +
  102. "\uffe0\050\uffe0\051\uffe0\052\uffe0\053\uffe0\054\uffe0\055\uffe0" +
  103. "\056\uffe0\057\uffe0\060\uffe0\061\uffe0\062\uffe0\063\uffe0\001" +
  104. "\002\000\054\002\uff7b\004\uff7b\006\uff7b\007\uff7b\010\uff7b" +
  105. "\012\uff7b\013\uff7b\014\uff7b\021\uff7b\022\uff7b\023\uff7b\024" +
  106. "\uff7b\025\uff7b\026\uff7b\027\uff7b\030\uff7b\031\uff7b\032\uff7b" +
  107. "\033\uff7b\042\uff7b\043\uff7b\001\002\000\062\013\027\032" +
  108. "\031\033\040\035\034\036\113\037\141\040\047\041\051" +
  109. "\044\015\045\014\046\016\047\036\050\037\051\044\052" +
  110. "\170\053\166\054\043\055\041\056\035\057\030\060\045" +
  111. "\061\021\062\012\063\042\001\002\000\064\013\027\016" +
  112. "\020\032\031\033\040\035\034\036\113\037\141\040\047" +
  113. "\041\051\044\015\045\014\046\016\047\036\050\037\051" +
  114. "\044\052\025\053\050\054\043\055\041\056\035\057\030" +
  115. "\060\045\061\021\062\012\063\042\001\002\000\012\002" +
  116. "\ufff2\004\266\010\ufff2\021\265\001\002\000\016\002\uff7f" +
  117. "\004\uff7f\006\uff7f\010\uff7f\020\264\021\uff7f\001\002\000" +
  118. "\006\002\ufff6\010\ufff6\001\002\000\014\002\uffe2\004\uffe2" +
  119. "\006\uffe2\010\uffe2\021\uffe2\001\002\000\054\002\uff7d\004" +
  120. "\uff7d\006\uff7d\007\uff7d\010\uff7d\012\uff7d\013\uff7d\014\uff7d" +
  121. "\021\uff7d\022\uff7d\023\uff7d\024\uff7d\025\uff7d\026\uff7d\027" +
  122. "\uff7d\030\uff7d\031\uff7d\032\uff7d\033\uff7d\042\uff7d\043\uff7d" +
  123. "\001\002\000\056\002\uff85\004\uff85\006\uff85\007\uff85\010" +
  124. "\uff85\011\uff85\012\uff85\013\uff85\014\uff85\021\uff85\022\uff85" +
  125. "\023\uff85\024\uff85\025\uff85\026\uff85\027\uff85\030\uff85\031" +
  126. "\uff85\032\uff85\033\uff85\042\uff85\043\uff85\001\002\000\014" +
  127. "\002\uffed\004\uffed\006\055\010\uffed\021\uffed\001\002\000" +
  128. "\016\002\uff75\004\uff75\006\uff75\010\uff75\011\260\021\uff75" +
  129. "\001\002\000\056\002\uff86\004\uff86\006\uff86\007\uff86\010" +
  130. "\uff86\011\uff86\012\uff86\013\uff86\014\uff86\021\uff86\022\uff86" +
  131. "\023\uff86\024\uff86\025\uff86\026\uff86\027\uff86\030\uff86\031" +
  132. "\uff86\032\uff86\033\uff86\042\uff86\043\uff86\001\002\000\054" +
  133. "\002\uff7e\004\uff7e\006\uff7e\007\uff7e\010\uff7e\012\uff7e\013" +
  134. "\uff7e\014\uff7e\021\uff7e\022\uff7e\023\uff7e\024\uff7e\025\uff7e" +
  135. "\026\uff7e\027\uff7e\030\uff7e\031\uff7e\032\uff7e\033\uff7e\042" +
  136. "\uff7e\043\uff7e\001\002\000\054\002\uff77\004\uff77\006\uff77" +
  137. "\007\uff77\010\uff77\012\uff77\013\uff77\014\uff77\021\uff77\022" +
  138. "\uff77\023\uff77\024\uff77\025\uff77\026\uff77\027\uff77\030\uff77" +
  139. "\031\uff77\032\uff77\033\uff77\042\uff77\043\uff77\001\002\000" +
  140. "\054\002\uff76\004\uff76\006\uff76\007\uff76\010\uff76\012\uff76" +
  141. "\013\uff76\014\uff76\021\uff76\022\uff76\023\uff76\024\uff76\025" +
  142. "\uff76\026\uff76\027\uff76\030\uff76\031\uff76\032\uff76\033\uff76" +
  143. "\042\uff76\043\uff76\001\002\000\056\002\uff84\004\uff84\006" +
  144. "\uff84\007\uff84\010\uff84\011\uff84\012\uff84\013\uff84\014\uff84" +
  145. "\021\uff84\022\uff84\023\uff84\024\uff84\025\uff84\026\uff84\027" +
  146. "\uff84\030\uff84\031\uff84\032\uff84\033\uff84\042\uff84\043\uff84" +
  147. "\001\002\000\054\002\uff81\004\uff81\006\uff81\007\uff81\010" +
  148. "\uff81\012\uff81\013\uff81\014\uff81\021\uff81\022\uff81\023\uff81" +
  149. "\024\uff81\025\uff81\026\uff81\027\uff81\030\uff81\031\uff81\032" +
  150. "\uff81\033\uff81\042\uff81\043\uff81\001\002\000\054\002\uff78" +
  151. "\004\uff78\006\uff78\007\uff78\010\uff78\012\uff78\013\uff78\014" +
  152. "\uff78\021\uff78\022\uff78\023\uff78\024\uff78\025\uff78\026\uff78" +
  153. "\027\uff78\030\uff78\031\uff78\032\uff78\033\uff78\042\uff78\043" +
  154. "\uff78\001\002\000\054\002\uff82\004\uff82\006\uff82\007\uff82" +
  155. "\010\uff82\012\uff82\013\uff82\014\uff82\021\uff82\022\uff82\023" +
  156. "\uff82\024\uff82\025\uff82\026\uff82\027\uff82\030\uff82\031\uff82" +
  157. "\032\uff82\033\uff82\042\uff82\043\uff82\001\002\000\054\002" +
  158. "\uff79\004\uff79\006\uff79\007\uff79\010\uff79\012\uff79\013\uff79" +
  159. "\014\uff79\021\uff79\022\uff79\023\uff79\024\uff79\025\uff79\026" +
  160. "\uff79\027\uff79\030\uff79\031\uff79\032\uff79\033\uff79\042\uff79" +
  161. "\043\uff79\001\002\000\054\002\uff7c\004\uff7c\006\uff7c\007" +
  162. "\uff7c\010\uff7c\012\uff7c\013\uff7c\014\uff7c\021\uff7c\022\uff7c" +
  163. "\023\uff7c\024\uff7c\025\uff7c\026\uff7c\027\uff7c\030\uff7c\031" +
  164. "\uff7c\032\uff7c\033\uff7c\042\uff7c\043\uff7c\001\002\000\016" +
  165. "\002\uff83\004\uff83\006\uff83\010\uff83\011\253\021\uff83\001" +
  166. "\002\000\014\002\uffe5\004\uffe5\006\uffe5\010\uffe5\021\uffe5" +
  167. "\001\002\000\016\002\uff80\004\uff80\006\uff80\010\uff80\020" +
  168. "\252\021\uff80\001\002\000\014\002\uffe6\004\uffe6\006\uffe6" +
  169. "\010\uffe6\021\uffe6\001\002\000\014\002\uffe1\004\uffe1\006" +
  170. "\uffe1\010\uffe1\021\uffe1\001\002\000\014\002\uffef\004\uffef" +
  171. "\006\055\010\uffef\021\uffef\001\002\000\054\002\uffdd\004" +
  172. "\uffdd\006\055\007\uffdd\010\uffdd\012\uffdd\013\uffdd\014\uffdd" +
  173. "\021\uffdd\022\uffdd\023\uffdd\024\uffdd\025\uffdd\026\uffdd\027" +
  174. "\uffdd\030\uffdd\031\uffdd\032\uffdd\033\uffdd\042\uffdd\043\uffdd" +
  175. "\001\002\000\110\004\061\005\111\011\071\013\103\015" +
  176. "\134\016\066\017\106\021\070\031\075\032\031\033\040" +
  177. "\034\057\035\034\036\113\037\141\040\142\041\145\044" +
  178. "\063\045\062\046\065\047\115\050\123\051\136\052\077" +
  179. "\053\143\054\131\055\125\056\116\057\104\060\140\061" +
  180. "\067\062\060\063\127\064\132\065\072\001\002\000\012" +
  181. "\002\uffee\004\uffee\010\uffee\021\uffee\001\002\000\054\002" +
  182. "\uff9a\004\uff9a\006\uff9a\007\uff9a\010\uff9a\012\uff9a\013\uff9a" +
  183. "\014\uff9a\021\uff9a\022\uff9a\023\uff9a\024\uff9a\025\uff9a\026" +
  184. "\uff9a\027\uff9a\030\uff9a\031\uff9a\032\uff9a\033\uff9a\042\uff9a" +
  185. "\043\uff9a\001\002\000\060\002\uff7a\004\uff7a\006\uff7a\007" +
  186. "\uff7a\010\uff7a\011\uff7a\012\uff7a\013\uff7a\014\uff7a\020\uffa5" +
  187. "\021\uff7a\022\uff7a\023\uff7a\024\uff7a\025\uff7a\026\uff7a\027" +
  188. "\uff7a\030\uff7a\031\uff7a\032\uff7a\033\uff7a\042\uff7a\043\uff7a" +
  189. "\001\002\000\126\002\uffb9\005\111\007\uffb9\010\uffb9\012" +
  190. "\uffb9\013\103\014\uffb9\016\066\017\106\022\uffb9\023\uffb9" +
  191. "\024\uffb9\025\uffb9\026\uffb9\027\uffb9\030\uffb9\031\uffb9\032" +
  192. "\031\033\040\035\034\036\113\037\141\040\142\041\145" +
  193. "\042\uffb9\043\uffb9\044\063\045\062\046\065\047\115\050" +
  194. "\123\051\136\052\077\053\143\054\131\055\125\056\116" +
  195. "\057\104\060\140\061\067\062\060\063\127\001\002\000" +
  196. "\054\002\uff89\004\uff89\006\uff89\007\uff89\010\uff89\012\uff89" +
  197. "\013\uff89\014\uff89\021\uff89\022\uff89\023\uff89\024\uff89\025" +
  198. "\uff89\026\uff89\027\uff89\030\uff89\031\uff89\032\uff89\033\uff89" +
  199. "\042\uff89\043\uff89\001\002\000\054\002\uff8b\004\uff8b\006" +
  200. "\uff8b\007\uff8b\010\uff8b\012\uff8b\013\uff8b\014\uff8b\021\uff8b" +
  201. "\022\uff8b\023\uff8b\024\uff8b\025\uff8b\026\uff8b\027\uff8b\030" +
  202. "\uff8b\031\uff8b\032\uff8b\033\uff8b\042\uff8b\043\uff8b\001\002" +
  203. "\000\032\002\uffd5\007\uffd5\012\uffd5\014\uffd5\022\uffd5\023" +
  204. "\uffd5\024\221\025\222\026\223\027\224\042\uffd5\043\uffd5" +
  205. "\001\002\000\004\011\245\001\002\000\062\013\uffae\032" +
  206. "\uffae\033\uffae\035\uffae\036\uffae\037\uffae\040\uffae\041\uffae" +
  207. "\044\uffae\045\uffae\046\uffae\047\uffae\050\uffae\051\uffae\052" +
  208. "\uffae\053\uffae\054\uffae\055\uffae\056\uffae\057\uffae\060\uffae" +
  209. "\061\uffae\062\uffae\063\uffae\001\002\000\060\002\uff7b\004" +
  210. "\uff7b\006\uff7b\007\uff7b\010\uff7b\011\uff7b\012\uff7b\013\uff7b" +
  211. "\014\uff7b\020\uffa6\021\uff7b\022\uff7b\023\uff7b\024\uff7b\025" +
  212. "\uff7b\026\uff7b\027\uff7b\030\uff7b\031\uff7b\032\uff7b\033\uff7b" +
  213. "\042\uff7b\043\uff7b\001\002\000\070\005\111\013\103\016" +
  214. "\066\017\106\032\031\033\040\035\034\036\113\037\141" +
  215. "\040\142\041\145\044\063\045\062\046\065\047\115\050" +
  216. "\123\051\136\052\077\053\143\054\131\055\125\056\116" +
  217. "\057\104\060\140\061\067\062\060\063\127\001\002\000" +
  218. "\110\004\061\005\111\011\071\013\103\015\134\016\066" +
  219. "\017\106\021\070\031\075\032\031\033\040\034\057\035" +
  220. "\034\036\113\037\141\040\142\041\145\044\063\045\062" +
  221. "\046\065\047\115\050\123\051\136\052\077\053\143\054" +
  222. "\131\055\125\056\116\057\104\060\140\061\067\062\060" +
  223. "\063\127\064\132\065\072\001\002\000\054\002\uff99\004" +
  224. "\uff99\006\uff99\007\uff99\010\uff99\012\uff99\013\uff99\014\uff99" +
  225. "\021\uff99\022\uff99\023\uff99\024\uff99\025\uff99\026\uff99\027" +
  226. "\uff99\030\uff99\031\uff99\032\uff99\033\uff99\042\uff99\043\uff99" +
  227. "\001\002\000\046\002\uffb7\007\uffb7\010\uffb7\012\uffb7\013" +
  228. "\uffb7\014\uffb7\022\uffb7\023\uffb7\024\uffb7\025\uffb7\026\uffb7" +
  229. "\027\uffb7\030\uffb7\031\uffb7\032\uffb7\033\uffb7\042\uffb7\043" +
  230. "\uffb7\001\002\000\054\002\uff97\004\uff97\006\uff97\007\uff97" +
  231. "\010\uff97\012\uff97\013\uff97\014\uff97\021\uff97\022\uff97\023" +
  232. "\uff97\024\uff97\025\uff97\026\uff97\027\uff97\030\uff97\031\uff97" +
  233. "\032\uff97\033\uff97\042\uff97\043\uff97\001\002\000\110\004" +
  234. "\061\005\111\011\071\013\103\015\134\016\066\017\106" +
  235. "\021\070\031\075\032\031\033\040\034\057\035\034\036" +
  236. "\113\037\141\040\142\041\145\044\063\045\062\046\065" +
  237. "\047\115\050\123\051\136\052\077\053\143\054\131\055" +
  238. "\125\056\116\057\104\060\140\061\067\062\060\063\127" +
  239. "\064\132\065\072\001\002\000\016\002\uffd9\007\uffd9\012" +
  240. "\uffd9\014\uffd9\042\uffd9\043\234\001\002\000\060\002\uff7f" +
  241. "\004\uff7f\006\uff7f\007\uff7f\010\uff7f\011\uff7f\012\uff7f\013" +
  242. "\uff7f\014\uff7f\020\uffaa\021\uff7f\022\uff7f\023\uff7f\024\uff7f" +
  243. "\025\uff7f\026\uff7f\027\uff7f\030\uff7f\031\uff7f\032\uff7f\033" +
  244. "\uff7f\042\uff7f\043\uff7f\001\002\000\062\013\103\032\031" +
  245. "\033\040\035\034\036\113\037\141\040\142\041\145\044" +
  246. "\063\045\062\046\065\047\036\050\037\051\044\052\170" +
  247. "\053\166\054\043\055\041\056\035\057\030\060\045\061" +
  248. "\021\062\012\063\042\001\002\000\004\020\236\001\002" +
  249. "\000\014\002\uffda\007\uffda\012\uffda\014\uffda\042\232\001" +
  250. "\002\000\054\002\uff88\004\uff88\006\uff88\007\uff88\010\uff88" +
  251. "\012\uff88\013\uff88\014\uff88\021\uff88\022\uff88\023\uff88\024" +
  252. "\uff88\025\uff88\026\uff88\027\uff88\030\uff88\031\uff88\032\uff88" +
  253. "\033\uff88\042\uff88\043\uff88\001\002\000\060\002\uff7d\004" +
  254. "\uff7d\006\uff7d\007\uff7d\010\uff7d\011\uff7d\012\uff7d\013\uff7d" +
  255. "\014\uff7d\020\uffa8\021\uff7d\022\uff7d\023\uff7d\024\uff7d\025" +
  256. "\uff7d\026\uff7d\027\uff7d\030\uff7d\031\uff7d\032\uff7d\033\uff7d" +
  257. "\042\uff7d\043\uff7d\001\002\000\022\002\uffd7\007\uffd7\012" +
  258. "\uffd7\014\uffd7\022\216\023\217\042\uffd7\043\uffd7\001\002" +
  259. "\000\052\002\uff9f\004\uff9f\007\uff9f\010\uff9f\012\uff9f\013" +
  260. "\uff9f\014\uff9f\021\uff9f\022\uff9f\023\uff9f\024\uff9f\025\uff9f" +
  261. "\026\uff9f\027\uff9f\030\uff9f\031\uff9f\032\uff9f\033\uff9f\042" +
  262. "\uff9f\043\uff9f\001\002\000\054\002\uffb4\004\uffb4\006\055" +
  263. "\007\uffb4\010\uffb4\012\uffb4\013\uffb4\014\uffb4\021\uffb4\022" +
  264. "\uffb4\023\uffb4\024\uffb4\025\uffb4\026\uffb4\027\uffb4\030\uffb4" +
  265. "\031\uffb4\032\uffb4\033\uffb4\042\uffb4\043\uffb4\001\002\000" +
  266. "\046\002\uffbd\007\uffbd\010\uffbd\012\uffbd\013\uffbd\014\uffbd" +
  267. "\022\uffbd\023\uffbd\024\uffbd\025\uffbd\026\uffbd\027\uffbd\030" +
  268. "\uffbd\031\uffbd\032\uffbd\033\uffbd\042\uffbd\043\uffbd\001\002" +
  269. "\000\052\002\uffa0\004\uffa0\007\uffa0\010\uffa0\012\uffa0\013" +
  270. "\uffa0\014\uffa0\021\uffa0\022\uffa0\023\uffa0\024\uffa0\025\uffa0" +
  271. "\026\uffa0\027\uffa0\030\uffa0\031\uffa0\032\uffa0\033\uffa0\042" +
  272. "\uffa0\043\uffa0\001\002\000\036\002\uffd2\007\uffd2\012\uffd2" +
  273. "\014\uffd2\022\uffd2\023\uffd2\024\uffd2\025\uffd2\026\uffd2\027" +
  274. "\uffd2\030\211\031\212\042\uffd2\043\uffd2\001\002\000\056" +
  275. "\002\uff75\004\uff75\006\uff75\007\uff75\010\uff75\011\uff75\012" +
  276. "\uff75\013\uff75\014\uff75\021\uff75\022\uff75\023\uff75\024\uff75" +
  277. "\025\uff75\026\uff75\027\uff75\030\uff75\031\uff75\032\uff75\033" +
  278. "\uff75\042\uff75\043\uff75\001\002\000\044\002\uffca\007\uffca" +
  279. "\012\uffca\013\uffca\014\uffca\022\uffca\023\uffca\024\uffca\025" +
  280. "\uffca\026\uffca\027\uffca\030\uffca\031\uffca\032\uffca\033\uffca" +
  281. "\042\uffca\043\uffca\001\002\000\060\002\uff77\004\uff77\006" +
  282. "\uff77\007\uff77\010\uff77\011\uff77\012\uff77\013\uff77\014\uff77" +
  283. "\020\uffa2\021\uff77\022\uff77\023\uff77\024\uff77\025\uff77\026" +
  284. "\uff77\027\uff77\030\uff77\031\uff77\032\uff77\033\uff77\042\uff77" +
  285. "\043\uff77\001\002\000\060\002\uff7e\004\uff7e\006\uff7e\007" +
  286. "\uff7e\010\uff7e\011\uff7e\012\uff7e\013\uff7e\014\uff7e\020\uffa9" +
  287. "\021\uff7e\022\uff7e\023\uff7e\024\uff7e\025\uff7e\026\uff7e\027" +
  288. "\uff7e\030\uff7e\031\uff7e\032\uff7e\033\uff7e\042\uff7e\043\uff7e" +
  289. "\001\002\000\004\011\201\001\002\000\052\002\uffbc\004" +
  290. "\uffbc\007\uffbc\010\uffbc\012\uffbc\013\uffbc\014\uffbc\021\uffbc" +
  291. "\022\uffbc\023\uffbc\024\uffbc\025\uffbc\026\uffbc\027\uffbc\030" +
  292. "\uffbc\031\uffbc\032\uffbc\033\uffbc\042\uffbc\043\uffbc\001\002" +
  293. "\000\046\002\uffc2\007\uffc2\010\uffc2\012\uffc2\013\uffc2\014" +
  294. "\uffc2\022\uffc2\023\uffc2\024\uffc2\025\uffc2\026\uffc2\027\uffc2" +
  295. "\030\uffc2\031\uffc2\032\uffc2\033\uffc2\042\uffc2\043\uffc2\001" +
  296. "\002\000\054\002\uff9e\004\uff9e\006\055\007\uff9e\010\uff9e" +
  297. "\012\uff9e\013\uff9e\014\uff9e\021\uff9e\022\uff9e\023\uff9e\024" +
  298. "\uff9e\025\uff9e\026\uff9e\027\uff9e\030\uff9e\031\uff9e\032\uff9e" +
  299. "\033\uff9e\042\uff9e\043\uff9e\001\002\000\060\002\uff76\004" +
  300. "\uff76\006\uff76\007\uff76\010\uff76\011\uff76\012\uff76\013\uff76" +
  301. "\014\uff76\020\uffa1\021\uff76\022\uff76\023\uff76\024\uff76\025" +
  302. "\uff76\026\uff76\027\uff76\030\uff76\031\uff76\032\uff76\033\uff76" +
  303. "\042\uff76\043\uff76\001\002\000\046\002\uffc4\007\uffc4\010" +
  304. "\176\012\uffc4\013\uffc4\014\uffc4\022\uffc4\023\uffc4\024\uffc4" +
  305. "\025\uffc4\026\uffc4\027\uffc4\030\uffc4\031\uffc4\032\uffc4\033" +
  306. "\uffc4\042\uffc4\043\uffc4\001\002\000\060\002\uff81\004\uff81" +
  307. "\006\uff81\007\uff81\010\uff81\011\uff81\012\uff81\013\uff81\014" +
  308. "\uff81\020\uffac\021\uff81\022\uff81\023\uff81\024\uff81\025\uff81" +
  309. "\026\uff81\027\uff81\030\uff81\031\uff81\032\uff81\033\uff81\042" +
  310. "\uff81\043\uff81\001\002\000\054\002\uff9c\004\uff9c\006\uff9c" +
  311. "\007\uff9c\010\uff9c\012\uff9c\013\uff9c\014\uff9c\021\uff9c\022" +
  312. "\uff9c\023\uff9c\024\uff9c\025\uff9c\026\uff9c\027\uff9c\030\uff9c" +
  313. "\031\uff9c\032\uff9c\033\uff9c\042\uff9c\043\uff9c\001\002\000" +
  314. "\060\002\uff78\004\uff78\006\uff78\007\uff78\010\uff78\011\uff78" +
  315. "\012\uff78\013\uff78\014\uff78\020\uffa3\021\uff78\022\uff78\023" +
  316. "\uff78\024\uff78\025\uff78\026\uff78\027\uff78\030\uff78\031\uff78" +
  317. "\032\uff78\033\uff78\042\uff78\043\uff78\001\002\000\052\002" +
  318. "\uffc1\004\173\007\uffc1\010\uffc1\012\uffc1\013\uffc1\014\uffc1" +
  319. "\021\172\022\uffc1\023\uffc1\024\uffc1\025\uffc1\026\uffc1\027" +
  320. "\uffc1\030\uffc1\031\uffc1\032\uffc1\033\uffc1\042\uffc1\043\uffc1" +
  321. "\001\002\000\060\002\uff82\004\uff82\006\uff82\007\uff82\010" +
  322. "\uff82\011\uff82\012\uff82\013\uff82\014\uff82\020\uffad\021\uff82" +
  323. "\022\uff82\023\uff82\024\uff82\025\uff82\026\uff82\027\uff82\030" +
  324. "\uff82\031\uff82\032\uff82\033\uff82\042\uff82\043\uff82\001\002" +
  325. "\000\054\002\uff98\004\uff98\006\uff98\007\uff98\010\uff98\012" +
  326. "\uff98\013\uff98\014\uff98\021\uff98\022\uff98\023\uff98\024\uff98" +
  327. "\025\uff98\026\uff98\027\uff98\030\uff98\031\uff98\032\uff98\033" +
  328. "\uff98\042\uff98\043\uff98\001\002\000\004\007\171\001\002" +
  329. "\000\046\032\031\033\040\035\034\036\113\037\141\047" +
  330. "\036\050\037\051\044\052\170\053\166\054\043\055\041" +
  331. "\056\035\057\030\060\045\061\021\062\012\063\042\001" +
  332. "\002\000\052\002\uffba\004\uffba\007\uffba\010\uffba\012\uffba" +
  333. "\013\uffba\014\uffba\021\uffba\022\uffba\023\uffba\024\uffba\025" +
  334. "\uffba\026\uffba\027\uffba\030\uffba\031\uffba\032\uffba\033\uffba" +
  335. "\042\uffba\043\uffba\001\002\000\060\002\uff79\004\uff79\006" +
  336. "\uff79\007\uff79\010\uff79\011\uff79\012\uff79\013\uff79\014\uff79" +
  337. "\020\uffa4\021\uff79\022\uff79\023\uff79\024\uff79\025\uff79\026" +
  338. "\uff79\027\uff79\030\uff79\031\uff79\032\uff79\033\uff79\042\uff79" +
  339. "\043\uff79\001\002\000\052\002\uffb0\004\uffb0\007\uffb0\010" +
  340. "\uffb0\012\uffb0\013\uffb0\014\uffb0\021\uffb0\022\uffb0\023\uffb0" +
  341. "\024\uffb0\025\uffb0\026\uffb0\027\uffb0\030\uffb0\031\uffb0\032" +
  342. "\uffb0\033\uffb0\042\uffb0\043\uffb0\001\002\000\060\002\uff7c" +
  343. "\004\uff7c\006\uff7c\007\uff7c\010\uff7c\011\uff7c\012\uff7c\013" +
  344. "\uff7c\014\uff7c\020\uffa7\021\uff7c\022\uff7c\023\uff7c\024\uff7c" +
  345. "\025\uff7c\026\uff7c\027\uff7c\030\uff7c\031\uff7c\032\uff7c\033" +
  346. "\uff7c\042\uff7c\043\uff7c\001\002\000\056\002\uff83\004\uff83" +
  347. "\006\uff83\007\uff83\010\uff83\011\uff83\012\uff83\013\uff83\014" +
  348. "\uff83\021\uff83\022\uff83\023\uff83\024\uff83\025\uff83\026\uff83" +
  349. "\027\uff83\030\uff83\031\uff83\032\uff83\033\uff83\042\uff83\043" +
  350. "\uff83\001\002\000\054\002\uff8c\004\uff8c\006\uff8c\007\uff8c" +
  351. "\010\uff8c\012\uff8c\013\uff8c\014\uff8c\021\uff8c\022\uff8c\023" +
  352. "\uff8c\024\uff8c\025\uff8c\026\uff8c\027\uff8c\030\uff8c\031\uff8c" +
  353. "\032\uff8c\033\uff8c\042\uff8c\043\uff8c\001\002\000\060\002" +
  354. "\uff80\004\uff80\006\uff80\007\uff80\010\uff80\011\uff80\012\uff80" +
  355. "\013\uff80\014\uff80\020\uffab\021\uff80\022\uff80\023\uff80\024" +
  356. "\uff80\025\uff80\026\uff80\027\uff80\030\uff80\031\uff80\032\uff80" +
  357. "\033\uff80\042\uff80\043\uff80\001\002\000\044\002\uffc6\007" +
  358. "\uffc6\012\uffc6\013\uffc6\014\uffc6\022\uffc6\023\uffc6\024\uffc6" +
  359. "\025\uffc6\026\uffc6\027\uffc6\030\uffc6\031\uffc6\032\uffc6\033" +
  360. "\uffc6\042\uffc6\043\uffc6\001\002\000\054\002\uff8d\004\uff8d" +
  361. "\006\uff8d\007\uff8d\010\uff8d\012\uff8d\013\uff8d\014\uff8d\021" +
  362. "\uff8d\022\uff8d\023\uff8d\024\uff8d\025\uff8d\026\uff8d\027\uff8d" +
  363. "\030\uff8d\031\uff8d\032\uff8d\033\uff8d\042\uff8d\043\uff8d\001" +
  364. "\002\000\044\002\uffcd\007\uffcd\012\uffcd\013\160\014\uffcd" +
  365. "\022\uffcd\023\uffcd\024\uffcd\025\uffcd\026\uffcd\027\uffcd\030" +
  366. "\uffcd\031\uffcd\032\161\033\157\042\uffcd\043\uffcd\001\002" +
  367. "\000\052\002\uffbe\004\153\007\uffbe\010\uffbe\012\uffbe\013" +
  368. "\uffbe\014\uffbe\021\152\022\uffbe\023\uffbe\024\uffbe\025\uffbe" +
  369. "\026\uffbe\027\uffbe\030\uffbe\031\uffbe\032\uffbe\033\uffbe\042" +
  370. "\uffbe\043\uffbe\001\002\000\054\002\uff8e\004\uff8e\006\uff8e" +
  371. "\007\uff8e\010\uff8e\012\uff8e\013\uff8e\014\uff8e\021\uff8e\022" +
  372. "\uff8e\023\uff8e\024\uff8e\025\uff8e\026\uff8e\027\uff8e\030\uff8e" +
  373. "\031\uff8e\032\uff8e\033\uff8e\042\uff8e\043\uff8e\001\002\000" +
  374. "\056\002\uff87\004\uff87\006\uff87\007\uff87\010\uff87\011\uff91" +
  375. "\012\uff87\013\uff87\014\uff87\021\uff87\022\uff87\023\uff87\024" +
  376. "\uff87\025\uff87\026\uff87\027\uff87\030\uff87\031\uff87\032\uff87" +
  377. "\033\uff87\042\uff87\043\uff87\001\002\000\070\005\111\013" +
  378. "\103\016\066\017\106\032\031\033\040\035\034\036\113" +
  379. "\037\141\040\142\041\145\044\063\045\062\046\065\047" +
  380. "\115\050\123\051\136\052\077\053\143\054\131\055\125" +
  381. "\056\116\057\104\060\140\061\067\062\060\063\127\001" +
  382. "\002\000\070\005\111\013\103\016\066\017\106\032\031" +
  383. "\033\040\035\034\036\113\037\141\040\142\041\145\044" +
  384. "\063\045\062\046\065\047\115\050\123\051\136\052\077" +
  385. "\053\143\054\131\055\125\056\116\057\104\060\140\061" +
  386. "\067\062\060\063\127\001\002\000\054\002\uff87\004\uff87" +
  387. "\006\uff87\007\uff87\010\uff87\012\uff87\013\uff87\014\uff87\021" +
  388. "\uff87\022\uff87\023\uff87\024\uff87\025\uff87\026\uff87\027\uff87" +
  389. "\030\uff87\031\uff87\032\uff87\033\uff87\042\uff87\043\uff87\001" +
  390. "\002\000\052\002\uffbb\004\uffbb\007\uffbb\010\uffbb\012\uffbb" +
  391. "\013\uffbb\014\uffbb\021\uffbb\022\uffbb\023\uffbb\024\uffbb\025" +
  392. "\uffbb\026\uffbb\027\uffbb\030\uffbb\031\uffbb\032\uffbb\033\uffbb" +
  393. "\042\uffbb\043\uffbb\001\002\000\052\002\uffb6\004\uffb6\007" +
  394. "\uffb6\010\uffb6\012\uffb6\013\uffb6\014\uffb6\021\uffb6\022\uffb6" +
  395. "\023\uffb6\024\uffb6\025\uffb6\026\uffb6\027\uffb6\030\uffb6\031" +
  396. "\uffb6\032\uffb6\033\uffb6\042\uffb6\043\uffb6\001\002\000\110" +
  397. "\004\061\005\111\011\071\013\103\015\134\016\066\017" +
  398. "\106\021\070\031\075\032\031\033\040\034\057\035\034" +
  399. "\036\113\037\141\040\142\041\145\044\063\045\062\046" +
  400. "\065\047\115\050\123\051\136\052\077\053\143\054\131" +
  401. "\055\125\056\116\057\104\060\140\061\067\062\060\063" +
  402. "\127\064\132\065\072\001\002\000\110\004\061\005\111" +
  403. "\011\071\013\103\015\134\016\066\017\106\021\070\031" +
  404. "\075\032\031\033\040\034\057\035\034\036\113\037\141" +
  405. "\040\142\041\145\044\063\045\062\046\065\047\115\050" +
  406. "\123\051\136\052\077\053\143\054\131\055\125\056\116" +
  407. "\057\104\060\140\061\067\062\060\063\127\064\132\065" +
  408. "\072\001\002\000\110\004\061\005\111\011\071\013\103" +
  409. "\015\134\016\066\017\106\021\070\031\075\032\031\033" +
  410. "\040\034\057\035\034\036\113\037\141\040\142\041\145" +
  411. "\044\063\045\062\046\065\047\115\050\123\051\136\052" +
  412. "\077\053\143\054\131\055\125\056\116\057\104\060\140" +
  413. "\061\067\062\060\063\127\064\132\065\072\001\002\000" +
  414. "\044\002\uffc8\007\uffc8\012\uffc8\013\uffc8\014\uffc8\022\uffc8" +
  415. "\023\uffc8\024\uffc8\025\uffc8\026\uffc8\027\uffc8\030\uffc8\031" +
  416. "\uffc8\032\uffc8\033\uffc8\042\uffc8\043\uffc8\001\002\000\044" +
  417. "\002\uffc9\007\uffc9\012\uffc9\013\uffc9\014\uffc9\022\uffc9\023" +
  418. "\uffc9\024\uffc9\025\uffc9\026\uffc9\027\uffc9\030\uffc9\031\uffc9" +
  419. "\032\uffc9\033\uffc9\042\uffc9\043\uffc9\001\002\000\044\002" +
  420. "\uffc7\007\uffc7\012\uffc7\013\uffc7\014\uffc7\022\uffc7\023\uffc7" +
  421. "\024\uffc7\025\uffc7\026\uffc7\027\uffc7\030\uffc7\031\uffc7\032" +
  422. "\uffc7\033\uffc7\042\uffc7\043\uffc7\001\002\000\054\002\uff90" +
  423. "\004\uff90\006\uff90\007\uff90\010\uff90\012\uff90\013\uff90\014" +
  424. "\uff90\021\uff90\022\uff90\023\uff90\024\uff90\025\uff90\026\uff90" +
  425. "\027\uff90\030\uff90\031\uff90\032\uff90\033\uff90\042\uff90\043" +
  426. "\uff90\001\002\000\054\002\uff80\004\uff80\006\uff80\007\uff80" +
  427. "\010\uff80\012\uff80\013\uff80\014\uff80\021\uff80\022\uff80\023" +
  428. "\uff80\024\uff80\025\uff80\026\uff80\027\uff80\030\uff80\031\uff80" +
  429. "\032\uff80\033\uff80\042\uff80\043\uff80\001\002\000\054\002" +
  430. "\uff96\004\uff96\006\uff96\007\uff96\010\uff96\012\uff96\013\uff96" +
  431. "\014\uff96\021\uff96\022\uff96\023\uff96\024\uff96\025\uff96\026" +
  432. "\uff96\027\uff96\030\uff96\031\uff96\032\uff96\033\uff96\042\uff96" +
  433. "\043\uff96\001\002\000\054\002\uff7f\004\uff7f\006\uff7f\007" +
  434. "\uff7f\010\uff7f\012\uff7f\013\uff7f\014\uff7f\021\uff7f\022\uff7f" +
  435. "\023\uff7f\024\uff7f\025\uff7f\026\uff7f\027\uff7f\030\uff7f\031" +
  436. "\uff7f\032\uff7f\033\uff7f\042\uff7f\043\uff7f\001\002\000\054" +
  437. "\002\uffdb\004\uffdb\006\uffdb\007\uffdb\010\uffdb\012\uffdb\013" +
  438. "\uffdb\014\uffdb\021\uffdb\022\uffdb\023\uffdb\024\uffdb\025\uffdb" +
  439. "\026\uffdb\027\uffdb\030\uffdb\031\uffdb\032\uffdb\033\uffdb\042" +
  440. "\uffdb\043\uffdb\001\002\000\070\005\111\013\103\016\066" +
  441. "\017\106\032\031\033\040\035\034\036\113\037\141\040" +
  442. "\142\041\145\044\063\045\062\046\065\047\115\050\123" +
  443. "\051\136\052\077\053\143\054\131\055\125\056\116\057" +
  444. "\104\060\140\061\067\062\060\063\127\001\002\000\070" +
  445. "\005\111\013\103\016\066\017\106\032\031\033\040\035" +
  446. "\034\036\113\037\141\040\142\041\145\044\063\045\062" +
  447. "\046\065\047\115\050\123\051\136\052\077\053\143\054" +
  448. "\131\055\125\056\116\057\104\060\140\061\067\062\060" +
  449. "\063\127\001\002\000\052\002\uffc0\004\153\007\uffc0\010" +
  450. "\uffc0\012\uffc0\013\uffc0\014\uffc0\021\152\022\uffc0\023\uffc0" +
  451. "\024\uffc0\025\uffc0\026\uffc0\027\uffc0\030\uffc0\031\uffc0\032" +
  452. "\uffc0\033\uffc0\042\uffc0\043\uffc0\001\002\000\052\002\uffbf" +
  453. "\004\153\007\uffbf\010\uffbf\012\uffbf\013\uffbf\014\uffbf\021" +
  454. "\152\022\uffbf\023\uffbf\024\uffbf\025\uffbf\026\uffbf\027\uffbf" +
  455. "\030\uffbf\031\uffbf\032\uffbf\033\uffbf\042\uffbf\043\uffbf\001" +
  456. "\002\000\106\004\061\005\111\011\071\013\103\015\134" +
  457. "\016\066\017\106\021\070\032\031\033\040\034\057\035" +
  458. "\034\036\113\037\141\040\142\041\145\044\063\045\062" +
  459. "\046\065\047\115\050\123\051\136\052\077\053\143\054" +
  460. "\131\055\125\056\116\057\104\060\140\061\067\062\060" +
  461. "\063\127\064\132\065\072\001\002\000\044\002\uffc3\007" +
  462. "\uffc3\012\uffc3\013\uffc3\014\uffc3\022\uffc3\023\uffc3\024\uffc3" +
  463. "\025\uffc3\026\uffc3\027\uffc3\030\uffc3\031\uffc3\032\uffc3\033" +
  464. "\uffc3\042\uffc3\043\uffc3\001\002\000\052\002\uff9d\004\uff9d" +
  465. "\007\uff9d\010\uff9d\012\uff9d\013\uff9d\014\uff9d\021\uff9d\022" +
  466. "\uff9d\023\uff9d\024\uff9d\025\uff9d\026\uff9d\027\uff9d\030\uff9d" +
  467. "\031\uff9d\032\uff9d\033\uff9d\042\uff9d\043\uff9d\001\002\000" +
  468. "\112\004\061\005\111\011\071\012\202\013\103\015\134" +
  469. "\016\066\017\106\021\070\031\075\032\031\033\040\034" +
  470. "\057\035\034\036\113\037\141\040\142\041\145\044\063" +
  471. "\045\062\046\065\047\115\050\123\051\136\052\077\053" +
  472. "\143\054\131\055\125\056\116\057\104\060\140\061\067" +
  473. "\062\060\063\127\064\132\065\072\001\002\000\054\002" +
  474. "\uff95\004\uff95\006\uff95\007\uff95\010\uff95\012\uff95\013\uff95" +
  475. "\014\uff95\021\uff95\022\uff95\023\uff95\024\uff95\025\uff95\026" +
  476. "\uff95\027\uff95\030\uff95\031\uff95\032\uff95\033\uff95\042\uff95" +
  477. "\043\uff95\001\002\000\006\012\uff93\014\207\001\002\000" +
  478. "\006\012\uff8f\014\uff8f\001\002\000\004\012\206\001\002" +
  479. "\000\054\002\uff94\004\uff94\006\uff94\007\uff94\010\uff94\012" +
  480. "\uff94\013\uff94\014\uff94\021\uff94\022\uff94\023\uff94\024\uff94" +
  481. "\025\uff94\026\uff94\027\uff94\030\uff94\031\uff94\032\uff94\033" +
  482. "\uff94\042\uff94\043\uff94\001\002\000\110\004\061\005\111" +
  483. "\011\071\013\103\015\134\016\066\017\106\021\070\031" +
  484. "\075\032\031\033\040\034\057\035\034\036\113\037\141" +
  485. "\040\142\041\145\044\063\045\062\046\065\047\115\050" +
  486. "\123\051\136\052\077\053\143\054\131\055\125\056\116" +
  487. "\057\104\060\140\061\067\062\060\063\127\064\132\065" +
  488. "\072\001\002\000\004\012\uff92\001\002\000\110\004\061" +
  489. "\005\111\011\071\013\103\015\134\016\066\017\106\021" +
  490. "\070\031\075\032\031\033\040\034\057\035\034\036\113" +
  491. "\037\141\040\142\041\145\044\063\045\062\046\065\047" +
  492. "\115\050\123\051\136\052\077\053\143\054\131\055\125" +
  493. "\056\116\057\104\060\140\061\067\062\060\063\127\064" +
  494. "\132\065\072\001\002\000\110\004\061\005\111\011\071" +
  495. "\013\103\015\134\016\066\017\106\021\070\031\075\032" +
  496. "\031\033\040\034\057\035\034\036\113\037\141\040\142" +
  497. "\041\145\044\063\045\062\046\065\047\115\050\123\051" +
  498. "\136\052\077\053\143\054\131\055\125\056\116\057\104" +
  499. "\060\140\061\067\062\060\063\127\064\132\065\072\001" +
  500. "\002\000\044\002\uffcb\007\uffcb\012\uffcb\013\160\014\uffcb" +
  501. "\022\uffcb\023\uffcb\024\uffcb\025\uffcb\026\uffcb\027\uffcb\030" +
  502. "\uffcb\031\uffcb\032\161\033\157\042\uffcb\043\uffcb\001\002" +
  503. "\000\044\002\uffcc\007\uffcc\012\uffcc\013\160\014\uffcc\022" +
  504. "\uffcc\023\uffcc\024\uffcc\025\uffcc\026\uffcc\027\uffcc\030\uffcc" +
  505. "\031\uffcc\032\161\033\157\042\uffcc\043\uffcc\001\002\000" +
  506. "\052\002\uffb3\004\uffb3\007\uffb3\010\uffb3\012\uffb3\013\uffb3" +
  507. "\014\uffb3\021\uffb3\022\uffb3\023\uffb3\024\uffb3\025\uffb3\026" +
  508. "\uffb3\027\uffb3\030\uffb3\031\uffb3\032\uffb3\033\uffb3\042\uffb3" +
  509. "\043\uffb3\001\002\000\110\004\061\005\111\011\071\013" +
  510. "\103\015\134\016\066\017\106\021\070\031\075\032\031" +
  511. "\033\040\034\057\035\034\036\113\037\141\040\142\041" +
  512. "\145\044\063\045\062\046\065\047\115\050\123\051\136" +
  513. "\052\077\053\143\054\131\055\125\056\116\057\104\060" +
  514. "\140\061\067\062\060\063\127\064\132\065\072\001\002" +
  515. "\000\110\004\061\005\111\011\071\013\103\015\134\016" +
  516. "\066\017\106\021\070\031\075\032\031\033\040\034\057" +
  517. "\035\034\036\113\037\141\040\142\041\145\044\063\045" +
  518. "\062\046\065\047\115\050\123\051\136\052\077\053\143" +
  519. "\054\131\055\125\056\116\057\104\060\140\061\067\062" +
  520. "\060\063\127\064\132\065\072\001\002\000\032\002\uffd3" +
  521. "\007\uffd3\012\uffd3\014\uffd3\022\uffd3\023\uffd3\024\221\025" +
  522. "\222\026\223\027\224\042\uffd3\043\uffd3\001\002\000\110" +
  523. "\004\061\005\111\011\071\013\103\015\134\016\066\017" +
  524. "\106\021\070\031\075\032\031\033\040\034\057\035\034" +
  525. "\036\113\037\141\040\142\041\145\044\063\045\062\046" +
  526. "\065\047\115\050\123\051\136\052\077\053\143\054\131" +
  527. "\055\125\056\116\057\104\060\140\061\067\062\060\063" +
  528. "\127\064\132\065\072\001\002\000\110\004\061\005\111" +
  529. "\011\071\013\103\015\134\016\066\017\106\021\070\031" +
  530. "\075\032\031\033\040\034\057\035\034\036\113\037\141" +
  531. "\040\142\041\145\044\063\045\062\046\065\047\115\050" +
  532. "\123\051\136\052\077\053\143\054\131\055\125\056\116" +
  533. "\057\104\060\140\061\067\062\060\063\127\064\132\065" +
  534. "\072\001\002\000\110\004\061\005\111\011\071\013\103" +
  535. "\015\134\016\066\017\106\021\070\031\075\032\031\033" +
  536. "\040\034\057\035\034\036\113\037\141\040\142\041\145" +
  537. "\044\063\045\062\046\065\047\115\050\123\051\136\052" +
  538. "\077\053\143\054\131\055\125\056\116\057\104\060\140" +
  539. "\061\067\062\060\063\127\064\132\065\072\001\002\000" +
  540. "\110\004\061\005\111\011\071\013\103\015\134\016\066" +
  541. "\017\106\021\070\031\075\032\031\033\040\034\057\035" +
  542. "\034\036\113\037\141\040\142\041\145\044\063\045\062" +
  543. "\046\065\047\115\050\123\051\136\052\077\053\143\054" +
  544. "\131\055\125\056\116\057\104\060\140\061\067\062\060" +
  545. "\063\127\064\132\065\072\001\002\000\036\002\uffce\007" +
  546. "\uffce\012\uffce\014\uffce\022\uffce\023\uffce\024\uffce\025\uffce" +
  547. "\026\uffce\027\uffce\030\211\031\212\042\uffce\043\uffce\001" +
  548. "\002\000\036\002\uffcf\007\uffcf\012\uffcf\014\uffcf\022\uffcf" +
  549. "\023\uffcf\024\uffcf\025\uffcf\026\uffcf\027\uffcf\030\211\031" +
  550. "\212\042\uffcf\043\uffcf\001\002\000\036\002\uffd0\007\uffd0" +
  551. "\012\uffd0\014\uffd0\022\uffd0\023\uffd0\024\uffd0\025\uffd0\026" +
  552. "\uffd0\027\uffd0\030\211\031\212\042\uffd0\043\uffd0\001\002" +
  553. "\000\036\002\uffd1\007\uffd1\012\uffd1\014\uffd1\022\uffd1\023" +
  554. "\uffd1\024\uffd1\025\uffd1\026\uffd1\027\uffd1\030\211\031\212" +
  555. "\042\uffd1\043\uffd1\001\002\000\032\002\uffd4\007\uffd4\012" +
  556. "\uffd4\014\uffd4\022\uffd4\023\uffd4\024\221\025\222\026\223" +
  557. "\027\224\042\uffd4\043\uffd4\001\002\000\110\004\061\005" +
  558. "\111\011\071\013\103\015\134\016\066\017\106\021\070" +
  559. "\031\075\032\031\033\040\034\057\035\034\036\113\037" +
  560. "\141\040\142\041\145\044\063\045\062\046\065\047\115" +
  561. "\050\123\051\136\052\077\053\143\054\131\055\125\056" +
  562. "\116\057\104\060\140\061\067\062\060\063\127\064\132" +
  563. "\065\072\001\002\000\016\002\uffd8\007\uffd8\012\uffd8\014" +
  564. "\uffd8\042\uffd8\043\234\001\002\000\110\004\061\005\111" +
  565. "\011\071\013\103\015\134\016\066\017\106\021\070\031" +
  566. "\075\032\031\033\040\034\057\035\034\036\113\037\141" +
  567. "\040\142\041\145\044\063\045\062\046\065\047\115\050" +
  568. "\123\051\136\052\077\053\143\054\131\055\125\056\116" +
  569. "\057\104\060\140\061\067\062\060\063\127\064\132\065" +
  570. "\072\001\002\000\022\002\uffd6\007\uffd6\012\uffd6\014\uffd6" +
  571. "\022\216\023\217\042\uffd6\043\uffd6\001\002\000\062\013" +
  572. "\uffaf\032\uffaf\033\uffaf\035\uffaf\036\uffaf\037\uffaf\040\uffaf" +
  573. "\041\uffaf\044\uffaf\045\uffaf\046\uffaf\047\uffaf\050\uffaf\051" +
  574. "\uffaf\052\uffaf\053\uffaf\054\uffaf\055\uffaf\056\uffaf\057\uffaf" +
  575. "\060\uffaf\061\uffaf\062\uffaf\063\uffaf\001\002\000\054\002" +
  576. "\uffb1\004\uffb1\006\055\007\uffb1\010\uffb1\012\uffb1\013\uffb1" +
  577. "\014\uffb1\021\uffb1\022\uffb1\023\uffb1\024\uffb1\025\uffb1\026" +
  578. "\uffb1\027\uffb1\030\uffb1\031\uffb1\032\uffb1\033\uffb1\042\uffb1" +
  579. "\043\uffb1\001\002\000\052\002\uffb2\004\uffb2\007\uffb2\010" +
  580. "\uffb2\012\uffb2\013\uffb2\014\uffb2\021\uffb2\022\uffb2\023\uffb2" +
  581. "\024\uffb2\025\uffb2\026\uffb2\027\uffb2\030\uffb2\031\uffb2\032" +
  582. "\uffb2\033\uffb2\042\uffb2\043\uffb2\001\002\000\044\002\uffc5" +
  583. "\007\uffc5\012\uffc5\013\uffc5\014\uffc5\022\uffc5\023\uffc5\024" +
  584. "\uffc5\025\uffc5\026\uffc5\027\uffc5\030\uffc5\031\uffc5\032\uffc5" +
  585. "\033\uffc5\042\uffc5\043\uffc5\001\002\000\004\012\243\001" +
  586. "\002\000\054\002\uff9b\004\uff9b\006\uff9b\007\uff9b\010\uff9b" +
  587. "\012\uff9b\013\uff9b\014\uff9b\021\uff9b\022\uff9b\023\uff9b\024" +
  588. "\uff9b\025\uff9b\026\uff9b\027\uff9b\030\uff9b\031\uff9b\032\uff9b" +
  589. "\033\uff9b\042\uff9b\043\uff9b\001\002\000\052\002\uffb5\004" +
  590. "\153\007\uffb5\010\uffb5\012\uffb5\013\uffb5\014\uffb5\021\152" +
  591. "\022\uffb5\023\uffb5\024\uffb5\025\uffb5\026\uffb5\027\uffb5\030" +
  592. "\uffb5\031\uffb5\032\uffb5\033\uffb5\042\uffb5\043\uffb5\001\002" +
  593. "\000\004\034\246\001\002\000\004\012\247\001\002\000" +
  594. "\054\002\uff8a\004\uff8a\006\uff8a\007\uff8a\010\uff8a\012\uff8a" +
  595. "\013\uff8a\014\uff8a\021\uff8a\022\uff8a\023\uff8a\024\uff8a\025" +
  596. "\uff8a\026\uff8a\027\uff8a\030\uff8a\031\uff8a\032\uff8a\033\uff8a" +
  597. "\042\uff8a\043\uff8a\001\002\000\052\002\uffb8\004\153\007" +
  598. "\uffb8\010\uffb8\012\uffb8\013\uffb8\014\uffb8\021\152\022\uffb8" +
  599. "\023\uffb8\024\uffb8\025\uffb8\026\uffb8\027\uffb8\030\uffb8\031" +
  600. "\uffb8\032\uffb8\033\uffb8\042\uffb8\043\uffb8\001\002\000\052" +
  601. "\002\uffdc\004\uffdc\007\uffdc\010\uffdc\012\uffdc\013\uffdc\014" +
  602. "\uffdc\021\uffdc\022\uffdc\023\uffdc\024\uffdc\025\uffdc\026\uffdc" +
  603. "\027\uffdc\030\uffdc\031\uffdc\032\uffdc\033\uffdc\042\uffdc\043" +
  604. "\uffdc\001\002\000\062\013\uffde\032\uffde\033\uffde\035\uffde" +
  605. "\036\uffde\037\uffde\040\uffde\041\uffde\044\uffde\045\uffde\046" +
  606. "\uffde\047\uffde\050\uffde\051\uffde\052\uffde\053\uffde\054\uffde" +
  607. "\055\uffde\056\uffde\057\uffde\060\uffde\061\uffde\062\uffde\063" +
  608. "\uffde\001\002\000\004\034\254\001\002\000\004\014\255" +
  609. "\001\002\000\004\034\256\001\002\000\004\012\257\001" +
  610. "\002\000\012\002\ufff4\004\ufff4\010\ufff4\021\ufff4\001\002" +
  611. "\000\004\034\261\001\002\000\004\012\262\001\002\000" +
  612. "\012\002\ufff5\004\ufff5\010\ufff5\021\ufff5\001\002\000\012" +
  613. "\002\uffec\004\uffec\010\uffec\021\uffec\001\002\000\062\013" +
  614. "\uffdf\032\uffdf\033\uffdf\035\uffdf\036\uffdf\037\uffdf\040\uffdf" +
  615. "\041\uffdf\044\uffdf\045\uffdf\046\uffdf\047\uffdf\050\uffdf\051" +
  616. "\uffdf\052\uffdf\053\uffdf\054\uffdf\055\uffdf\056\uffdf\057\uffdf" +
  617. "\060\uffdf\061\uffdf\062\uffdf\063\uffdf\001\002\000\064\013" +
  618. "\027\016\020\032\031\033\040\035\034\036\113\037\141" +
  619. "\040\047\041\051\044\015\045\014\046\016\047\036\050" +
  620. "\037\051\044\052\025\053\050\054\043\055\041\056\035" +
  621. "\057\030\060\045\061\021\062\012\063\042\001\002\000" +
  622. "\064\013\027\016\020\032\031\033\040\035\034\036\113" +
  623. "\037\141\040\047\041\051\044\015\045\014\046\016\047" +
  624. "\036\050\037\051\044\052\025\053\050\054\043\055\041" +
  625. "\056\035\057\030\060\045\061\021\062\012\063\042\001" +
  626. "\002\000\006\002\ufff1\010\ufff1\001\002\000\006\002\ufff0" +
  627. "\010\ufff0\001\002\000\006\002\ufff7\010\ufff7\001\002\000" +
  628. "\014\002\uffe9\004\uffe9\006\055\010\uffe9\021\uffe9\001\002" +
  629. "\000\014\002\uffeb\004\uffeb\006\055\010\uffeb\021\uffeb\001" +
  630. "\002\000\012\002\uffea\004\uffea\010\uffea\021\uffea\001\002" +
  631. "\000\012\002\uffe8\004\uffe8\010\uffe8\021\uffe8\001\002\000" +
  632. "\064\013\027\016\020\032\031\033\040\035\034\036\113" +
  633. "\037\141\040\047\041\051\044\015\045\014\046\016\047" +
  634. "\036\050\037\051\044\052\025\053\050\054\043\055\041" +
  635. "\056\035\057\030\060\045\061\021\062\012\063\042\001" +
  636. "\002\000\064\013\027\016\020\032\031\033\040\035\034" +
  637. "\036\113\037\141\040\047\041\051\044\015\045\014\046" +
  638. "\016\047\036\050\037\051\044\052\025\053\050\054\043" +
  639. "\055\041\056\035\057\030\060\045\061\021\062\012\063" +
  640. "\042\001\002\000\006\002\ufff9\010\ufff9\001\002\000\006" +
  641. "\002\ufff8\010\ufff8\001\002\000\004\034\303\001\002\000" +
  642. "\004\012\304\001\002\000\014\002\ufff3\004\ufff3\006\ufff3" +
  643. "\010\ufff3\021\ufff3\001\002\000\006\002\ufffb\010\ufffb\001" +
  644. "\002\000\070\004\013\013\027\016\020\021\023\032\031" +
  645. "\033\040\035\034\036\033\037\046\040\047\041\051\044" +
  646. "\015\045\014\046\016\047\036\050\037\051\044\052\025" +
  647. "\053\050\054\043\055\041\056\035\057\030\060\045\061" +
  648. "\021\062\012\063\042\001\002\000\004\002\ufffd\001\002" +
  649. "\000\004\002\uffff\001\002\000\004\002\001\001\002" });
  650. /** Access to parse-action table. */
  651. public short[][] action_table() {return _action_table;}
  652. /** <code>reduce_goto</code> table. */
  653. protected static final short[][] _reduce_table =
  654. unpackFromStrings(new String[] {
  655. "\000\307\000\004\003\003\001\001\000\002\001\001\000" +
  656. "\070\004\307\006\120\010\127\011\117\012\101\013\075" +
  657. "\014\104\015\063\016\111\017\145\020\113\021\125\022" +
  658. "\073\023\121\024\143\025\123\026\136\027\146\030\134" +
  659. "\031\107\032\072\033\106\034\147\047\150\050\116\052" +
  660. "\100\053\077\001\001\000\026\035\016\036\007\037\006" +
  661. "\040\031\041\025\042\023\043\052\044\010\047\051\054" +
  662. "\021\001\001\000\002\001\001\000\002\001\001\000\002" +
  663. "\001\001\000\002\001\001\000\020\040\031\041\304\042" +
  664. "\023\043\052\044\010\047\051\054\021\001\001\000\002" +
  665. "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
  666. "\001\000\002\001\001\000\002\001\001\000\012\040\271" +
  667. "\043\272\044\010\047\051\001\001\000\020\040\031\041" +
  668. "\270\042\023\043\052\044\010\047\051\054\021\001\001" +
  669. "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
  670. "\002\001\001\000\002\001\001\000\002\001\001\000\006" +
  671. "\007\053\045\262\001\001\000\002\001\001\000\002\001" +
  672. "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
  673. "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
  674. "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
  675. "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
  676. "\001\000\002\001\001\000\006\007\053\045\055\001\001" +
  677. "\000\006\007\053\045\250\001\001\000\070\004\132\006" +
  678. "\120\010\127\011\117\012\101\013\075\014\104\015\063" +
  679. "\016\111\017\145\020\113\021\125\022\073\023\121\024" +
  680. "\143\025\123\026\136\027\146\030\134\031\107\032\072" +
  681. "\033\106\034\147\047\150\050\116\052\100\053\077\001" +
  682. "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
  683. "\000\024\011\117\026\136\027\247\030\134\033\106\034" +
  684. "\147\047\153\052\100\053\077\001\001\000\002\001\001" +
  685. "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
  686. "\002\001\001\000\002\001\001\000\024\011\117\026\136" +
  687. "\027\243\030\134\033\106\034\147\047\153\052\100\053" +
  688. "\077\001\001\000\070\004\241\006\120\010\127\011\117" +
  689. "\012\101\013\075\014\104\015\063\016\111\017\145\020" +
  690. "\113\021\125\022\073\023\121\024\143\025\123\026\136" +
  691. "\027\146\030\134\031\107\032\072\033\106\034\147\047" +
  692. "\150\050\116\052\100\053\077\001\001\000\002\001\001" +
  693. "\000\002\001\001\000\002\001\001\000\052\006\120\010" +
  694. "\127\011\117\020\240\021\125\022\073\023\121\024\143" +
  695. "\025\123\026\136\027\146\030\134\031\107\032\072\033" +
  696. "\106\034\147\047\150\050\116\052\100\053\077\001\001" +
  697. "\000\002\001\001\000\002\001\001\000\010\033\236\034" +
  698. "\147\047\153\001\001\000\002\001\001\000\002\001\001" +
  699. "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
  700. "\002\001\001\000\006\007\053\045\214\001\001\000\002" +
  701. "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
  702. "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
  703. "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
  704. "\006\007\053\045\177\001\001\000\002\001\001\000\002" +
  705. "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
  706. "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
  707. "\000\002\001\001\000\006\047\164\051\166\001\001\000" +
  708. "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
  709. "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
  710. "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
  711. "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
  712. "\020\011\155\026\136\033\106\034\147\047\153\052\100" +
  713. "\053\077\001\001\000\020\011\154\026\136\033\106\034" +
  714. "\147\047\153\052\100\053\077\001\001\000\002\001\001" +
  715. "\000\002\001\001\000\002\001\001\000\052\006\120\010" +
  716. "\127\011\117\020\163\021\125\022\073\023\121\024\143" +
  717. "\025\123\026\136\027\146\030\134\031\107\032\072\033" +
  718. "\106\034\147\047\150\050\116\052\100\053\077\001\001" +
  719. "\000\052\006\120\010\127\011\117\020\162\021\125\022" +
  720. "\073\023\121\024\143\025\123\026\136\027\146\030\134" +
  721. "\031\107\032\072\033\106\034\147\047\150\050\116\052" +
  722. "\100\053\077\001\001\000\052\006\120\010\127\011\117" +
  723. "\020\161\021\125\022\073\023\121\024\143\025\123\026" +
  724. "\136\027\146\030\134\031\107\032\072\033\106\034\147" +
  725. "\047\150\050\116\052\100\053\077\001\001\000\002\001" +
  726. "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
  727. "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
  728. "\002\001\001\000\024\011\117\026\136\027\174\030\134" +
  729. "\033\106\034\147\047\153\052\100\053\077\001\001\000" +
  730. "\024\011\117\026\136\027\173\030\134\033\106\034\147" +
  731. "\047\153\052\100\053\077\001\001\000\002\001\001\000" +
  732. "\002\001\001\000\050\006\120\010\127\011\117\021\125" +
  733. "\022\073\023\121\024\176\025\123\026\136\027\146\030" +
  734. "\134\031\107\032\072\033\106\034\147\047\150\050\116" +
  735. "\052\100\053\077\001\001\000\002\001\001\000\002\001" +
  736. "\001\000\074\004\203\005\202\006\120\010\127\011\117" +
  737. "\012\101\013\075\014\104\015\063\016\111\017\145\020" +
  738. "\113\021\125\022\073\023\121\024\143\025\123\026\136" +
  739. "\027\146\030\134\031\107\032\072\033\106\034\147\046" +
  740. "\204\047\150\050\116\052\100\053\077\001\001\000\002" +
  741. "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
  742. "\001\000\002\001\001\000\074\004\203\005\202\006\120" +
  743. "\010\127\011\117\012\101\013\075\014\104\015\063\016" +
  744. "\111\017\145\020\113\021\125\022\073\023\121\024\143" +
  745. "\025\123\026\136\027\146\030\134\031\107\032\072\033" +
  746. "\106\034\147\046\207\047\150\050\116\052\100\053\077" +
  747. "\001\001\000\002\001\001\000\054\006\120\010\127\011" +
  748. "\117\017\213\020\113\021\125\022\073\023\121\024\143" +
  749. "\025\123\026\136\027\146\030\134\031\107\032\072\033" +
  750. "\106\034\147\047\150\050\116\052\100\053\077\001\001" +
  751. "\000\054\006\120\010\127\011\117\017\212\020\113\021" +
  752. "\125\022\073\023\121\024\143\025\123\026\136\027\146" +
  753. "\030\134\031\107\032\072\033\106\034\147\047\150\050" +
  754. "\116\052\100\053\077\001\001\000\002\001\001\000\002" +
  755. "\001\001\000\002\001\001\000\060\006\120\010\127\011" +
  756. "\117\015\230\016\111\017\145\020\113\021\125\022\073" +
  757. "\023\121\024\143\025\123\026\136\027\146\030\134\031" +
  758. "\107\032\072\033\106\034\147\047\150\050\116\052\100" +
  759. "\053\077\001\001\000\060\006\120\010\127\011\117\015" +
  760. "\217\016\111\017\145\020\113\021\125\022\073\023\121" +
  761. "\024\143\025\123\026\136\027\146\030\134\031\107\032" +
  762. "\072\033\106\034\147\047\150\050\116\052\100\053\077" +
  763. "\001\001\000\002\001\001\000\056\006\120\010\127\011" +
  764. "\117\016\227\017\145\020\113\021\125\022\073\023\121" +
  765. "\024\143\025\123\026\136\027\146\030\134\031\107\032" +
  766. "\072\033\106\034\147\047\150\050\116\052\100\053\077" +
  767. "\001\001\000\056\006\120\010\127\011\117\016\226\017" +
  768. "\145\020\113\021\125\022\073\023\121\024\143\025\123" +
  769. "\026\136\027\146\030\134\031\107\032\072\033\106\034" +
  770. "\147\047\150\050\116\052\100\053\077\001\001\000\056" +
  771. "\006\120\010\127\011\117\016\225\017\145\020\113\021" +
  772. "\125\022\073\023\121\024\143\025\123\026\136\027\146" +
  773. "\030\134\031\107\032\072\033\106\034\147\047\150\050" +
  774. "\116\052\100\053\077\001\001\000\056\006\120\010\127" +
  775. "\011\117\016\224\017\145\020\113\021\125\022\073\023" +
  776. "\121\024\143\025\123\026\136\027\146\030\134\031\107" +
  777. "\032\072\033\106\034\147\047\150\050\116\052\100\053" +
  778. "\077\001\001\000\002\001\001\000\002\001\001\000\002" +
  779. "\001\001\000\002\001\001\000\002\001\001\000\064\006" +
  780. "\120\010\127\011\117\013\232\014\104\015\063\016\111" +
  781. "\017\145\020\113\021\125\022\073\023\121\024\143\025" +
  782. "\123\026\136\027\146\030\134\031\107\032\072\033\106" +
  783. "\034\147\047\150\050\116\052\100\053\077\001\001\000" +
  784. "\002\001\001\000\062\006\120\010\127\011\117\014\234" +
  785. "\015\063\016\111\017\145\020\113\021\125\022\073\023" +
  786. "\121\024\143\025\123\026\136\027\146\030\134\031\107" +
  787. "\032\072\033\106\034\147\047\150\050\116\052\100\053" +
  788. "\077\001\001\000\002\001\001\000\002\001\001\000\006" +
  789. "\007\053\045\237\001\001\000\002\001\001\000\002\001" +
  790. "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
  791. "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
  792. "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
  793. "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
  794. "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
  795. "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
  796. "\020\040\031\041\267\042\023\043\052\044\010\047\051" +
  797. "\054\021\001\001\000\020\040\031\041\266\042\023\043" +
  798. "\052\044\010\047\051\054\021\001\001\000\002\001\001" +
  799. "\000\002\001\001\000\002\001\001\000\006\007\053\045" +
  800. "\274\001\001\000\006\007\053\045\273\001\001\000\002" +
  801. "\001\001\000\002\001\001\000\020\040\031\041\300\042" +
  802. "\023\043\052\044\010\047\051\054\021\001\001\000\020" +
  803. "\040\031\041\277\042\023\043\052\044\010\047\051\054" +
  804. "\021\001\001\000\002\001\001\000\002\001\001\000\002" +
  805. "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
  806. "\001\000\026\035\016\036\306\037\006\040\031\041\025" +
  807. "\042\023\043\052\044\010\047\051\054\021\001\001\000" +
  808. "\002\001\001\000\002\001\001\000\002\001\001" });
  809. /** Access to <code>reduce_goto</code> table. */
  810. public short[][] reduce_table() {return _reduce_table;}
  811. /** Instance of action encapsulation class. */
  812. protected CUP$XPathParser$actions action_obj;
  813. /** Action encapsulation object initializer. */
  814. protected void init_actions()
  815. {
  816. action_obj = new CUP$XPathParser$actions(this);
  817. }
  818. /** Invoke a user supplied parse action. */
  819. public com.sun.java_cup.internal.runtime.Symbol do_action(
  820. int act_num,
  821. com.sun.java_cup.internal.runtime.lr_parser parser,
  822. java.util.Stack stack,
  823. int top)
  824. throws java.lang.Exception
  825. {
  826. /* call code in generated class */
  827. return action_obj.CUP$XPathParser$do_action(act_num, parser, stack, top);
  828. }
  829. /** Indicates start state. */
  830. public int start_state() {return 0;}
  831. /** Indicates start production. */
  832. public int start_production() {return 0;}
  833. /** <code>EOF</code> Symbol index. */
  834. public int EOF_sym() {return 0;}
  835. /** <code>error</code> Symbol index. */
  836. public int error_sym() {return 1;}
  837. /**
  838. * Used by function calls with no args.
  839. */
  840. static public final Vector EmptyArgs = new Vector(0);
  841. /**
  842. * Reference to non-existing variable.
  843. */
  844. static public final VariableRef DummyVarRef = null;
  845. /**
  846. * Reference to the Parser class.
  847. */
  848. private Parser _parser;
  849. private XSLTC _xsltc;
  850. /**
  851. * String representation of the expression being parsed.
  852. */
  853. private String _expression;
  854. /**
  855. * Line number where this expression/pattern was declared.
  856. */
  857. private int _lineNumber = 0;
  858. /**
  859. * Reference to the symbol table.
  860. */
  861. public SymbolTable _symbolTable;
  862. public XPathParser(Parser parser) {
  863. _parser = parser;
  864. _xsltc = parser.getXSLTC();
  865. _symbolTable = parser.getSymbolTable();
  866. }
  867. public int getLineNumber() {
  868. return _lineNumber;
  869. }
  870. public QName getQNameIgnoreDefaultNs(String name) {
  871. return _parser.getQNameIgnoreDefaultNs(name);
  872. }
  873. public QName getQName(String namespace, String prefix, String localname) {
  874. return _parser.getQName(namespace, prefix, localname);
  875. }
  876. public void setMultiDocument(boolean flag) {
  877. _xsltc.setMultiDocument(flag);
  878. }
  879. public void setCallsNodeset(boolean flag) {
  880. _xsltc.setCallsNodeset(flag);
  881. }
  882. public void setHasIdCall(boolean flag) {
  883. _xsltc.setHasIdCall(flag);
  884. }
  885. /**
  886. * This method is similar to findNodeType(int, Object) except that it
  887. * creates a StepPattern instead of just returning a node type. It also
  888. * differs in the way it handles "{uri}:*" and "{uri}:@*". The last two
  889. * patterns are expanded as "*[namespace-uri() = 'uri']" and
  890. * "@*[namespace-uri() = 'uri']", respectively. This expansion considerably
  891. * simplifies the grouping of patterns in the Mode class. For this
  892. * expansion to be correct, the priority of the pattern/template must be
  893. * set to -0.25 (when no other predicates are present).
  894. */
  895. public StepPattern createStepPattern(int axis, Object test, Vector predicates) {
  896. int nodeType;
  897. if (test == null) { // "*"
  898. nodeType = (axis == Axis.ATTRIBUTE) ? NodeTest.ATTRIBUTE :
  899. (axis == Axis.NAMESPACE) ? -1 : NodeTest.ELEMENT;
  900. return new StepPattern(axis, nodeType, predicates);
  901. }
  902. else if (test instanceof Integer) {
  903. nodeType = ((Integer) test).intValue();
  904. return new StepPattern(axis, nodeType, predicates);
  905. }
  906. else {
  907. QName name = (QName)test;
  908. boolean setPriority = false;
  909. if (axis == Axis.NAMESPACE) {
  910. nodeType = (name.toString().equals("*")) ? -1
  911. : _xsltc.registerNamespacePrefix(name);;
  912. }
  913. else {
  914. final String uri = name.getNamespace();
  915. final String local = name.getLocalPart();
  916. final QName namespace_uri =
  917. _parser.getQNameIgnoreDefaultNs("namespace-uri");
  918. // Expand {uri}:* to *[namespace-uri() = 'uri'] - same for @*
  919. if (uri != null && (local.equals("*") || local.equals("@*"))) {
  920. if (predicates == null) {
  921. predicates = new Vector(2);
  922. }
  923. // Priority is set by hand if no other predicates exist
  924. setPriority = (predicates.size() == 0);
  925. predicates.add(
  926. new Predicate(
  927. new EqualityExpr(Operators.EQ,
  928. new NamespaceUriCall(namespace_uri),
  929. new LiteralExpr(uri))));
  930. }
  931. if (local.equals("*")) {
  932. nodeType = (axis == Axis.ATTRIBUTE) ? NodeTest.ATTRIBUTE
  933. : NodeTest.ELEMENT;
  934. }
  935. else if (local.equals("@*")) {
  936. nodeType = NodeTest.ATTRIBUTE;
  937. }
  938. else {
  939. nodeType = (axis == Axis.ATTRIBUTE) ? _xsltc.registerAttribute(name)
  940. : _xsltc.registerElement(name);
  941. }
  942. }
  943. final StepPattern result = new StepPattern(axis, nodeType, predicates);
  944. // Set priority for case prefix:* and prefix:@* (no predicates)
  945. if (setPriority) {
  946. result.setPriority(-0.25);
  947. }
  948. return result;
  949. }
  950. }
  951. public int findNodeType(int axis, Object test) {
  952. if (test == null) { // *
  953. return (axis == Axis.ATTRIBUTE) ?
  954. NodeTest.ATTRIBUTE :
  955. (axis == Axis.NAMESPACE) ? -1 : NodeTest.ELEMENT;
  956. }
  957. else if (test instanceof Integer) {
  958. return ((Integer)test).intValue();
  959. }
  960. else {
  961. QName name = (QName)test;
  962. if (axis == Axis.NAMESPACE) {
  963. return (name.toString().equals("*")) ? -1
  964. : _xsltc.registerNamespacePrefix(name);
  965. }
  966. if (name.getNamespace() == null) {
  967. final String local = name.getLocalPart();
  968. if (local.equals("*")) {
  969. return (axis == Axis.ATTRIBUTE) ? NodeTest.ATTRIBUTE
  970. : NodeTest.ELEMENT;
  971. }
  972. else if (local.equals("@*")) {
  973. return NodeTest.ATTRIBUTE;
  974. }
  975. }
  976. return (axis == Axis.ATTRIBUTE) ? _xsltc.registerAttribute(name)
  977. : _xsltc.registerElement(name);
  978. }
  979. }
  980. /**
  981. * Parse the expression passed to the current scanner. If this
  982. * expression contains references to local variables and it will be
  983. * compiled in an external module (not in the main class) request
  984. * the current template to create a new variable stack frame.
  985. *
  986. * @param lineNumber Line where the current expression is defined.
  987. * @param external Set to <tt>true</tt> if this expression is
  988. * compiled in a separate module.
  989. *
  990. */
  991. public Symbol parse(String expression, int lineNumber) throws Exception {
  992. try {
  993. _expression = expression;
  994. _lineNumber = lineNumber;
  995. return super.parse();
  996. }
  997. catch (IllegalCharException e) {
  998. ErrorMsg err = new ErrorMsg(ErrorMsg.ILLEGAL_CHAR_ERR,
  999. lineNumber, e.getMessage());
  1000. _parser.reportError(Constants.FATAL, err);
  1001. }
  1002. return null;
  1003. }
  1004. /**
  1005. * Lookup a variable or parameter in the symbol table given its name.
  1006. *
  1007. * @param name Name of the symbol being looked up.
  1008. */
  1009. final SyntaxTreeNode lookupName(QName name) {
  1010. // Is it a local var or param ?
  1011. final SyntaxTreeNode result = _parser.lookupVariable(name);
  1012. if (result != null)
  1013. return(result);
  1014. else
  1015. return(_symbolTable.lookupName(name));
  1016. }
  1017. public final void addError(ErrorMsg error) {
  1018. _parser.reportError(Constants.ERROR, error);
  1019. }
  1020. public void report_error(String message, Object info) {
  1021. final ErrorMsg err = new ErrorMsg(ErrorMsg.SYNTAX_ERR, _lineNumber,
  1022. _expression);
  1023. _parser.reportError(Constants.FATAL, err);
  1024. }
  1025. public void report_fatal_error(String message, Object info) {
  1026. // empty
  1027. }
  1028. public RelativeLocationPath insertStep(Step step, RelativeLocationPath rlp) {
  1029. if (rlp instanceof Step) {
  1030. return new ParentLocationPath(step, (Step) rlp);
  1031. }
  1032. else if (rlp instanceof ParentLocationPath) {
  1033. final ParentLocationPath plp = (ParentLocationPath) rlp;
  1034. final RelativeLocationPath newrlp = insertStep(step, plp.getPath());
  1035. return new ParentLocationPath(newrlp, plp.getStep());
  1036. }
  1037. else {
  1038. addError(new ErrorMsg(ErrorMsg.INTERNAL_ERR, "XPathParser.insertStep"));
  1039. return rlp;
  1040. }
  1041. }
  1042. /**
  1043. * Returns true if the axis applies to elements only. The axes
  1044. * child, attribute, namespace, descendant result in non-empty
  1045. * nodesets only if the context node is of type element.
  1046. */
  1047. public boolean isElementAxis(int axis) {
  1048. return (axis == Axis.CHILD || axis == Axis.ATTRIBUTE ||
  1049. axis == Axis.NAMESPACE || axis == Axis.DESCENDANT);
  1050. }
  1051. }
  1052. /** Cup generated class to encapsulate user supplied action code.*/
  1053. class CUP$XPathParser$actions {
  1054. private final XPathParser parser;
  1055. /** Constructor */
  1056. CUP$XPathParser$actions(XPathParser parser) {
  1057. this.parser = parser;
  1058. }
  1059. /** Method with the actual generated action code. */
  1060. public final com.sun.java_cup.internal.runtime.Symbol CUP$XPathParser$do_action(
  1061. int CUP$XPathParser$act_num,
  1062. com.sun.java_cup.internal.runtime.lr_parser CUP$XPathParser$parser,
  1063. java.util.Stack CUP$XPathParser$stack,
  1064. int CUP$XPathParser$top)
  1065. throws java.lang.Exception
  1066. {
  1067. /* Symbol object for return from actions */
  1068. com.sun.java_cup.internal.runtime.Symbol CUP$XPathParser$result;
  1069. /* select the action based on the action number */
  1070. switch (CUP$XPathParser$act_num)
  1071. {
  1072. /*. . . . . . . . . . . . . . . . . . . .*/
  1073. case 140: // QName ::= ID
  1074. {
  1075. QName RESULT = null;
  1076. RESULT = parser.getQNameIgnoreDefaultNs("id");
  1077. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1078. }
  1079. return CUP$XPathParser$result;
  1080. /*. . . . . . . . . . . . . . . . . . . .*/
  1081. case 139: // QName ::= SELF
  1082. {
  1083. QName RESULT = null;
  1084. RESULT = parser.getQNameIgnoreDefaultNs("self");
  1085. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1086. }
  1087. return CUP$XPathParser$result;
  1088. /*. . . . . . . . . . . . . . . . . . . .*/
  1089. case 138: // QName ::= PRECEDINGSIBLING
  1090. {
  1091. QName RESULT = null;
  1092. RESULT = parser.getQNameIgnoreDefaultNs("preceding-sibling");
  1093. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1094. }
  1095. return CUP$XPathParser$result;
  1096. /*. . . . . . . . . . . . . . . . . . . .*/
  1097. case 137: // QName ::= PRECEDING
  1098. {
  1099. QName RESULT = null;
  1100. RESULT = parser.getQNameIgnoreDefaultNs("preceding");
  1101. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1102. }
  1103. return CUP$XPathParser$result;
  1104. /*. . . . . . . . . . . . . . . . . . . .*/
  1105. case 136: // QName ::= PARENT
  1106. {
  1107. QName RESULT = null;
  1108. RESULT = parser.getQNameIgnoreDefaultNs("parent");
  1109. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1110. }
  1111. return CUP$XPathParser$result;
  1112. /*. . . . . . . . . . . . . . . . . . . .*/
  1113. case 135: // QName ::= NAMESPACE
  1114. {
  1115. QName RESULT = null;
  1116. RESULT = parser.getQNameIgnoreDefaultNs("namespace");
  1117. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1118. }
  1119. return CUP$XPathParser$result;
  1120. /*. . . . . . . . . . . . . . . . . . . .*/
  1121. case 134: // QName ::= FOLLOWINGSIBLING
  1122. {
  1123. QName RESULT = null;
  1124. RESULT = parser.getQNameIgnoreDefaultNs("following-sibling");
  1125. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1126. }
  1127. return CUP$XPathParser$result;
  1128. /*. . . . . . . . . . . . . . . . . . . .*/
  1129. case 133: // QName ::= FOLLOWING
  1130. {
  1131. QName RESULT = null;
  1132. RESULT = parser.getQNameIgnoreDefaultNs("following");
  1133. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1134. }
  1135. return CUP$XPathParser$result;
  1136. /*. . . . . . . . . . . . . . . . . . . .*/
  1137. case 132: // QName ::= DESCENDANTORSELF
  1138. {
  1139. QName RESULT = null;
  1140. RESULT = parser.getQNameIgnoreDefaultNs("decendant-or-self");
  1141. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1142. }
  1143. return CUP$XPathParser$result;
  1144. /*. . . . . . . . . . . . . . . . . . . .*/
  1145. case 131: // QName ::= DESCENDANT
  1146. {
  1147. QName RESULT = null;
  1148. RESULT = parser.getQNameIgnoreDefaultNs("decendant");
  1149. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1150. }
  1151. return CUP$XPathParser$result;
  1152. /*. . . . . . . . . . . . . . . . . . . .*/
  1153. case 130: // QName ::= CHILD
  1154. {
  1155. QName RESULT = null;
  1156. RESULT = parser.getQNameIgnoreDefaultNs("child");
  1157. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1158. }
  1159. return CUP$XPathParser$result;
  1160. /*. . . . . . . . . . . . . . . . . . . .*/
  1161. case 129: // QName ::= ATTRIBUTE
  1162. {
  1163. QName RESULT = null;
  1164. RESULT = parser.getQNameIgnoreDefaultNs("attribute");
  1165. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1166. }
  1167. return CUP$XPathParser$result;
  1168. /*. . . . . . . . . . . . . . . . . . . .*/
  1169. case 128: // QName ::= ANCESTORORSELF
  1170. {
  1171. QName RESULT = null;
  1172. RESULT = parser.getQNameIgnoreDefaultNs("ancestor-or-self");
  1173. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1174. }
  1175. return CUP$XPathParser$result;
  1176. /*. . . . . . . . . . . . . . . . . . . .*/
  1177. case 127: // QName ::= ANCESTOR
  1178. {
  1179. QName RESULT = null;
  1180. RESULT = parser.getQNameIgnoreDefaultNs("child");
  1181. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1182. }
  1183. return CUP$XPathParser$result;
  1184. /*. . . . . . . . . . . . . . . . . . . .*/
  1185. case 126: // QName ::= KEY
  1186. {
  1187. QName RESULT = null;
  1188. RESULT = parser.getQNameIgnoreDefaultNs("key");
  1189. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1190. }
  1191. return CUP$XPathParser$result;
  1192. /*. . . . . . . . . . . . . . . . . . . .*/
  1193. case 125: // QName ::= MOD
  1194. {
  1195. QName RESULT = null;
  1196. RESULT = parser.getQNameIgnoreDefaultNs("mod");
  1197. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1198. }
  1199. return CUP$XPathParser$result;
  1200. /*. . . . . . . . . . . . . . . . . . . .*/
  1201. case 124: // QName ::= DIV
  1202. {
  1203. QName RESULT = null;
  1204. RESULT = parser.getQNameIgnoreDefaultNs("div");
  1205. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1206. }
  1207. return CUP$XPathParser$result;
  1208. /*. . . . . . . . . . . . . . . . . . . .*/
  1209. case 123: // QName ::= QNAME
  1210. {
  1211. QName RESULT = null;
  1212. int qnameleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1213. int qnameright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1214. String qname = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1215. RESULT = parser.getQNameIgnoreDefaultNs(qname);
  1216. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1217. }
  1218. return CUP$XPathParser$result;
  1219. /*. . . . . . . . . . . . . . . . . . . .*/
  1220. case 122: // NameTest ::= QName
  1221. {
  1222. Object RESULT = null;
  1223. int qnleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1224. int qnright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1225. QName qn = (QName)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1226. RESULT = qn;
  1227. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(26/*NameTest*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1228. }
  1229. return CUP$XPathParser$result;
  1230. /*. . . . . . . . . . . . . . . . . . . .*/
  1231. case 121: // NameTest ::= STAR
  1232. {
  1233. Object RESULT = null;
  1234. RESULT = null;
  1235. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(26/*NameTest*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1236. }
  1237. return CUP$XPathParser$result;
  1238. /*. . . . . . . . . . . . . . . . . . . .*/
  1239. case 120: // NodeTest ::= PI
  1240. {
  1241. Object RESULT = null;
  1242. RESULT = new Integer(NodeTest.PI);
  1243. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(25/*NodeTest*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1244. }
  1245. return CUP$XPathParser$result;
  1246. /*. . . . . . . . . . . . . . . . . . . .*/
  1247. case 119: // NodeTest ::= PIPARAM LPAREN Literal RPAREN
  1248. {
  1249. Object RESULT = null;
  1250. int lleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  1251. int lright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  1252. String l = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  1253. QName name = parser.getQNameIgnoreDefaultNs("name");
  1254. Expression exp = new EqualityExpr(Operators.EQ,
  1255. new NameCall(name),
  1256. new LiteralExpr(l));
  1257. Vector predicates = new Vector();
  1258. predicates.addElement(new Predicate(exp));
  1259. RESULT = new Step(Axis.CHILD, NodeTest.PI, predicates);
  1260. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(25/*NodeTest*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1261. }
  1262. return CUP$XPathParser$result;
  1263. /*. . . . . . . . . . . . . . . . . . . .*/
  1264. case 118: // NodeTest ::= COMMENT
  1265. {
  1266. Object RESULT = null;
  1267. RESULT = new Integer(NodeTest.COMMENT);
  1268. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(25/*NodeTest*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1269. }
  1270. return CUP$XPathParser$result;
  1271. /*. . . . . . . . . . . . . . . . . . . .*/
  1272. case 117: // NodeTest ::= TEXT
  1273. {
  1274. Object RESULT = null;
  1275. RESULT = new Integer(NodeTest.TEXT);
  1276. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(25/*NodeTest*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1277. }
  1278. return CUP$XPathParser$result;
  1279. /*. . . . . . . . . . . . . . . . . . . .*/
  1280. case 116: // NodeTest ::= NODE
  1281. {
  1282. Object RESULT = null;
  1283. RESULT = new Integer(NodeTest.ANODE);
  1284. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(25/*NodeTest*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1285. }
  1286. return CUP$XPathParser$result;
  1287. /*. . . . . . . . . . . . . . . . . . . .*/
  1288. case 115: // NodeTest ::= NameTest
  1289. {
  1290. Object RESULT = null;
  1291. int ntleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1292. int ntright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1293. Object nt = (Object)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1294. RESULT = nt;
  1295. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(25/*NodeTest*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1296. }
  1297. return CUP$XPathParser$result;
  1298. /*. . . . . . . . . . . . . . . . . . . .*/
  1299. case 114: // Argument ::= Expr
  1300. {
  1301. Expression RESULT = null;
  1302. int exleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1303. int exright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1304. Expression ex = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1305. RESULT = ex;
  1306. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(3/*Argument*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1307. }
  1308. return CUP$XPathParser$result;
  1309. /*. . . . . . . . . . . . . . . . . . . .*/
  1310. case 113: // VariableName ::= QName
  1311. {
  1312. QName RESULT = null;
  1313. int vnameleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1314. int vnameright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1315. QName vname = (QName)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1316. RESULT = vname;
  1317. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(39/*VariableName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1318. }
  1319. return CUP$XPathParser$result;
  1320. /*. . . . . . . . . . . . . . . . . . . .*/
  1321. case 112: // FunctionName ::= QName
  1322. {
  1323. QName RESULT = null;
  1324. int fnameleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1325. int fnameright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1326. QName fname = (QName)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1327. RESULT = fname;
  1328. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(38/*FunctionName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1329. }
  1330. return CUP$XPathParser$result;
  1331. /*. . . . . . . . . . . . . . . . . . . .*/
  1332. case 111: // NonemptyArgumentList ::= Argument COMMA NonemptyArgumentList
  1333. {
  1334. Vector RESULT = null;
  1335. int argleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  1336. int argright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  1337. Expression arg = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  1338. int arglleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1339. int arglright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1340. Vector argl = (Vector)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1341. argl.insertElementAt(arg, 0); RESULT = argl;
  1342. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(36/*NonemptyArgumentList*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1343. }
  1344. return CUP$XPathParser$result;
  1345. /*. . . . . . . . . . . . . . . . . . . .*/
  1346. case 110: // NonemptyArgumentList ::= Argument
  1347. {
  1348. Vector RESULT = null;
  1349. int argleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1350. int argright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1351. Expression arg = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1352. Vector temp = new Vector();
  1353. temp.addElement(arg);
  1354. RESULT = temp;
  1355. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(36/*NonemptyArgumentList*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1356. }
  1357. return CUP$XPathParser$result;
  1358. /*. . . . . . . . . . . . . . . . . . . .*/
  1359. case 109: // FunctionCall ::= FunctionName LPAREN NonemptyArgumentList RPAREN
  1360. {
  1361. Expression RESULT = null;
  1362. int fnameleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).left;
  1363. int fnameright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).right;
  1364. QName fname = (QName)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).value;
  1365. int arglleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  1366. int arglright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  1367. Vector argl = (Vector)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  1368. if (fname == parser.getQNameIgnoreDefaultNs("concat")) {
  1369. RESULT = new ConcatCall(fname, argl);
  1370. }
  1371. else if (fname == parser.getQNameIgnoreDefaultNs("number")) {
  1372. RESULT = new NumberCall(fname, argl);
  1373. }
  1374. else if (fname == parser.getQNameIgnoreDefaultNs("document")) {
  1375. parser.setMultiDocument(true);
  1376. RESULT = new DocumentCall(fname, argl);
  1377. }
  1378. else if (fname == parser.getQNameIgnoreDefaultNs("string")) {
  1379. RESULT = new StringCall(fname, argl);
  1380. }
  1381. else if (fname == parser.getQNameIgnoreDefaultNs("boolean")) {
  1382. RESULT = new BooleanCall(fname, argl);
  1383. }
  1384. else if (fname == parser.getQNameIgnoreDefaultNs("name")) {
  1385. RESULT = new NameCall(fname, argl);
  1386. }
  1387. else if (fname == parser.getQNameIgnoreDefaultNs("generate-id")) {
  1388. RESULT = new GenerateIdCall(fname, argl);
  1389. }
  1390. else if (fname == parser.getQNameIgnoreDefaultNs("not")) {
  1391. RESULT = new NotCall(fname, argl);
  1392. }
  1393. else if (fname == parser.getQNameIgnoreDefaultNs("format-number")) {
  1394. RESULT = new FormatNumberCall(fname, argl);
  1395. }
  1396. else if (fname == parser.getQNameIgnoreDefaultNs("unparsed-entity-uri")) {
  1397. RESULT = new UnparsedEntityUriCall(fname, argl);
  1398. }
  1399. else if (fname == parser.getQNameIgnoreDefaultNs("key")) {
  1400. RESULT = new KeyCall(fname, argl);
  1401. }
  1402. else if (fname == parser.getQNameIgnoreDefaultNs("id")) {
  1403. RESULT = new KeyCall(fname, argl);
  1404. parser.setHasIdCall(true);
  1405. }
  1406. else if (fname == parser.getQNameIgnoreDefaultNs("ceiling")) {
  1407. RESULT = new CeilingCall(fname, argl);
  1408. }
  1409. else if (fname == parser.getQNameIgnoreDefaultNs("round")) {
  1410. RESULT = new RoundCall(fname, argl);
  1411. }
  1412. else if (fname == parser.getQNameIgnoreDefaultNs("floor")) {
  1413. RESULT = new FloorCall(fname, argl);
  1414. }
  1415. else if (fname == parser.getQNameIgnoreDefaultNs("contains")) {
  1416. RESULT = new ContainsCall(fname, argl);
  1417. }
  1418. else if (fname == parser.getQNameIgnoreDefaultNs("string-length")) {
  1419. RESULT = new StringLengthCall(fname, argl);
  1420. }
  1421. else if (fname == parser.getQNameIgnoreDefaultNs("starts-with")) {
  1422. RESULT = new StartsWithCall(fname, argl);
  1423. }
  1424. else if (fname == parser.getQNameIgnoreDefaultNs("function-available")) {
  1425. RESULT = new FunctionAvailableCall(fname, argl);
  1426. }
  1427. else if (fname == parser.getQNameIgnoreDefaultNs("element-available")) {
  1428. RESULT = new ElementAvailableCall(fname, argl);
  1429. }
  1430. else if (fname == parser.getQNameIgnoreDefaultNs("local-name")) {
  1431. RESULT = new LocalNameCall(fname, argl);
  1432. }
  1433. else if (fname == parser.getQNameIgnoreDefaultNs("lang")) {
  1434. RESULT = new LangCall(fname, argl);
  1435. }
  1436. else if (fname == parser.getQNameIgnoreDefaultNs("namespace-uri")) {
  1437. RESULT = new NamespaceUriCall(fname, argl);
  1438. }
  1439. else if (fname == parser.getQName(Constants.TRANSLET_URI, "xsltc", "cast")) {
  1440. RESULT = new CastCall(fname, argl);
  1441. }
  1442. // Special case for extension function nodeset()
  1443. else if (fname.getLocalPart().equals("nodeset") || fname.getLocalPart().equals("node-set")) {
  1444. parser.setCallsNodeset(true); // implies MultiDOM
  1445. RESULT = new FunctionCall(fname, argl);
  1446. }
  1447. else {
  1448. RESULT = new FunctionCall(fname, argl);
  1449. }
  1450. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(16/*FunctionCall*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1451. }
  1452. return CUP$XPathParser$result;
  1453. /*. . . . . . . . . . . . . . . . . . . .*/
  1454. case 108: // FunctionCall ::= FunctionName LPAREN RPAREN
  1455. {
  1456. Expression RESULT = null;
  1457. int fnameleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  1458. int fnameright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  1459. QName fname = (QName)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  1460. if (fname == parser.getQNameIgnoreDefaultNs("current")) {
  1461. RESULT = new CurrentCall(fname);
  1462. }
  1463. else if (fname == parser.getQNameIgnoreDefaultNs("number")) {
  1464. RESULT = new NumberCall(fname, parser.EmptyArgs);
  1465. }
  1466. else if (fname == parser.getQNameIgnoreDefaultNs("string")) {
  1467. RESULT = new StringCall(fname, parser.EmptyArgs);
  1468. }
  1469. else if (fname == parser.getQNameIgnoreDefaultNs("concat")) {
  1470. RESULT = new ConcatCall(fname, parser.EmptyArgs);
  1471. }
  1472. else if (fname == parser.getQNameIgnoreDefaultNs("true")) {
  1473. RESULT = new BooleanExpr(true);
  1474. }
  1475. else if (fname == parser.getQNameIgnoreDefaultNs("false")) {
  1476. RESULT = new BooleanExpr(false);
  1477. }
  1478. else if (fname == parser.getQNameIgnoreDefaultNs("name")) {
  1479. RESULT = new NameCall(fname);
  1480. }
  1481. else if (fname == parser.getQNameIgnoreDefaultNs("generate-id")) {
  1482. RESULT = new GenerateIdCall(fname, parser.EmptyArgs);
  1483. }
  1484. else if (fname == parser.getQNameIgnoreDefaultNs("string-length")) {
  1485. RESULT = new StringLengthCall(fname, parser.EmptyArgs);
  1486. }
  1487. else if (fname == parser.getQNameIgnoreDefaultNs("position")) {
  1488. RESULT = new PositionCall(fname);
  1489. }
  1490. else if (fname == parser.getQNameIgnoreDefaultNs("last")) {
  1491. RESULT = new LastCall(fname);
  1492. }
  1493. else if (fname == parser.getQNameIgnoreDefaultNs("local-name")) {
  1494. RESULT = new LocalNameCall(fname);
  1495. }
  1496. else if (fname == parser.getQNameIgnoreDefaultNs("namespace-uri")) {
  1497. RESULT = new NamespaceUriCall(fname);
  1498. }
  1499. else {
  1500. RESULT = new FunctionCall(fname, parser.EmptyArgs);
  1501. }
  1502. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(16/*FunctionCall*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1503. }
  1504. return CUP$XPathParser$result;
  1505. /*. . . . . . . . . . . . . . . . . . . .*/
  1506. case 107: // VariableReference ::= DOLLAR VariableName
  1507. {
  1508. Expression RESULT = null;
  1509. int varNameleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1510. int varNameright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1511. QName varName = (QName)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1512. // An empty qname prefix for a variable or parameter reference
  1513. // should map to the null namespace and not the default URI.
  1514. SyntaxTreeNode node = parser.lookupName(varName);
  1515. if (node != null) {
  1516. if (node instanceof Variable) {
  1517. RESULT = new VariableRef((Variable)node);
  1518. }
  1519. else if (node instanceof Param) {
  1520. RESULT = new ParameterRef((Param)node);
  1521. }
  1522. else {
  1523. RESULT = new UnresolvedRef(varName);
  1524. }
  1525. }
  1526. if (node == null) {
  1527. RESULT = new UnresolvedRef(varName);
  1528. }
  1529. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(15/*VariableReference*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1530. }
  1531. return CUP$XPathParser$result;
  1532. /*. . . . . . . . . . . . . . . . . . . .*/
  1533. case 106: // PrimaryExpr ::= FunctionCall
  1534. {
  1535. Expression RESULT = null;
  1536. int fcleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1537. int fcright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1538. Expression fc = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1539. RESULT = fc;
  1540. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(17/*PrimaryExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1541. }
  1542. return CUP$XPathParser$result;
  1543. /*. . . . . . . . . . . . . . . . . . . .*/
  1544. case 105: // PrimaryExpr ::= REAL
  1545. {
  1546. Expression RESULT = null;
  1547. int numleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1548. int numright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1549. Double num = (Double)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1550. RESULT = new RealExpr(num.doubleValue());
  1551. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(17/*PrimaryExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1552. }
  1553. return CUP$XPathParser$result;
  1554. /*. . . . . . . . . . . . . . . . . . . .*/
  1555. case 104: // PrimaryExpr ::= INT
  1556. {
  1557. Expression RESULT = null;
  1558. int numleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1559. int numright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1560. Long num = (Long)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1561. long value = num.longValue();
  1562. if (value < Integer.MIN_VALUE || value > Integer.MAX_VALUE) {
  1563. RESULT = new RealExpr(value);
  1564. }
  1565. else {
  1566. if (num.doubleValue() == -0)
  1567. RESULT = new RealExpr(num.doubleValue());
  1568. else if (num.intValue() == 0)
  1569. RESULT = new IntExpr(num.intValue());
  1570. else if (num.doubleValue() == 0.0)
  1571. RESULT = new RealExpr(num.doubleValue());
  1572. else
  1573. RESULT = new IntExpr(num.intValue());
  1574. }
  1575. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(17/*PrimaryExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1576. }
  1577. return CUP$XPathParser$result;
  1578. /*. . . . . . . . . . . . . . . . . . . .*/
  1579. case 103: // PrimaryExpr ::= Literal
  1580. {
  1581. Expression RESULT = null;
  1582. int stringleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1583. int stringright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1584. String string = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1585. /*
  1586. * If the string appears to have the syntax of a QName, store
  1587. * namespace info in the literal expression. This is used for
  1588. * element-available and function-available functions, among
  1589. * others. Also, the default namespace must be ignored.
  1590. */
  1591. String namespace = null;
  1592. final int index = string.lastIndexOf(':');
  1593. if (index > 0) {
  1594. final String prefix = string.substring(0, index);
  1595. namespace = parser._symbolTable.lookupNamespace(prefix);
  1596. }
  1597. RESULT = (namespace == null) ? new LiteralExpr(string)
  1598. : new LiteralExpr(string, namespace);
  1599. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(17/*PrimaryExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1600. }
  1601. return CUP$XPathParser$result;
  1602. /*. . . . . . . . . . . . . . . . . . . .*/
  1603. case 102: // PrimaryExpr ::= LPAREN Expr RPAREN
  1604. {
  1605. Expression RESULT = null;
  1606. int exleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  1607. int exright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  1608. Expression ex = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  1609. RESULT = ex;
  1610. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(17/*PrimaryExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1611. }
  1612. return CUP$XPathParser$result;
  1613. /*. . . . . . . . . . . . . . . . . . . .*/
  1614. case 101: // PrimaryExpr ::= VariableReference
  1615. {
  1616. Expression RESULT = null;
  1617. int vrleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1618. int vrright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1619. Expression vr = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1620. RESULT = vr;
  1621. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(17/*PrimaryExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1622. }
  1623. return CUP$XPathParser$result;
  1624. /*. . . . . . . . . . . . . . . . . . . .*/
  1625. case 100: // FilterExpr ::= PrimaryExpr Predicates
  1626. {
  1627. Expression RESULT = null;
  1628. int primaryleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  1629. int primaryright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  1630. Expression primary = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  1631. int ppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1632. int ppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1633. Vector pp = (Vector)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1634. RESULT = new FilterExpr(primary, pp);
  1635. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(6/*FilterExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1636. }
  1637. return CUP$XPathParser$result;
  1638. /*. . . . . . . . . . . . . . . . . . . .*/
  1639. case 99: // FilterExpr ::= PrimaryExpr
  1640. {
  1641. Expression RESULT = null;
  1642. int primaryleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1643. int primaryright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1644. Expression primary = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1645. RESULT = primary;
  1646. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(6/*FilterExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1647. }
  1648. return CUP$XPathParser$result;
  1649. /*. . . . . . . . . . . . . . . . . . . .*/
  1650. case 98: // AbbreviatedStep ::= DDOT
  1651. {
  1652. Expression RESULT = null;
  1653. RESULT = new Step(Axis.PARENT, NodeTest.ANODE, null);
  1654. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(20/*AbbreviatedStep*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1655. }
  1656. return CUP$XPathParser$result;
  1657. /*. . . . . . . . . . . . . . . . . . . .*/
  1658. case 97: // AbbreviatedStep ::= DOT
  1659. {
  1660. Expression RESULT = null;
  1661. RESULT = new Step(Axis.SELF, NodeTest.ANODE, null);
  1662. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(20/*AbbreviatedStep*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1663. }
  1664. return CUP$XPathParser$result;
  1665. /*. . . . . . . . . . . . . . . . . . . .*/
  1666. case 96: // AxisName ::= SELF
  1667. {
  1668. Integer RESULT = null;
  1669. RESULT = new Integer(Axis.SELF);
  1670. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(40/*AxisName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1671. }
  1672. return CUP$XPathParser$result;
  1673. /*. . . . . . . . . . . . . . . . . . . .*/
  1674. case 95: // AxisName ::= PRECEDINGSIBLING
  1675. {
  1676. Integer RESULT = null;
  1677. RESULT = new Integer(Axis.PRECEDINGSIBLING);
  1678. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(40/*AxisName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1679. }
  1680. return CUP$XPathParser$result;
  1681. /*. . . . . . . . . . . . . . . . . . . .*/
  1682. case 94: // AxisName ::= PRECEDING
  1683. {
  1684. Integer RESULT = null;
  1685. RESULT = new Integer(Axis.PRECEDING);
  1686. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(40/*AxisName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1687. }
  1688. return CUP$XPathParser$result;
  1689. /*. . . . . . . . . . . . . . . . . . . .*/
  1690. case 93: // AxisName ::= PARENT
  1691. {
  1692. Integer RESULT = null;
  1693. RESULT = new Integer(Axis.PARENT);
  1694. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(40/*AxisName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1695. }
  1696. return CUP$XPathParser$result;
  1697. /*. . . . . . . . . . . . . . . . . . . .*/
  1698. case 92: // AxisName ::= NAMESPACE
  1699. {
  1700. Integer RESULT = null;
  1701. RESULT = new Integer(Axis.NAMESPACE);
  1702. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(40/*AxisName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1703. }
  1704. return CUP$XPathParser$result;
  1705. /*. . . . . . . . . . . . . . . . . . . .*/
  1706. case 91: // AxisName ::= FOLLOWINGSIBLING
  1707. {
  1708. Integer RESULT = null;
  1709. RESULT = new Integer(Axis.FOLLOWINGSIBLING);
  1710. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(40/*AxisName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1711. }
  1712. return CUP$XPathParser$result;
  1713. /*. . . . . . . . . . . . . . . . . . . .*/
  1714. case 90: // AxisName ::= FOLLOWING
  1715. {
  1716. Integer RESULT = null;
  1717. RESULT = new Integer(Axis.FOLLOWING);
  1718. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(40/*AxisName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1719. }
  1720. return CUP$XPathParser$result;
  1721. /*. . . . . . . . . . . . . . . . . . . .*/
  1722. case 89: // AxisName ::= DESCENDANTORSELF
  1723. {
  1724. Integer RESULT = null;
  1725. RESULT = new Integer(Axis.DESCENDANTORSELF);
  1726. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(40/*AxisName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1727. }
  1728. return CUP$XPathParser$result;
  1729. /*. . . . . . . . . . . . . . . . . . . .*/
  1730. case 88: // AxisName ::= DESCENDANT
  1731. {
  1732. Integer RESULT = null;
  1733. RESULT = new Integer(Axis.DESCENDANT);
  1734. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(40/*AxisName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1735. }
  1736. return CUP$XPathParser$result;
  1737. /*. . . . . . . . . . . . . . . . . . . .*/
  1738. case 87: // AxisName ::= CHILD
  1739. {
  1740. Integer RESULT = null;
  1741. RESULT = new Integer(Axis.CHILD);
  1742. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(40/*AxisName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1743. }
  1744. return CUP$XPathParser$result;
  1745. /*. . . . . . . . . . . . . . . . . . . .*/
  1746. case 86: // AxisName ::= ATTRIBUTE
  1747. {
  1748. Integer RESULT = null;
  1749. RESULT = new Integer(Axis.ATTRIBUTE);
  1750. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(40/*AxisName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1751. }
  1752. return CUP$XPathParser$result;
  1753. /*. . . . . . . . . . . . . . . . . . . .*/
  1754. case 85: // AxisName ::= ANCESTORORSELF
  1755. {
  1756. Integer RESULT = null;
  1757. RESULT = new Integer(Axis.ANCESTORORSELF);
  1758. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(40/*AxisName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1759. }
  1760. return CUP$XPathParser$result;
  1761. /*. . . . . . . . . . . . . . . . . . . .*/
  1762. case 84: // AxisName ::= ANCESTOR
  1763. {
  1764. Integer RESULT = null;
  1765. RESULT = new Integer(Axis.ANCESTOR);
  1766. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(40/*AxisName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1767. }
  1768. return CUP$XPathParser$result;
  1769. /*. . . . . . . . . . . . . . . . . . . .*/
  1770. case 83: // AxisSpecifier ::= ATSIGN
  1771. {
  1772. Integer RESULT = null;
  1773. RESULT = new Integer(Axis.ATTRIBUTE);
  1774. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(41/*AxisSpecifier*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1775. }
  1776. return CUP$XPathParser$result;
  1777. /*. . . . . . . . . . . . . . . . . . . .*/
  1778. case 82: // AxisSpecifier ::= AxisName DCOLON
  1779. {
  1780. Integer RESULT = null;
  1781. int anleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  1782. int anright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  1783. Integer an = (Integer)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  1784. RESULT = an;
  1785. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(41/*AxisSpecifier*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1786. }
  1787. return CUP$XPathParser$result;
  1788. /*. . . . . . . . . . . . . . . . . . . .*/
  1789. case 81: // Step ::= AbbreviatedStep
  1790. {
  1791. Expression RESULT = null;
  1792. int abbrevleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1793. int abbrevright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1794. Expression abbrev = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1795. RESULT = abbrev;
  1796. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(7/*Step*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1797. }
  1798. return CUP$XPathParser$result;
  1799. /*. . . . . . . . . . . . . . . . . . . .*/
  1800. case 80: // Step ::= AxisSpecifier NodeTest
  1801. {
  1802. Expression RESULT = null;
  1803. int axisleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  1804. int axisright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  1805. Integer axis = (Integer)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  1806. int ntestleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1807. int ntestright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1808. Object ntest = (Object)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1809. RESULT = new Step(axis.intValue(),
  1810. parser.findNodeType(axis.intValue(), ntest),
  1811. null);
  1812. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(7/*Step*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1813. }
  1814. return CUP$XPathParser$result;
  1815. /*. . . . . . . . . . . . . . . . . . . .*/
  1816. case 79: // Step ::= AxisSpecifier NodeTest Predicates
  1817. {
  1818. Expression RESULT = null;
  1819. int axisleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  1820. int axisright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  1821. Integer axis = (Integer)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  1822. int ntestleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  1823. int ntestright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  1824. Object ntest = (Object)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  1825. int ppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1826. int ppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1827. Vector pp = (Vector)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1828. RESULT = new Step(axis.intValue(),
  1829. parser.findNodeType(axis.intValue(), ntest),
  1830. pp);
  1831. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(7/*Step*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1832. }
  1833. return CUP$XPathParser$result;
  1834. /*. . . . . . . . . . . . . . . . . . . .*/
  1835. case 78: // Step ::= NodeTest Predicates
  1836. {
  1837. Expression RESULT = null;
  1838. int ntestleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  1839. int ntestright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  1840. Object ntest = (Object)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  1841. int ppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1842. int ppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1843. Vector pp = (Vector)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1844. if (ntest instanceof Step) {
  1845. Step step = (Step)ntest;
  1846. step.addPredicates(pp);
  1847. RESULT = (Step)ntest;
  1848. }
  1849. else {
  1850. RESULT = new Step(Axis.CHILD,
  1851. parser.findNodeType(Axis.CHILD, ntest), pp);
  1852. }
  1853. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(7/*Step*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1854. }
  1855. return CUP$XPathParser$result;
  1856. /*. . . . . . . . . . . . . . . . . . . .*/
  1857. case 77: // Step ::= NodeTest
  1858. {
  1859. Expression RESULT = null;
  1860. int ntestleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1861. int ntestright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1862. Object ntest = (Object)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1863. if (ntest instanceof Step) {
  1864. RESULT = (Step)ntest;
  1865. }
  1866. else {
  1867. RESULT = new Step(Axis.CHILD,
  1868. parser.findNodeType(Axis.CHILD, ntest),
  1869. null);
  1870. }
  1871. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(7/*Step*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1872. }
  1873. return CUP$XPathParser$result;
  1874. /*. . . . . . . . . . . . . . . . . . . .*/
  1875. case 76: // AbbreviatedAbsoluteLocationPath ::= DSLASH RelativeLocationPath
  1876. {
  1877. Expression RESULT = null;
  1878. int rlpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1879. int rlpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1880. Expression rlp = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1881. //
  1882. // Expand '//' into '/descendant-or-self::node()/' or
  1883. // into /descendant-or-self::*/
  1884. //
  1885. int nodeType = DOM.NO_TYPE;
  1886. if (rlp instanceof Step &&
  1887. parser.isElementAxis(((Step) rlp).getAxis()))
  1888. {
  1889. nodeType = DTM.ELEMENT_NODE;
  1890. }
  1891. final Step step = new Step(Axis.DESCENDANTORSELF, nodeType, null);
  1892. RESULT = new AbsoluteLocationPath(parser.insertStep(step,
  1893. (RelativeLocationPath) rlp));
  1894. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(24/*AbbreviatedAbsoluteLocationPath*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1895. }
  1896. return CUP$XPathParser$result;
  1897. /*. . . . . . . . . . . . . . . . . . . .*/
  1898. case 75: // AbbreviatedRelativeLocationPath ::= RelativeLocationPath DSLASH Step
  1899. {
  1900. Expression RESULT = null;
  1901. int rlpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  1902. int rlpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  1903. Expression rlp = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  1904. int stepleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1905. int stepright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1906. Expression step = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1907. final Step right = (Step)step;
  1908. final int axis = right.getAxis();
  1909. final int type = right.getNodeType();
  1910. final Vector predicates = right.getPredicates();
  1911. if ((axis == Axis.CHILD) && (type != NodeTest.ATTRIBUTE)) {
  1912. // Compress './/child:E' into 'descendant::E' - if possible
  1913. if (predicates == null) {
  1914. right.setAxis(Axis.DESCENDANT);
  1915. if (rlp instanceof Step && ((Step)rlp).isAbbreviatedDot()) {
  1916. RESULT = right;
  1917. }
  1918. else {
  1919. // Expand 'rlp//child::E' into 'rlp/descendant::E'
  1920. RelativeLocationPath left = (RelativeLocationPath)rlp;
  1921. RESULT = new ParentLocationPath(left, right);
  1922. }
  1923. }
  1924. else {
  1925. // Expand './/step' -> 'descendant-or-self::*/step'
  1926. if (rlp instanceof Step && ((Step)rlp).isAbbreviatedDot()) {
  1927. Step left = new Step(Axis.DESCENDANTORSELF,
  1928. DTM.ELEMENT_NODE, null);
  1929. RESULT = new ParentLocationPath(left, right);
  1930. }
  1931. else {
  1932. // Expand 'rlp//step' -> 'rlp/descendant-or-self::*/step'
  1933. RelativeLocationPath left = (RelativeLocationPath)rlp;
  1934. Step mid = new Step(Axis.DESCENDANTORSELF,
  1935. DTM.ELEMENT_NODE, null);
  1936. ParentLocationPath ppl = new ParentLocationPath(mid, right);
  1937. RESULT = new ParentLocationPath(left, ppl);
  1938. }
  1939. }
  1940. }
  1941. else if ((axis == Axis.ATTRIBUTE) || (type == NodeTest.ATTRIBUTE)) {
  1942. // Expand 'rlp//step' -> 'rlp/descendant-or-self::*/step'
  1943. RelativeLocationPath left = (RelativeLocationPath)rlp;
  1944. Step middle = new Step(Axis.DESCENDANTORSELF,
  1945. DTM.ELEMENT_NODE, null);
  1946. ParentLocationPath ppl = new ParentLocationPath(middle, right);
  1947. RESULT = new ParentLocationPath(left, ppl);
  1948. }
  1949. else {
  1950. // Expand 'rlp//step' -> 'rlp/descendant-or-self::node()/step'
  1951. RelativeLocationPath left = (RelativeLocationPath)rlp;
  1952. Step middle = new Step(Axis.DESCENDANTORSELF,
  1953. DOM.NO_TYPE, null);
  1954. ParentLocationPath ppl = new ParentLocationPath(middle, right);
  1955. RESULT = new ParentLocationPath(left, ppl);
  1956. }
  1957. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(22/*AbbreviatedRelativeLocationPath*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1958. }
  1959. return CUP$XPathParser$result;
  1960. /*. . . . . . . . . . . . . . . . . . . .*/
  1961. case 74: // AbsoluteLocationPath ::= AbbreviatedAbsoluteLocationPath
  1962. {
  1963. Expression RESULT = null;
  1964. int aalpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1965. int aalpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1966. Expression aalp = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1967. RESULT = aalp;
  1968. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(23/*AbsoluteLocationPath*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1969. }
  1970. return CUP$XPathParser$result;
  1971. /*. . . . . . . . . . . . . . . . . . . .*/
  1972. case 73: // AbsoluteLocationPath ::= SLASH RelativeLocationPath
  1973. {
  1974. Expression RESULT = null;
  1975. int rlpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1976. int rlpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1977. Expression rlp = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1978. RESULT = new AbsoluteLocationPath(rlp);
  1979. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(23/*AbsoluteLocationPath*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1980. }
  1981. return CUP$XPathParser$result;
  1982. /*. . . . . . . . . . . . . . . . . . . .*/
  1983. case 72: // AbsoluteLocationPath ::= SLASH
  1984. {
  1985. Expression RESULT = null;
  1986. RESULT = new AbsoluteLocationPath();
  1987. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(23/*AbsoluteLocationPath*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1988. }
  1989. return CUP$XPathParser$result;
  1990. /*. . . . . . . . . . . . . . . . . . . .*/
  1991. case 71: // RelativeLocationPath ::= AbbreviatedRelativeLocationPath
  1992. {
  1993. Expression RESULT = null;
  1994. int arlpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1995. int arlpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1996. Expression arlp = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1997. RESULT = arlp;
  1998. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(21/*RelativeLocationPath*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1999. }
  2000. return CUP$XPathParser$result;
  2001. /*. . . . . . . . . . . . . . . . . . . .*/
  2002. case 70: // RelativeLocationPath ::= RelativeLocationPath SLASH Step
  2003. {
  2004. Expression RESULT = null;
  2005. int rlpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2006. int rlpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2007. Expression rlp = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2008. int stepleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2009. int stepright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2010. Expression step = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2011. if (rlp instanceof Step && ((Step) rlp).isAbbreviatedDot()) {
  2012. RESULT = step; // Remove './' from the middle
  2013. }
  2014. else if (((Step) step).isAbbreviatedDot()) {
  2015. RESULT = rlp; // Remove '/.' from the end
  2016. }
  2017. else {
  2018. RESULT =
  2019. new ParentLocationPath((RelativeLocationPath) rlp, step);
  2020. }
  2021. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(21/*RelativeLocationPath*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2022. }
  2023. return CUP$XPathParser$result;
  2024. /*. . . . . . . . . . . . . . . . . . . .*/
  2025. case 69: // RelativeLocationPath ::= Step
  2026. {
  2027. Expression RESULT = null;
  2028. int stepleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2029. int stepright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2030. Expression step = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2031. RESULT = step;
  2032. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(21/*RelativeLocationPath*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2033. }
  2034. return CUP$XPathParser$result;
  2035. /*. . . . . . . . . . . . . . . . . . . .*/
  2036. case 68: // LocationPath ::= AbsoluteLocationPath
  2037. {
  2038. Expression RESULT = null;
  2039. int alpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2040. int alpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2041. Expression alp = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2042. RESULT = alp;
  2043. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(4/*LocationPath*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2044. }
  2045. return CUP$XPathParser$result;
  2046. /*. . . . . . . . . . . . . . . . . . . .*/
  2047. case 67: // LocationPath ::= RelativeLocationPath
  2048. {
  2049. Expression RESULT = null;
  2050. int rlpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2051. int rlpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2052. Expression rlp = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2053. RESULT = rlp;
  2054. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(4/*LocationPath*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2055. }
  2056. return CUP$XPathParser$result;
  2057. /*. . . . . . . . . . . . . . . . . . . .*/
  2058. case 66: // PathExpr ::= FilterExpr DSLASH RelativeLocationPath
  2059. {
  2060. Expression RESULT = null;
  2061. int fexpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2062. int fexpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2063. Expression fexp = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2064. int rlpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2065. int rlpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2066. Expression rlp = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2067. //
  2068. // Expand '//' into '/descendant-or-self::node()/' or
  2069. // into /descendant-or-self::*/
  2070. //
  2071. int nodeType = DOM.NO_TYPE;
  2072. if (rlp instanceof Step &&
  2073. parser.isElementAxis(((Step) rlp).getAxis()))
  2074. {
  2075. nodeType = DTM.ELEMENT_NODE;
  2076. }
  2077. final Step step = new Step(Axis.DESCENDANTORSELF, nodeType, null);
  2078. FilterParentPath fpp = new FilterParentPath(fexp, step);
  2079. fpp = new FilterParentPath(fpp, rlp);
  2080. if (fexp instanceof KeyCall == false) {
  2081. fpp.setDescendantAxis();
  2082. }
  2083. RESULT = fpp;
  2084. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(19/*PathExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2085. }
  2086. return CUP$XPathParser$result;
  2087. /*. . . . . . . . . . . . . . . . . . . .*/
  2088. case 65: // PathExpr ::= FilterExpr SLASH RelativeLocationPath
  2089. {
  2090. Expression RESULT = null;
  2091. int fexpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2092. int fexpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2093. Expression fexp = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2094. int rlpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2095. int rlpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2096. Expression rlp = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2097. RESULT = new FilterParentPath(fexp, rlp);
  2098. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(19/*PathExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2099. }
  2100. return CUP$XPathParser$result;
  2101. /*. . . . . . . . . . . . . . . . . . . .*/
  2102. case 64: // PathExpr ::= FilterExpr
  2103. {
  2104. Expression RESULT = null;
  2105. int fexpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2106. int fexpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2107. Expression fexp = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2108. RESULT = fexp;
  2109. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(19/*PathExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2110. }
  2111. return CUP$XPathParser$result;
  2112. /*. . . . . . . . . . . . . . . . . . . .*/
  2113. case 63: // PathExpr ::= LocationPath
  2114. {
  2115. Expression RESULT = null;
  2116. int lpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2117. int lpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2118. Expression lp = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2119. RESULT = lp;
  2120. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(19/*PathExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2121. }
  2122. return CUP$XPathParser$result;
  2123. /*. . . . . . . . . . . . . . . . . . . .*/
  2124. case 62: // UnionExpr ::= PathExpr VBAR UnionExpr
  2125. {
  2126. Expression RESULT = null;
  2127. int peleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2128. int peright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2129. Expression pe = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2130. int restleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2131. int restright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2132. Expression rest = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2133. RESULT = new UnionPathExpr(pe, rest);
  2134. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(18/*UnionExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2135. }
  2136. return CUP$XPathParser$result;
  2137. /*. . . . . . . . . . . . . . . . . . . .*/
  2138. case 61: // UnionExpr ::= PathExpr
  2139. {
  2140. Expression RESULT = null;
  2141. int peleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2142. int peright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2143. Expression pe = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2144. RESULT = pe;
  2145. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(18/*UnionExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2146. }
  2147. return CUP$XPathParser$result;
  2148. /*. . . . . . . . . . . . . . . . . . . .*/
  2149. case 60: // UnaryExpr ::= MINUS UnaryExpr
  2150. {
  2151. Expression RESULT = null;
  2152. int ueleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2153. int ueright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2154. Expression ue = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2155. RESULT = new UnaryOpExpr(ue);
  2156. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(14/*UnaryExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2157. }
  2158. return CUP$XPathParser$result;
  2159. /*. . . . . . . . . . . . . . . . . . . .*/
  2160. case 59: // UnaryExpr ::= UnionExpr
  2161. {
  2162. Expression RESULT = null;
  2163. int ueleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2164. int ueright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2165. Expression ue = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2166. RESULT = ue;
  2167. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(14/*UnaryExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2168. }
  2169. return CUP$XPathParser$result;
  2170. /*. . . . . . . . . . . . . . . . . . . .*/
  2171. case 58: // MultiplicativeExpr ::= MultiplicativeExpr MOD UnaryExpr
  2172. {
  2173. Expression RESULT = null;
  2174. int meleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2175. int meright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2176. Expression me = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2177. int ueleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2178. int ueright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2179. Expression ue = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2180. RESULT = new BinOpExpr(BinOpExpr.MOD, me, ue);
  2181. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(13/*MultiplicativeExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2182. }
  2183. return CUP$XPathParser$result;
  2184. /*. . . . . . . . . . . . . . . . . . . .*/
  2185. case 57: // MultiplicativeExpr ::= MultiplicativeExpr DIV UnaryExpr
  2186. {
  2187. Expression RESULT = null;
  2188. int meleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2189. int meright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2190. Expression me = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2191. int ueleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2192. int ueright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2193. Expression ue = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2194. RESULT = new BinOpExpr(BinOpExpr.DIV, me, ue);
  2195. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(13/*MultiplicativeExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2196. }
  2197. return CUP$XPathParser$result;
  2198. /*. . . . . . . . . . . . . . . . . . . .*/
  2199. case 56: // MultiplicativeExpr ::= MultiplicativeExpr STAR UnaryExpr
  2200. {
  2201. Expression RESULT = null;
  2202. int meleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2203. int meright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2204. Expression me = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2205. int ueleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2206. int ueright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2207. Expression ue = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2208. RESULT = new BinOpExpr(BinOpExpr.TIMES, me, ue);
  2209. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(13/*MultiplicativeExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2210. }
  2211. return CUP$XPathParser$result;
  2212. /*. . . . . . . . . . . . . . . . . . . .*/
  2213. case 55: // MultiplicativeExpr ::= UnaryExpr
  2214. {
  2215. Expression RESULT = null;
  2216. int ueleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2217. int ueright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2218. Expression ue = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2219. RESULT = ue;
  2220. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(13/*MultiplicativeExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2221. }
  2222. return CUP$XPathParser$result;
  2223. /*. . . . . . . . . . . . . . . . . . . .*/
  2224. case 54: // AdditiveExpr ::= AdditiveExpr MINUS MultiplicativeExpr
  2225. {
  2226. Expression RESULT = null;
  2227. int aeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2228. int aeright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2229. Expression ae = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2230. int meleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2231. int meright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2232. Expression me = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2233. RESULT = new BinOpExpr(BinOpExpr.MINUS, ae, me);
  2234. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(12/*AdditiveExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2235. }
  2236. return CUP$XPathParser$result;
  2237. /*. . . . . . . . . . . . . . . . . . . .*/
  2238. case 53: // AdditiveExpr ::= AdditiveExpr PLUS MultiplicativeExpr
  2239. {
  2240. Expression RESULT = null;
  2241. int aeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2242. int aeright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2243. Expression ae = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2244. int meleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2245. int meright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2246. Expression me = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2247. RESULT = new BinOpExpr(BinOpExpr.PLUS, ae, me);
  2248. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(12/*AdditiveExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2249. }
  2250. return CUP$XPathParser$result;
  2251. /*. . . . . . . . . . . . . . . . . . . .*/
  2252. case 52: // AdditiveExpr ::= MultiplicativeExpr
  2253. {
  2254. Expression RESULT = null;
  2255. int meleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2256. int meright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2257. Expression me = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2258. RESULT = me;
  2259. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(12/*AdditiveExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2260. }
  2261. return CUP$XPathParser$result;
  2262. /*. . . . . . . . . . . . . . . . . . . .*/
  2263. case 51: // RelationalExpr ::= RelationalExpr GE AdditiveExpr
  2264. {
  2265. Expression RESULT = null;
  2266. int releft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2267. int reright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2268. Expression re = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2269. int aeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2270. int aeright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2271. Expression ae = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2272. RESULT = new RelationalExpr(Operators.GE, re, ae);
  2273. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(11/*RelationalExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2274. }
  2275. return CUP$XPathParser$result;
  2276. /*. . . . . . . . . . . . . . . . . . . .*/
  2277. case 50: // RelationalExpr ::= RelationalExpr LE AdditiveExpr
  2278. {
  2279. Expression RESULT = null;
  2280. int releft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2281. int reright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2282. Expression re = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2283. int aeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2284. int aeright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2285. Expression ae = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2286. RESULT = new RelationalExpr(Operators.LE, re, ae);
  2287. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(11/*RelationalExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2288. }
  2289. return CUP$XPathParser$result;
  2290. /*. . . . . . . . . . . . . . . . . . . .*/
  2291. case 49: // RelationalExpr ::= RelationalExpr GT AdditiveExpr
  2292. {
  2293. Expression RESULT = null;
  2294. int releft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2295. int reright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2296. Expression re = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2297. int aeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2298. int aeright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2299. Expression ae = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2300. RESULT = new RelationalExpr(Operators.GT, re, ae);
  2301. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(11/*RelationalExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2302. }
  2303. return CUP$XPathParser$result;
  2304. /*. . . . . . . . . . . . . . . . . . . .*/
  2305. case 48: // RelationalExpr ::= RelationalExpr LT AdditiveExpr
  2306. {
  2307. Expression RESULT = null;
  2308. int releft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2309. int reright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2310. Expression re = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2311. int aeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2312. int aeright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2313. Expression ae = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2314. RESULT = new RelationalExpr(Operators.LT, re, ae);
  2315. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(11/*RelationalExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2316. }
  2317. return CUP$XPathParser$result;
  2318. /*. . . . . . . . . . . . . . . . . . . .*/
  2319. case 47: // RelationalExpr ::= AdditiveExpr
  2320. {
  2321. Expression RESULT = null;
  2322. int aeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2323. int aeright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2324. Expression ae = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2325. RESULT = ae;
  2326. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(11/*RelationalExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2327. }
  2328. return CUP$XPathParser$result;
  2329. /*. . . . . . . . . . . . . . . . . . . .*/
  2330. case 46: // EqualityExpr ::= EqualityExpr NE RelationalExpr
  2331. {
  2332. Expression RESULT = null;
  2333. int eeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2334. int eeright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2335. Expression ee = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2336. int releft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2337. int reright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2338. Expression re = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2339. RESULT = new EqualityExpr(Operators.NE, ee, re);
  2340. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(10/*EqualityExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2341. }
  2342. return CUP$XPathParser$result;
  2343. /*. . . . . . . . . . . . . . . . . . . .*/
  2344. case 45: // EqualityExpr ::= EqualityExpr EQ RelationalExpr
  2345. {
  2346. Expression RESULT = null;
  2347. int eeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2348. int eeright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2349. Expression ee = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2350. int releft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2351. int reright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2352. Expression re = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2353. RESULT = new EqualityExpr(Operators.EQ, ee, re);
  2354. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(10/*EqualityExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2355. }
  2356. return CUP$XPathParser$result;
  2357. /*. . . . . . . . . . . . . . . . . . . .*/
  2358. case 44: // EqualityExpr ::= RelationalExpr
  2359. {
  2360. Expression RESULT = null;
  2361. int releft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2362. int reright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2363. Expression re = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2364. RESULT = re;
  2365. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(10/*EqualityExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2366. }
  2367. return CUP$XPathParser$result;
  2368. /*. . . . . . . . . . . . . . . . . . . .*/
  2369. case 43: // AndExpr ::= AndExpr AND EqualityExpr
  2370. {
  2371. Expression RESULT = null;
  2372. int aeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2373. int aeright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2374. Expression ae = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2375. int eeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2376. int eeright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2377. Expression ee = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2378. RESULT = new LogicalExpr(LogicalExpr.AND, ae, ee);
  2379. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(9/*AndExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2380. }
  2381. return CUP$XPathParser$result;
  2382. /*. . . . . . . . . . . . . . . . . . . .*/
  2383. case 42: // AndExpr ::= EqualityExpr
  2384. {
  2385. Expression RESULT = null;
  2386. int eleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2387. int eright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2388. Expression e = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2389. RESULT = e;
  2390. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(9/*AndExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2391. }
  2392. return CUP$XPathParser$result;
  2393. /*. . . . . . . . . . . . . . . . . . . .*/
  2394. case 41: // OrExpr ::= OrExpr OR AndExpr
  2395. {
  2396. Expression RESULT = null;
  2397. int oeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2398. int oeright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2399. Expression oe = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2400. int aeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2401. int aeright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2402. Expression ae = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2403. RESULT = new LogicalExpr(LogicalExpr.OR, oe, ae);
  2404. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(8/*OrExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2405. }
  2406. return CUP$XPathParser$result;
  2407. /*. . . . . . . . . . . . . . . . . . . .*/
  2408. case 40: // OrExpr ::= AndExpr
  2409. {
  2410. Expression RESULT = null;
  2411. int aeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2412. int aeright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2413. Expression ae = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2414. RESULT = ae;
  2415. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(8/*OrExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2416. }
  2417. return CUP$XPathParser$result;
  2418. /*. . . . . . . . . . . . . . . . . . . .*/
  2419. case 39: // Expr ::= OrExpr
  2420. {
  2421. Expression RESULT = null;
  2422. int exleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2423. int exright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2424. Expression ex = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2425. RESULT = ex;
  2426. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(2/*Expr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2427. }
  2428. return CUP$XPathParser$result;
  2429. /*. . . . . . . . . . . . . . . . . . . .*/
  2430. case 38: // Predicate ::= LBRACK Expr RBRACK
  2431. {
  2432. Expression RESULT = null;
  2433. int eleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  2434. int eright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  2435. Expression e = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  2436. RESULT = new Predicate(e);
  2437. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(5/*Predicate*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2438. }
  2439. return CUP$XPathParser$result;
  2440. /*. . . . . . . . . . . . . . . . . . . .*/
  2441. case 37: // Predicates ::= Predicate Predicates
  2442. {
  2443. Vector RESULT = null;
  2444. int pleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  2445. int pright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  2446. Expression p = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  2447. int ppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2448. int ppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2449. Vector pp = (Vector)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2450. pp.insertElementAt(p, 0); RESULT = pp;
  2451. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(35/*Predicates*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2452. }
  2453. return CUP$XPathParser$result;
  2454. /*. . . . . . . . . . . . . . . . . . . .*/
  2455. case 36: // Predicates ::= Predicate
  2456. {
  2457. Vector RESULT = null;
  2458. int pleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2459. int pright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2460. Expression p = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2461. Vector temp = new Vector();
  2462. temp.addElement(p);
  2463. RESULT = temp;
  2464. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(35/*Predicates*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2465. }
  2466. return CUP$XPathParser$result;
  2467. /*. . . . . . . . . . . . . . . . . . . .*/
  2468. case 35: // ChildOrAttributeAxisSpecifier ::= ATTRIBUTE DCOLON
  2469. {
  2470. Integer RESULT = null;
  2471. RESULT = new Integer(Axis.ATTRIBUTE);
  2472. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(42/*ChildOrAttributeAxisSpecifier*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2473. }
  2474. return CUP$XPathParser$result;
  2475. /*. . . . . . . . . . . . . . . . . . . .*/
  2476. case 34: // ChildOrAttributeAxisSpecifier ::= CHILD DCOLON
  2477. {
  2478. Integer RESULT = null;
  2479. RESULT = new Integer(Axis.CHILD);
  2480. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(42/*ChildOrAttributeAxisSpecifier*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2481. }
  2482. return CUP$XPathParser$result;
  2483. /*. . . . . . . . . . . . . . . . . . . .*/
  2484. case 33: // ChildOrAttributeAxisSpecifier ::= ATSIGN
  2485. {
  2486. Integer RESULT = null;
  2487. RESULT = new Integer(Axis.ATTRIBUTE);
  2488. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(42/*ChildOrAttributeAxisSpecifier*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2489. }
  2490. return CUP$XPathParser$result;
  2491. /*. . . . . . . . . . . . . . . . . . . .*/
  2492. case 32: // NameTestPattern ::= QName
  2493. {
  2494. Object RESULT = null;
  2495. int qnleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2496. int qnright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2497. QName qn = (QName)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2498. RESULT = qn;
  2499. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(34/*NameTestPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2500. }
  2501. return CUP$XPathParser$result;
  2502. /*. . . . . . . . . . . . . . . . . . . .*/
  2503. case 31: // NameTestPattern ::= STAR
  2504. {
  2505. Object RESULT = null;
  2506. RESULT = null;
  2507. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(34/*NameTestPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2508. }
  2509. return CUP$XPathParser$result;
  2510. /*. . . . . . . . . . . . . . . . . . . .*/
  2511. case 30: // NodeTestPattern ::= PI
  2512. {
  2513. Object RESULT = null;
  2514. RESULT = new Integer(NodeTest.PI);
  2515. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(33/*NodeTestPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2516. }
  2517. return CUP$XPathParser$result;
  2518. /*. . . . . . . . . . . . . . . . . . . .*/
  2519. case 29: // NodeTestPattern ::= COMMENT
  2520. {
  2521. Object RESULT = null;
  2522. RESULT = new Integer(NodeTest.COMMENT);
  2523. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(33/*NodeTestPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2524. }
  2525. return CUP$XPathParser$result;
  2526. /*. . . . . . . . . . . . . . . . . . . .*/
  2527. case 28: // NodeTestPattern ::= TEXT
  2528. {
  2529. Object RESULT = null;
  2530. RESULT = new Integer(NodeTest.TEXT);
  2531. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(33/*NodeTestPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2532. }
  2533. return CUP$XPathParser$result;
  2534. /*. . . . . . . . . . . . . . . . . . . .*/
  2535. case 27: // NodeTestPattern ::= NODE
  2536. {
  2537. Object RESULT = null;
  2538. RESULT = new Integer(NodeTest.ANODE);
  2539. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(33/*NodeTestPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2540. }
  2541. return CUP$XPathParser$result;
  2542. /*. . . . . . . . . . . . . . . . . . . .*/
  2543. case 26: // NodeTestPattern ::= NameTestPattern
  2544. {
  2545. Object RESULT = null;
  2546. int ntleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2547. int ntright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2548. Object nt = (Object)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2549. RESULT = nt;
  2550. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(33/*NodeTestPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2551. }
  2552. return CUP$XPathParser$result;
  2553. /*. . . . . . . . . . . . . . . . . . . .*/
  2554. case 25: // StepPattern ::= ChildOrAttributeAxisSpecifier ProcessingInstructionPattern Predicates
  2555. {
  2556. StepPattern RESULT = null;
  2557. int axisleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2558. int axisright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2559. Integer axis = (Integer)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2560. int pipleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  2561. int pipright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  2562. StepPattern pip = (StepPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  2563. int ppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2564. int ppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2565. Vector pp = (Vector)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2566. // TODO: report error if axis is attribute
  2567. RESULT = (ProcessingInstructionPattern)pip.setPredicates(pp);
  2568. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(32/*StepPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2569. }
  2570. return CUP$XPathParser$result;
  2571. /*. . . . . . . . . . . . . . . . . . . .*/
  2572. case 24: // StepPattern ::= ChildOrAttributeAxisSpecifier ProcessingInstructionPattern
  2573. {
  2574. StepPattern RESULT = null;
  2575. int axisleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  2576. int axisright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  2577. Integer axis = (Integer)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  2578. int pipleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2579. int pipright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2580. StepPattern pip = (StepPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2581. RESULT = pip; // TODO: report error if axis is attribute
  2582. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(32/*StepPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2583. }
  2584. return CUP$XPathParser$result;
  2585. /*. . . . . . . . . . . . . . . . . . . .*/
  2586. case 23: // StepPattern ::= ChildOrAttributeAxisSpecifier NodeTestPattern Predicates
  2587. {
  2588. StepPattern RESULT = null;
  2589. int axisleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2590. int axisright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2591. Integer axis = (Integer)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2592. int ntleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  2593. int ntright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  2594. Object nt = (Object)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  2595. int ppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2596. int ppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2597. Vector pp = (Vector)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2598. RESULT = parser.createStepPattern(axis.intValue(), nt, pp);
  2599. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(32/*StepPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2600. }
  2601. return CUP$XPathParser$result;
  2602. /*. . . . . . . . . . . . . . . . . . . .*/
  2603. case 22: // StepPattern ::= ChildOrAttributeAxisSpecifier NodeTestPattern
  2604. {
  2605. StepPattern RESULT = null;
  2606. int axisleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  2607. int axisright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  2608. Integer axis = (Integer)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  2609. int ntleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2610. int ntright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2611. Object nt = (Object)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2612. RESULT = parser.createStepPattern(axis.intValue(), nt, null);
  2613. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(32/*StepPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2614. }
  2615. return CUP$XPathParser$result;
  2616. /*. . . . . . . . . . . . . . . . . . . .*/
  2617. case 21: // StepPattern ::= ProcessingInstructionPattern Predicates
  2618. {
  2619. StepPattern RESULT = null;
  2620. int pipleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  2621. int pipright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  2622. StepPattern pip = (StepPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  2623. int ppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2624. int ppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2625. Vector pp = (Vector)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2626. RESULT = (ProcessingInstructionPattern)pip.setPredicates(pp);
  2627. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(32/*StepPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2628. }
  2629. return CUP$XPathParser$result;
  2630. /*. . . . . . . . . . . . . . . . . . . .*/
  2631. case 20: // StepPattern ::= ProcessingInstructionPattern
  2632. {
  2633. StepPattern RESULT = null;
  2634. int pipleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2635. int pipright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2636. StepPattern pip = (StepPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2637. RESULT = pip;
  2638. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(32/*StepPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2639. }
  2640. return CUP$XPathParser$result;
  2641. /*. . . . . . . . . . . . . . . . . . . .*/
  2642. case 19: // StepPattern ::= NodeTestPattern Predicates
  2643. {
  2644. StepPattern RESULT = null;
  2645. int ntleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  2646. int ntright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  2647. Object nt = (Object)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  2648. int ppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2649. int ppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2650. Vector pp = (Vector)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2651. RESULT = parser.createStepPattern(Axis.CHILD, nt, pp);
  2652. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(32/*StepPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2653. }
  2654. return CUP$XPathParser$result;
  2655. /*. . . . . . . . . . . . . . . . . . . .*/
  2656. case 18: // StepPattern ::= NodeTestPattern
  2657. {
  2658. StepPattern RESULT = null;
  2659. int ntleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2660. int ntright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2661. Object nt = (Object)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2662. RESULT = parser.createStepPattern(Axis.CHILD, nt, null);
  2663. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(32/*StepPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2664. }
  2665. return CUP$XPathParser$result;
  2666. /*. . . . . . . . . . . . . . . . . . . .*/
  2667. case 17: // RelativePathPattern ::= StepPattern DSLASH RelativePathPattern
  2668. {
  2669. RelativePathPattern RESULT = null;
  2670. int spleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2671. int spright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2672. StepPattern sp = (StepPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2673. int rppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2674. int rppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2675. RelativePathPattern rpp = (RelativePathPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2676. RESULT = new AncestorPattern(sp, rpp);
  2677. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(31/*RelativePathPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2678. }
  2679. return CUP$XPathParser$result;
  2680. /*. . . . . . . . . . . . . . . . . . . .*/
  2681. case 16: // RelativePathPattern ::= StepPattern SLASH RelativePathPattern
  2682. {
  2683. RelativePathPattern RESULT = null;
  2684. int spleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2685. int spright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2686. StepPattern sp = (StepPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2687. int rppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2688. int rppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2689. RelativePathPattern rpp = (RelativePathPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2690. RESULT = new ParentPattern(sp, rpp);
  2691. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(31/*RelativePathPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2692. }
  2693. return CUP$XPathParser$result;
  2694. /*. . . . . . . . . . . . . . . . . . . .*/
  2695. case 15: // RelativePathPattern ::= StepPattern
  2696. {
  2697. RelativePathPattern RESULT = null;
  2698. int spleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2699. int spright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2700. StepPattern sp = (StepPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2701. RESULT = sp;
  2702. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(31/*RelativePathPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2703. }
  2704. return CUP$XPathParser$result;
  2705. /*. . . . . . . . . . . . . . . . . . . .*/
  2706. case 14: // ProcessingInstructionPattern ::= PIPARAM LPAREN Literal RPAREN
  2707. {
  2708. StepPattern RESULT = null;
  2709. int lleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  2710. int lright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  2711. String l = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  2712. RESULT = new ProcessingInstructionPattern(l);
  2713. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(30/*ProcessingInstructionPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2714. }
  2715. return CUP$XPathParser$result;
  2716. /*. . . . . . . . . . . . . . . . . . . .*/
  2717. case 13: // IdKeyPattern ::= KEY LPAREN Literal COMMA Literal RPAREN
  2718. {
  2719. IdKeyPattern RESULT = null;
  2720. int l1left = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).left;
  2721. int l1right = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).right;
  2722. String l1 = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).value;
  2723. int l2left = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  2724. int l2right = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  2725. String l2 = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  2726. RESULT = new KeyPattern(l1, l2);
  2727. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(27/*IdKeyPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-5)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2728. }
  2729. return CUP$XPathParser$result;
  2730. /*. . . . . . . . . . . . . . . . . . . .*/
  2731. case 12: // IdKeyPattern ::= ID LPAREN Literal RPAREN
  2732. {
  2733. IdKeyPattern RESULT = null;
  2734. int lleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  2735. int lright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  2736. String l = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  2737. RESULT = new IdPattern(l);
  2738. parser.setHasIdCall(true);
  2739. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(27/*IdKeyPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2740. }
  2741. return CUP$XPathParser$result;
  2742. /*. . . . . . . . . . . . . . . . . . . .*/
  2743. case 11: // LocationPathPattern ::= RelativePathPattern
  2744. {
  2745. Pattern RESULT = null;
  2746. int rppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2747. int rppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2748. RelativePathPattern rpp = (RelativePathPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2749. RESULT = rpp;
  2750. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(29/*LocationPathPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2751. }
  2752. return CUP$XPathParser$result;
  2753. /*. . . . . . . . . . . . . . . . . . . .*/
  2754. case 10: // LocationPathPattern ::= DSLASH RelativePathPattern
  2755. {
  2756. Pattern RESULT = null;
  2757. int rppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2758. int rppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2759. RelativePathPattern rpp = (RelativePathPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2760. RESULT = new AncestorPattern(rpp);
  2761. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(29/*LocationPathPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2762. }
  2763. return CUP$XPathParser$result;
  2764. /*. . . . . . . . . . . . . . . . . . . .*/
  2765. case 9: // LocationPathPattern ::= IdKeyPattern DSLASH RelativePathPattern
  2766. {
  2767. Pattern RESULT = null;
  2768. int ikpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2769. int ikpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2770. IdKeyPattern ikp = (IdKeyPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2771. int rppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2772. int rppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2773. RelativePathPattern rpp = (RelativePathPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2774. RESULT = new AncestorPattern(ikp, rpp);
  2775. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(29/*LocationPathPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2776. }
  2777. return CUP$XPathParser$result;
  2778. /*. . . . . . . . . . . . . . . . . . . .*/
  2779. case 8: // LocationPathPattern ::= IdKeyPattern SLASH RelativePathPattern
  2780. {
  2781. Pattern RESULT = null;
  2782. int ikpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2783. int ikpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2784. IdKeyPattern ikp = (IdKeyPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2785. int rppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2786. int rppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2787. RelativePathPattern rpp = (RelativePathPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2788. RESULT = new ParentPattern(ikp, rpp);
  2789. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(29/*LocationPathPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2790. }
  2791. return CUP$XPathParser$result;
  2792. /*. . . . . . . . . . . . . . . . . . . .*/
  2793. case 7: // LocationPathPattern ::= IdKeyPattern
  2794. {
  2795. Pattern RESULT = null;
  2796. int ikpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2797. int ikpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2798. IdKeyPattern ikp = (IdKeyPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2799. RESULT = ikp;
  2800. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(29/*LocationPathPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2801. }
  2802. return CUP$XPathParser$result;
  2803. /*. . . . . . . . . . . . . . . . . . . .*/
  2804. case 6: // LocationPathPattern ::= SLASH RelativePathPattern
  2805. {
  2806. Pattern RESULT = null;
  2807. int rppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2808. int rppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2809. RelativePathPattern rpp = (RelativePathPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2810. RESULT = new AbsolutePathPattern(rpp);
  2811. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(29/*LocationPathPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2812. }
  2813. return CUP$XPathParser$result;
  2814. /*. . . . . . . . . . . . . . . . . . . .*/
  2815. case 5: // LocationPathPattern ::= SLASH
  2816. {
  2817. Pattern RESULT = null;
  2818. RESULT = new AbsolutePathPattern(null);
  2819. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(29/*LocationPathPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2820. }
  2821. return CUP$XPathParser$result;
  2822. /*. . . . . . . . . . . . . . . . . . . .*/
  2823. case 4: // Pattern ::= LocationPathPattern VBAR Pattern
  2824. {
  2825. Pattern RESULT = null;
  2826. int lppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2827. int lppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2828. Pattern lpp = (Pattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2829. int pleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2830. int pright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2831. Pattern p = (Pattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2832. RESULT = new AlternativePattern(lpp, p);
  2833. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(28/*Pattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2834. }
  2835. return CUP$XPathParser$result;
  2836. /*. . . . . . . . . . . . . . . . . . . .*/
  2837. case 3: // Pattern ::= LocationPathPattern
  2838. {
  2839. Pattern RESULT = null;
  2840. int lppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2841. int lppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2842. Pattern lpp = (Pattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2843. RESULT = lpp;
  2844. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(28/*Pattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2845. }
  2846. return CUP$XPathParser$result;
  2847. /*. . . . . . . . . . . . . . . . . . . .*/
  2848. case 2: // TopLevel ::= EXPRESSION Expr
  2849. {
  2850. SyntaxTreeNode RESULT = null;
  2851. int exprleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2852. int exprright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2853. Expression expr = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2854. RESULT = expr;
  2855. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(1/*TopLevel*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2856. }
  2857. return CUP$XPathParser$result;
  2858. /*. . . . . . . . . . . . . . . . . . . .*/
  2859. case 1: // TopLevel ::= PATTERN Pattern
  2860. {
  2861. SyntaxTreeNode RESULT = null;
  2862. int patternleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2863. int patternright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2864. Pattern pattern = (Pattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2865. RESULT = pattern;
  2866. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(1/*TopLevel*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2867. }
  2868. return CUP$XPathParser$result;
  2869. /*. . . . . . . . . . . . . . . . . . . .*/
  2870. case 0: // $START ::= TopLevel EOF
  2871. {
  2872. Object RESULT = null;
  2873. int start_valleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  2874. int start_valright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  2875. SyntaxTreeNode start_val = (SyntaxTreeNode)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  2876. RESULT = start_val;
  2877. CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(0/*$START*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2878. }
  2879. /* ACCEPT */
  2880. CUP$XPathParser$parser.done_parsing();
  2881. return CUP$XPathParser$result;
  2882. /* . . . . . .*/
  2883. default:
  2884. throw new Exception(
  2885. "Invalid action number found in internal parse table");
  2886. }
  2887. }
  2888. }