001 002//---------------------------------------------------- 003// The following code was generated by CUP v0.10k 004// Thu Jul 25 21:17:37 PDT 2013 005//---------------------------------------------------- 006 007package mondrian.olap; 008 009import java_cup.runtime.*; 010import java.util.*; 011import java.math.BigDecimal; 012import mondrian.mdx.*; 013import mondrian.parser.MdxParserValidator; 014import mondrian.resource.MondrianResource; 015import mondrian.server.Statement; 016 017/** CUP v0.10k generated parser. 018 * @version Thu Jul 25 21:17:37 PDT 2013 019 */ 020public class Parser extends java_cup.runtime.lr_parser { 021 022 /** Default constructor. */ 023 public Parser() {super();} 024 025 /** Constructor which sets the default scanner. */ 026 public Parser(java_cup.runtime.Scanner s) {super(s);} 027 028 /** Production table. */ 029 protected static final short _production_table[][] = 030 unpackFromStrings(new String[] { 031 "\000\223\000\002\002\004\000\002\045\003\000\002\047" + 032 "\003\000\002\046\003\000\002\046\003\000\002\044\003" + 033 "\000\002\044\003\000\002\043\003\000\002\043\003\000" + 034 "\002\034\003\000\002\034\005\000\002\032\003\000\002" + 035 "\032\005\000\002\035\003\000\002\021\003\000\002\021" + 036 "\005\000\002\021\005\000\002\017\003\000\002\017\005" + 037 "\000\002\016\003\000\002\016\004\000\002\015\003\000" + 038 "\002\015\005\000\002\015\005\000\002\015\005\000\002" + 039 "\015\005\000\002\015\005\000\002\015\006\000\002\015" + 040 "\005\000\002\015\006\000\002\014\003\000\002\014\005" + 041 "\000\002\014\005\000\002\014\005\000\002\013\003\000" + 042 "\002\013\005\000\002\013\005\000\002\011\003\000\002" + 043 "\011\004\000\002\011\004\000\002\023\003\000\002\023" + 044 "\003\000\002\023\003\000\002\023\005\000\002\023\005" + 045 "\000\002\023\005\000\002\023\010\000\002\023\006\000" + 046 "\002\023\006\000\002\023\005\000\002\023\005\000\002" + 047 "\023\003\000\002\023\003\000\002\005\007\000\002\022" + 048 "\002\000\002\022\003\000\002\077\002\000\002\077\004" + 049 "\000\002\101\006\000\002\006\002\000\002\006\004\000" + 050 "\002\042\003\000\002\042\003\000\002\042\003\000\002" + 051 "\042\003\000\002\042\003\000\002\042\003\000\002\007" + 052 "\005\000\002\007\003\000\002\007\003\000\002\010\003" + 053 "\000\002\010\002\000\002\070\002\000\002\070\003\000" + 054 "\002\067\003\000\002\067\005\000\002\004\005\000\002" + 055 "\026\003\000\002\026\003\000\002\026\003\000\002\026" + 056 "\004\000\002\025\011\000\002\100\002\000\002\100\004" + 057 "\000\002\061\002\000\002\061\003\000\002\060\003\000" + 058 "\002\060\005\000\002\024\002\000\002\024\004\000\002" + 059 "\063\002\000\002\063\003\000\002\071\003\000\002\071" + 060 "\004\000\002\052\003\000\002\052\003\000\002\050\007" + 061 "\000\002\050\007\000\002\064\002\000\002\064\004\000" + 062 "\002\072\003\000\002\072\005\000\002\037\003\000\002" + 063 "\053\005\000\002\051\006\000\002\051\006\000\002\040" + 064 "\003\000\002\003\007\000\002\003\007\000\002\057\002" + 065 "\000\002\057\004\000\002\066\002\000\002\066\003\000" + 066 "\002\041\003\000\002\041\003\000\002\041\003\000\002" + 067 "\041\003\000\002\041\003\000\002\102\003\000\002\102" + 068 "\006\000\002\065\005\000\002\055\002\000\002\055\003" + 069 "\000\002\073\003\000\002\073\005\000\002\056\003\000" + 070 "\002\036\003\000\002\012\003\000\002\062\005\000\002" + 071 "\054\002\000\002\054\003\000\002\074\003\000\002\074" + 072 "\005\000\002\033\003\000\002\030\007\000\002\103\004" + 073 "\000\002\103\002\000\002\104\004\000\002\104\002\000" + 074 "\002\075\004\000\002\075\002\000\002\076\003\000\002" + 075 "\076\005\000\002\020\003\000\002\027\003\000\002\027" + 076 "\003\000\002\031\006" }); 077 078 /** Access to production table. */ 079 public short[][] production_table() {return _production_table;} 080 081 /** Parse-action table. */ 082 protected static final short[][] _action_table = 083 unpackFromStrings(new String[] { 084 "\000\340\000\014\015\005\021\012\045\uffaf\053\010\054" + 085 "\014\001\002\000\004\002\uffb4\001\002\000\012\022\uff79" + 086 "\030\325\045\uff79\053\uff79\001\002\000\004\002\324\001" + 087 "\002\000\004\045\241\001\002\000\006\031\210\046\206" + 088 "\001\002\000\004\002\uffb3\001\002\000\004\040\176\001" + 089 "\002\000\004\002\uffb2\001\002\000\036\007\044\010\024" + 090 "\014\033\033\020\034\047\041\026\066\022\070\021\072" + 091 "\042\074\015\100\032\101\023\102\037\104\027\001\002" + 092 "\000\030\007\044\010\024\014\033\034\047\041\026\066" + 093 "\022\070\021\100\032\101\023\102\037\104\027\001\002" + 094 "\000\120\002\uffd7\004\uffd7\005\uffd7\011\uffd7\014\uffd7\016" + 095 "\uffd7\020\uffd7\025\uffd7\026\uffd7\027\uffd7\031\uffd7\033\uffd7" + 096 "\035\uffd7\036\uffd7\041\uffd7\042\uffd7\045\uffd7\046\uffd7\047" + 097 "\uffd7\050\uffd7\052\uffd7\055\uffd7\056\ufff6\057\uffd7\060\uffd7" + 098 "\061\uffd7\062\uffd7\063\uffd7\064\uffd7\065\uffd7\067\uffd7\070" + 099 "\ufff6\071\uffd7\072\uffd7\073\uffd7\074\uffd7\075\uffd7\076\uffd7" + 100 "\077\uffd7\001\002\000\114\002\uffcd\004\uffcd\005\uffcd\011" + 101 "\uffcd\014\uffcd\016\uffcd\020\uffcd\025\uffcd\026\uffcd\027\uffcd" + 102 "\031\uffcd\033\uffcd\035\uffcd\036\uffcd\041\uffcd\042\uffcd\045" + 103 "\uffcd\046\uffcd\047\uffcd\050\uffcd\052\uffcd\055\uffcd\057\uffcd" + 104 "\060\uffcd\061\uffcd\062\uffcd\063\uffcd\064\uffcd\065\uffcd\067" + 105 "\uffcd\071\uffcd\072\uffcd\073\uffcd\074\uffcd\075\uffcd\076\uffcd" + 106 "\077\uffcd\001\002\000\036\007\044\010\024\014\033\033" + 107 "\020\034\047\041\026\066\022\070\021\072\042\074\015" + 108 "\100\032\101\023\102\037\104\027\001\002\000\040\007" + 109 "\044\010\024\014\033\033\020\034\047\041\026\060\uffba" + 110 "\066\022\070\021\072\042\074\015\100\032\101\023\102" + 111 "\037\104\027\001\002\000\042\007\044\010\024\014\033" + 112 "\033\020\034\047\041\026\060\uffba\066\022\070\021\072" + 113 "\042\074\015\075\uffb9\100\032\101\023\102\037\104\027" + 114 "\001\002\000\122\002\ufffe\004\ufffe\005\ufffe\011\ufffe\014" + 115 "\ufffe\016\ufffe\020\ufffe\025\ufffe\026\ufffe\027\ufffe\031\ufffe" + 116 "\033\ufffe\035\ufffe\036\ufffe\041\ufffe\042\ufffe\045\ufffe\046" + 117 "\ufffe\047\ufffe\050\ufffe\051\ufffe\052\ufffe\055\ufffe\056\ufffe" + 118 "\057\ufffe\060\ufffe\061\ufffe\062\ufffe\063\ufffe\064\ufffe\065" + 119 "\ufffe\067\ufffe\070\ufffe\071\ufffe\072\ufffe\073\ufffe\074\ufffe" + 120 "\075\ufffe\076\ufffe\077\ufffe\001\002\000\004\070\164\001" + 121 "\002\000\006\056\157\070\160\001\002\000\122\002\ufff9" + 122 "\004\ufff9\005\ufff9\011\ufff9\014\ufff9\016\ufff9\020\ufff9\025" + 123 "\ufff9\026\ufff9\027\ufff9\031\ufff9\033\ufff9\035\ufff9\036\ufff9" + 124 "\041\ufff9\042\ufff9\045\ufff9\046\ufff9\047\ufff9\050\ufff9\051" + 125 "\ufff9\052\ufff9\055\ufff9\056\ufff9\057\ufff9\060\ufff9\061\ufff9" + 126 "\062\ufff9\063\ufff9\064\ufff9\065\ufff9\067\ufff9\070\ufff9\071" + 127 "\ufff9\072\ufff9\073\ufff9\074\ufff9\075\ufff9\076\ufff9\077\ufff9" + 128 "\001\002\000\114\002\uffd9\004\uffd9\005\uffd9\011\uffd9\014" + 129 "\uffd9\016\uffd9\020\uffd9\025\uffd9\026\uffd9\027\uffd9\031\uffd9" + 130 "\033\uffd9\035\uffd9\036\uffd9\041\uffd9\042\uffd9\045\uffd9\046" + 131 "\uffd9\047\uffd9\050\uffd9\052\uffd9\055\uffd9\057\uffd9\060\uffd9" + 132 "\061\uffd9\062\uffd9\063\uffd9\064\uffd9\065\uffd9\067\uffd9\071" + 133 "\uffd9\072\uffd9\073\uffd9\074\uffd9\075\uffd9\076\uffd9\077\uffd9" + 134 "\001\002\000\010\002\uffb1\005\070\057\071\001\002\000" + 135 "\042\002\uffbc\005\uffbc\011\uffbc\014\uffbc\031\uffbc\035\uffbc" + 136 "\036\073\041\uffbc\042\uffbc\045\uffbc\046\uffbc\052\074\057" + 137 "\uffbc\060\uffbc\075\uffbc\076\uffbc\001\002\000\114\002\uffd8" + 138 "\004\uffd8\005\uffd8\011\uffd8\014\uffd8\016\uffd8\020\uffd8\025" + 139 "\uffd8\026\uffd8\027\uffd8\031\uffd8\033\uffd8\035\uffd8\036\uffd8" + 140 "\041\uffd8\042\uffd8\045\uffd8\046\uffd8\047\uffd8\050\uffd8\052" + 141 "\uffd8\055\uffd8\057\uffd8\060\uffd8\061\uffd8\062\uffd8\063\uffd8" + 142 "\064\uffd8\065\uffd8\067\uffd8\071\uffd8\072\uffd8\073\uffd8\074" + 143 "\uffd8\075\uffd8\076\uffd8\077\uffd8\001\002\000\122\002\ufffa" + 144 "\004\ufffa\005\ufffa\011\ufffa\014\ufffa\016\ufffa\020\ufffa\025" + 145 "\ufffa\026\ufffa\027\ufffa\031\ufffa\033\ufffa\035\ufffa\036\ufffa" + 146 "\041\ufffa\042\ufffa\045\ufffa\046\ufffa\047\ufffa\050\ufffa\051" + 147 "\ufffa\052\ufffa\055\ufffa\056\ufffa\057\ufffa\060\ufffa\061\ufffa" + 148 "\062\ufffa\063\ufffa\064\ufffa\065\ufffa\067\ufffa\070\ufffa\071" + 149 "\ufffa\072\ufffa\073\ufffa\074\ufffa\075\ufffa\076\ufffa\077\ufffa" + 150 "\001\002\000\112\002\uffdf\004\uffdf\005\uffdf\011\uffdf\014" + 151 "\uffdf\016\uffdf\020\uffdf\025\uffdf\026\uffdf\027\uffdf\031\uffdf" + 152 "\033\uffdf\035\uffdf\036\uffdf\041\uffdf\042\uffdf\045\uffdf\046" + 153 "\uffdf\047\uffdf\050\uffdf\052\uffdf\055\uffdf\057\uffdf\060\uffdf" + 154 "\061\uffdf\063\uffdf\064\uffdf\065\uffdf\067\uffdf\071\uffdf\072" + 155 "\uffdf\073\uffdf\074\uffdf\075\uffdf\076\uffdf\077\uffdf\001\002" + 156 "\000\036\002\uffbd\005\uffbd\011\uffbd\014\uffbd\031\uffbd\035" + 157 "\uffbd\041\uffbd\042\uffbd\045\uffbd\046\uffbd\057\uffbd\060\uffbd" + 158 "\075\uffbd\076\uffbd\001\002\000\112\002\uffe3\004\uffe3\005" + 159 "\uffe3\011\uffe3\014\uffe3\016\uffe3\020\uffe3\025\uffe3\026\uffe3" + 160 "\027\uffe3\031\uffe3\033\uffe3\035\uffe3\036\uffe3\041\uffe3\042" + 161 "\uffe3\045\uffe3\046\uffe3\047\uffe3\050\uffe3\052\uffe3\055\107" + 162 "\057\uffe3\060\uffe3\061\uffe3\063\uffe3\064\uffe3\065\uffe3\067" + 163 "\uffe3\071\uffe3\072\uffe3\073\uffe3\074\uffe3\075\uffe3\076\uffe3" + 164 "\077\110\001\002\000\122\002\000\004\000\005\000\011" + 165 "\000\014\000\016\000\020\000\025\000\026\000\027\000" + 166 "\031\000\033\000\035\000\036\000\041\000\042\000\045" + 167 "\000\046\000\047\000\050\000\051\000\052\000\055\000" + 168 "\056\000\057\000\060\000\061\000\062\000\063\000\064" + 169 "\000\065\000\067\000\070\000\071\000\072\000\073\000" + 170 "\074\000\075\000\076\000\077\000\001\002\000\054\002" + 171 "\ufff3\004\076\005\ufff3\011\ufff3\014\ufff3\016\ufff3\020\ufff3" + 172 "\031\ufff3\035\ufff3\036\ufff3\041\ufff3\042\ufff3\045\ufff3\046" + 173 "\ufff3\047\ufff3\050\ufff3\052\ufff3\057\ufff3\060\ufff3\075\ufff3" + 174 "\076\ufff3\001\002\000\054\002\ufff0\004\ufff0\005\ufff0\011" + 175 "\ufff0\014\ufff0\016\ufff0\020\ufff0\031\ufff0\035\ufff0\036\ufff0" + 176 "\041\ufff0\042\ufff0\045\ufff0\046\ufff0\047\ufff0\050\ufff0\052" + 177 "\ufff0\057\ufff0\060\ufff0\075\ufff0\076\ufff0\001\002\000\030" + 178 "\007\044\010\024\014\033\034\047\041\026\066\022\070" + 179 "\021\100\032\101\023\102\037\104\027\001\002\000\100" + 180 "\002\uffee\004\uffee\005\uffee\011\uffee\014\uffee\016\uffee\020" + 181 "\uffee\025\131\026\143\027\140\031\uffee\033\137\035\uffee" + 182 "\036\uffee\041\uffee\042\uffee\045\uffee\046\uffee\047\uffee\050" + 183 "\uffee\052\uffee\057\uffee\060\uffee\063\134\064\133\065\136" + 184 "\067\135\071\142\073\141\075\uffee\076\uffee\001\002\000" + 185 "\044\007\044\010\024\014\033\016\uffcb\020\uffcb\033\020" + 186 "\034\047\041\026\050\uffcb\066\022\070\021\072\042\074" + 187 "\015\100\032\101\023\102\037\104\027\001\002\000\106" + 188 "\002\uffec\004\uffec\005\uffec\011\uffec\014\uffec\016\uffec\020" + 189 "\uffec\025\uffec\026\uffec\027\uffec\031\uffec\033\uffec\035\uffec" + 190 "\036\uffec\041\uffec\042\uffec\045\uffec\046\uffec\047\uffec\050" + 191 "\uffec\052\uffec\057\uffec\060\uffec\061\104\063\uffec\064\uffec" + 192 "\065\uffec\067\uffec\071\uffec\072\105\073\uffec\074\103\075" + 193 "\uffec\076\uffec\001\002\000\114\002\uffdc\004\uffdc\005\uffdc" + 194 "\011\uffdc\014\uffdc\016\uffdc\020\uffdc\025\uffdc\026\uffdc\027" + 195 "\uffdc\031\uffdc\033\uffdc\035\uffdc\036\uffdc\041\uffdc\042\uffdc" + 196 "\045\uffdc\046\uffdc\047\uffdc\050\uffdc\052\uffdc\055\uffdc\057" + 197 "\uffdc\060\uffdc\061\uffdc\062\053\063\uffdc\064\uffdc\065\uffdc" + 198 "\067\uffdc\071\uffdc\072\uffdc\073\uffdc\074\uffdc\075\uffdc\076" + 199 "\uffdc\077\uffdc\001\002\000\114\002\uffce\004\uffce\005\uffce" + 200 "\011\uffce\014\uffce\016\uffce\020\uffce\025\uffce\026\uffce\027" + 201 "\uffce\031\uffce\033\uffce\035\uffce\036\uffce\041\uffce\042\uffce" + 202 "\045\uffce\046\uffce\047\uffce\050\uffce\052\uffce\055\uffce\057" + 203 "\uffce\060\uffce\061\uffce\062\uffce\063\uffce\064\uffce\065\uffce" + 204 "\067\uffce\071\uffce\072\uffce\073\uffce\074\uffce\075\uffce\076" + 205 "\uffce\077\uffce\001\002\000\122\002\ufffd\004\ufffd\005\ufffd" + 206 "\011\ufffd\014\ufffd\016\ufffd\020\ufffd\025\ufffd\026\ufffd\027" + 207 "\ufffd\031\ufffd\033\ufffd\035\ufffd\036\ufffd\041\ufffd\042\ufffd" + 208 "\045\ufffd\046\ufffd\047\ufffd\050\ufffd\051\ufffd\052\ufffd\055" + 209 "\ufffd\056\ufffd\057\ufffd\060\ufffd\061\ufffd\062\ufffd\063\ufffd" + 210 "\064\ufffd\065\ufffd\067\ufffd\070\ufffd\071\ufffd\072\ufffd\073" + 211 "\ufffd\074\ufffd\075\ufffd\076\ufffd\077\ufffd\001\002\000\122" + 212 "\002\ufffc\004\ufffc\005\ufffc\011\ufffc\014\ufffc\016\ufffc\020" + 213 "\ufffc\025\ufffc\026\ufffc\027\ufffc\031\ufffc\033\ufffc\035\ufffc" + 214 "\036\ufffc\041\ufffc\042\ufffc\045\ufffc\046\ufffc\047\ufffc\050" + 215 "\ufffc\051\ufffc\052\ufffc\055\ufffc\056\ufffc\057\ufffc\060\ufffc" + 216 "\061\ufffc\062\ufffc\063\ufffc\064\ufffc\065\ufffc\067\ufffc\070" + 217 "\ufffc\071\ufffc\072\ufffc\073\ufffc\074\ufffc\075\ufffc\076\ufffc" + 218 "\077\ufffc\001\002\000\122\002\ufffb\004\ufffb\005\ufffb\011" + 219 "\ufffb\014\ufffb\016\ufffb\020\ufffb\025\ufffb\026\ufffb\027\ufffb" + 220 "\031\ufffb\033\ufffb\035\ufffb\036\ufffb\041\ufffb\042\ufffb\045" + 221 "\ufffb\046\ufffb\047\ufffb\050\ufffb\051\ufffb\052\ufffb\055\ufffb" + 222 "\056\ufffb\057\ufffb\060\ufffb\061\ufffb\062\ufffb\063\ufffb\064" + 223 "\ufffb\065\ufffb\067\ufffb\070\ufffb\071\ufffb\072\ufffb\073\ufffb" + 224 "\074\ufffb\075\ufffb\076\ufffb\077\ufffb\001\002\000\014\014" + 225 "\033\041\026\101\023\102\037\103\060\001\002\000\114" + 226 "\002\uffd4\004\uffd4\005\uffd4\011\uffd4\014\uffd4\016\uffd4\020" + 227 "\uffd4\025\uffd4\026\uffd4\027\uffd4\031\uffd4\033\uffd4\035\uffd4" + 228 "\036\uffd4\041\uffd4\042\uffd4\045\uffd4\046\uffd4\047\uffd4\050" + 229 "\uffd4\052\uffd4\055\uffd4\057\uffd4\060\uffd4\061\uffd4\062\uffd4" + 230 "\063\uffd4\064\uffd4\065\uffd4\067\uffd4\071\uffd4\072\uffd4\073" + 231 "\uffd4\074\uffd4\075\uffd4\076\uffd4\077\uffd4\001\002\000\004" + 232 "\070\061\001\002\000\116\002\uffd6\004\uffd6\005\uffd6\011" + 233 "\uffd6\014\uffd6\016\uffd6\020\uffd6\025\uffd6\026\uffd6\027\uffd6" + 234 "\031\uffd6\033\uffd6\035\uffd6\036\uffd6\041\uffd6\042\uffd6\045" + 235 "\uffd6\046\uffd6\047\uffd6\050\uffd6\052\uffd6\055\uffd6\057\uffd6" + 236 "\060\uffd6\061\uffd6\062\uffd6\063\uffd6\064\uffd6\065\uffd6\067" + 237 "\uffd6\070\ufffc\071\uffd6\072\uffd6\073\uffd6\074\uffd6\075\uffd6" + 238 "\076\uffd6\077\uffd6\001\002\000\116\002\uffd5\004\uffd5\005" + 239 "\uffd5\011\uffd5\014\uffd5\016\uffd5\020\uffd5\025\uffd5\026\uffd5" + 240 "\027\uffd5\031\uffd5\033\uffd5\035\uffd5\036\uffd5\041\uffd5\042" + 241 "\uffd5\045\uffd5\046\uffd5\047\uffd5\050\uffd5\052\uffd5\055\uffd5" + 242 "\057\uffd5\060\uffd5\061\uffd5\062\uffd5\063\uffd5\064\uffd5\065" + 243 "\uffd5\067\uffd5\070\ufffb\071\uffd5\072\uffd5\073\uffd5\074\uffd5" + 244 "\075\uffd5\076\uffd5\077\uffd5\001\002\000\114\002\uffff\004" + 245 "\uffff\005\uffff\011\uffff\014\uffff\016\uffff\020\uffff\025\uffff" + 246 "\026\uffff\027\uffff\031\uffff\033\uffff\035\uffff\036\uffff\041" + 247 "\uffff\042\uffff\045\uffff\046\uffff\047\uffff\050\uffff\052\uffff" + 248 "\055\uffff\057\uffff\060\uffff\061\uffff\062\uffff\063\uffff\064" + 249 "\uffff\065\uffff\067\uffff\071\uffff\072\uffff\073\uffff\074\uffff" + 250 "\075\uffff\076\uffff\077\uffff\001\002\000\042\007\044\010" + 251 "\024\014\033\033\020\034\047\041\026\060\uffba\066\022" + 252 "\070\021\072\042\074\015\076\uffb9\100\032\101\023\102" + 253 "\037\104\027\001\002\000\004\076\102\001\002\000\006" + 254 "\075\uffb8\076\uffb8\001\002\000\014\005\070\057\071\060" + 255 "\uffbb\075\uffb7\076\uffb7\001\002\000\004\060\066\001\002" + 256 "\000\040\007\044\010\024\014\033\033\020\034\047\041" + 257 "\026\060\uffba\066\022\070\021\072\042\074\015\100\032" + 258 "\101\023\102\037\104\027\001\002\000\006\075\uffb6\076" + 259 "\uffb6\001\002\000\012\014\033\041\026\101\023\102\037" + 260 "\001\002\000\036\007\044\010\024\014\033\033\020\034" + 261 "\047\041\026\066\022\070\021\072\042\074\015\100\032" + 262 "\101\023\102\037\104\027\001\002\000\042\002\uffbe\005" + 263 "\uffbe\011\uffbe\014\uffbe\031\uffbe\035\uffbe\036\073\041\uffbe" + 264 "\042\uffbe\045\uffbe\046\uffbe\052\074\057\uffbe\060\uffbe\075" + 265 "\uffbe\076\uffbe\001\002\000\036\007\044\010\024\014\033" + 266 "\033\020\034\047\041\026\066\022\070\021\072\042\074" + 267 "\015\100\032\101\023\102\037\104\027\001\002\000\036" + 268 "\007\044\010\024\014\033\033\020\034\047\041\026\066" + 269 "\022\070\021\072\042\074\015\100\032\101\023\102\037" + 270 "\104\027\001\002\000\054\002\ufff1\004\076\005\ufff1\011" + 271 "\ufff1\014\ufff1\016\ufff1\020\ufff1\031\ufff1\035\ufff1\036\ufff1" + 272 "\041\ufff1\042\ufff1\045\ufff1\046\ufff1\047\ufff1\050\ufff1\052" + 273 "\ufff1\057\ufff1\060\ufff1\075\ufff1\076\ufff1\001\002\000\036" + 274 "\007\044\010\024\014\033\033\020\034\047\041\026\066" + 275 "\022\070\021\072\042\074\015\100\032\101\023\102\037" + 276 "\104\027\001\002\000\054\002\uffef\004\uffef\005\uffef\011" + 277 "\uffef\014\uffef\016\uffef\020\uffef\031\uffef\035\uffef\036\uffef" + 278 "\041\uffef\042\uffef\045\uffef\046\uffef\047\uffef\050\uffef\052" + 279 "\uffef\057\uffef\060\uffef\075\uffef\076\uffef\001\002\000\054" + 280 "\002\ufff2\004\076\005\ufff2\011\ufff2\014\ufff2\016\ufff2\020" + 281 "\ufff2\031\ufff2\035\ufff2\036\ufff2\041\ufff2\042\ufff2\045\ufff2" + 282 "\046\ufff2\047\ufff2\050\ufff2\052\ufff2\057\ufff2\060\ufff2\075" + 283 "\ufff2\076\ufff2\001\002\000\036\002\uffb5\005\uffb5\011\uffb5" + 284 "\014\uffb5\031\uffb5\035\uffb5\041\uffb5\042\uffb5\045\uffb5\046" + 285 "\uffb5\057\uffb5\060\uffb5\075\uffb5\076\uffb5\001\002\000\114" + 286 "\002\uffd3\004\uffd3\005\uffd3\011\uffd3\014\uffd3\016\uffd3\020" + 287 "\uffd3\025\uffd3\026\uffd3\027\uffd3\031\uffd3\033\uffd3\035\uffd3" + 288 "\036\uffd3\041\uffd3\042\uffd3\045\uffd3\046\uffd3\047\uffd3\050" + 289 "\uffd3\052\uffd3\055\uffd3\057\uffd3\060\uffd3\061\uffd3\062\uffd3" + 290 "\063\uffd3\064\uffd3\065\uffd3\067\uffd3\071\uffd3\072\uffd3\073" + 291 "\uffd3\074\uffd3\075\uffd3\076\uffd3\077\uffd3\001\002\000\034" + 292 "\007\044\010\024\014\033\034\047\041\026\066\022\070" + 293 "\021\072\042\074\015\100\032\101\023\102\037\104\027" + 294 "\001\002\000\034\007\044\010\024\014\033\034\047\041" + 295 "\026\066\022\070\021\072\042\074\015\100\032\101\023" + 296 "\102\037\104\027\001\002\000\034\007\044\010\024\014" + 297 "\033\034\047\041\026\066\022\070\021\072\042\074\015" + 298 "\100\032\101\023\102\037\104\027\001\002\000\112\002" + 299 "\uffe1\004\uffe1\005\uffe1\011\uffe1\014\uffe1\016\uffe1\020\uffe1" + 300 "\025\uffe1\026\uffe1\027\uffe1\031\uffe1\033\uffe1\035\uffe1\036" + 301 "\uffe1\041\uffe1\042\uffe1\045\uffe1\046\uffe1\047\uffe1\050\uffe1" + 302 "\052\uffe1\055\107\057\uffe1\060\uffe1\061\uffe1\063\uffe1\064" + 303 "\uffe1\065\uffe1\067\uffe1\071\uffe1\072\uffe1\073\uffe1\074\uffe1" + 304 "\075\uffe1\076\uffe1\077\110\001\002\000\034\007\044\010" + 305 "\024\014\033\034\047\041\026\066\022\070\021\072\042" + 306 "\074\015\100\032\101\023\102\037\104\027\001\002\000" + 307 "\034\007\044\010\024\014\033\034\047\041\026\066\022" + 308 "\070\021\072\042\074\015\100\032\101\023\102\037\104" + 309 "\027\001\002\000\112\002\uffdd\004\uffdd\005\uffdd\011\uffdd" + 310 "\014\uffdd\016\uffdd\020\uffdd\025\uffdd\026\uffdd\027\uffdd\031" + 311 "\uffdd\033\uffdd\035\uffdd\036\uffdd\041\uffdd\042\uffdd\045\uffdd" + 312 "\046\uffdd\047\uffdd\050\uffdd\052\uffdd\055\uffdd\057\uffdd\060" + 313 "\uffdd\061\uffdd\063\uffdd\064\uffdd\065\uffdd\067\uffdd\071\uffdd" + 314 "\072\uffdd\073\uffdd\074\uffdd\075\uffdd\076\uffdd\077\uffdd\001" + 315 "\002\000\112\002\uffde\004\uffde\005\uffde\011\uffde\014\uffde" + 316 "\016\uffde\020\uffde\025\uffde\026\uffde\027\uffde\031\uffde\033" + 317 "\uffde\035\uffde\036\uffde\041\uffde\042\uffde\045\uffde\046\uffde" + 318 "\047\uffde\050\uffde\052\uffde\055\uffde\057\uffde\060\uffde\061" + 319 "\uffde\063\uffde\064\uffde\065\uffde\067\uffde\071\uffde\072\uffde" + 320 "\073\uffde\074\uffde\075\uffde\076\uffde\077\uffde\001\002\000" + 321 "\112\002\uffe0\004\uffe0\005\uffe0\011\uffe0\014\uffe0\016\uffe0" + 322 "\020\uffe0\025\uffe0\026\uffe0\027\uffe0\031\uffe0\033\uffe0\035" + 323 "\uffe0\036\uffe0\041\uffe0\042\uffe0\045\uffe0\046\uffe0\047\uffe0" + 324 "\050\uffe0\052\uffe0\055\107\057\uffe0\060\uffe0\061\uffe0\063" + 325 "\uffe0\064\uffe0\065\uffe0\067\uffe0\071\uffe0\072\uffe0\073\uffe0" + 326 "\074\uffe0\075\uffe0\076\uffe0\077\110\001\002\000\112\002" + 327 "\uffe2\004\uffe2\005\uffe2\011\uffe2\014\uffe2\016\uffe2\020\uffe2" + 328 "\025\uffe2\026\uffe2\027\uffe2\031\uffe2\033\uffe2\035\uffe2\036" + 329 "\uffe2\041\uffe2\042\uffe2\045\uffe2\046\uffe2\047\uffe2\050\uffe2" + 330 "\052\uffe2\055\107\057\uffe2\060\uffe2\061\uffe2\063\uffe2\064" + 331 "\uffe2\065\uffe2\067\uffe2\071\uffe2\072\uffe2\073\uffe2\074\uffe2" + 332 "\075\uffe2\076\uffe2\077\110\001\002\000\014\016\uffca\020" + 333 "\uffca\036\073\050\uffca\052\074\001\002\000\010\016\uffc9" + 334 "\020\uffc9\050\uffc9\001\002\000\010\016\121\020\uffc6\050" + 335 "\122\001\002\000\004\020\130\001\002\000\036\007\044" + 336 "\010\024\014\033\033\020\034\047\041\026\066\022\070" + 337 "\021\072\042\074\015\100\032\101\023\102\037\104\027" + 338 "\001\002\000\036\007\044\010\024\014\033\033\020\034" + 339 "\047\041\026\066\022\070\021\072\042\074\015\100\032" + 340 "\101\023\102\037\104\027\001\002\000\010\016\uffc8\020" + 341 "\uffc8\050\uffc8\001\002\000\010\036\073\047\125\052\074" + 342 "\001\002\000\036\007\044\010\024\014\033\033\020\034" + 343 "\047\041\026\066\022\070\021\072\042\074\015\100\032" + 344 "\101\023\102\037\104\027\001\002\000\014\016\uffc7\020" + 345 "\uffc7\036\073\050\uffc7\052\074\001\002\000\010\020\uffc5" + 346 "\036\073\052\074\001\002\000\114\002\uffcc\004\uffcc\005" + 347 "\uffcc\011\uffcc\014\uffcc\016\uffcc\020\uffcc\025\uffcc\026\uffcc" + 348 "\027\uffcc\031\uffcc\033\uffcc\035\uffcc\036\uffcc\041\uffcc\042" + 349 "\uffcc\045\uffcc\046\uffcc\047\uffcc\050\uffcc\052\uffcc\055\uffcc" + 350 "\057\uffcc\060\uffcc\061\uffcc\062\uffcc\063\uffcc\064\uffcc\065" + 351 "\uffcc\067\uffcc\071\uffcc\072\uffcc\073\uffcc\074\uffcc\075\uffcc" + 352 "\076\uffcc\077\uffcc\001\002\000\034\007\044\010\024\014" + 353 "\033\034\047\041\026\066\022\070\021\072\042\074\015" + 354 "\100\032\101\023\102\037\104\027\001\002\000\034\007" + 355 "\044\010\024\014\033\034\047\041\026\066\022\070\021" + 356 "\072\042\074\015\100\032\101\023\102\037\104\027\001" + 357 "\002\000\034\007\uffbf\010\uffbf\014\uffbf\034\uffbf\041\uffbf" + 358 "\066\uffbf\070\uffbf\072\uffbf\074\uffbf\100\uffbf\101\uffbf\102" + 359 "\uffbf\104\uffbf\001\002\000\034\007\uffc4\010\uffc4\014\uffc4" + 360 "\034\uffc4\041\uffc4\066\uffc4\070\uffc4\072\uffc4\074\uffc4\100" + 361 "\uffc4\101\uffc4\102\uffc4\104\uffc4\001\002\000\034\007\uffc0" + 362 "\010\uffc0\014\uffc0\034\uffc0\041\uffc0\066\uffc0\070\uffc0\072" + 363 "\uffc0\074\uffc0\100\uffc0\101\uffc0\102\uffc0\104\uffc0\001\002" + 364 "\000\034\007\uffc1\010\uffc1\014\uffc1\034\uffc1\041\uffc1\066" + 365 "\uffc1\070\uffc1\072\uffc1\074\uffc1\100\uffc1\101\uffc1\102\uffc1" + 366 "\104\uffc1\001\002\000\006\025\150\027\151\001\002\000" + 367 "\034\007\044\010\024\014\033\034\047\041\026\066\022" + 368 "\070\021\072\042\074\015\100\032\101\023\102\037\104" + 369 "\027\001\002\000\034\007\uffc3\010\uffc3\014\uffc3\034\uffc3" + 370 "\041\uffc3\066\uffc3\070\uffc3\072\uffc3\074\uffc3\100\uffc3\101" + 371 "\uffc3\102\uffc3\104\uffc3\001\002\000\034\007\uffc2\010\uffc2" + 372 "\014\uffc2\034\uffc2\041\uffc2\066\uffc2\070\uffc2\072\uffc2\074" + 373 "\uffc2\100\uffc2\101\uffc2\102\uffc2\104\uffc2\001\002\000\036" + 374 "\007\044\010\024\014\033\017\146\034\145\041\026\066" + 375 "\022\070\021\072\042\074\015\100\032\101\023\102\037" + 376 "\104\027\001\002\000\106\002\uffe9\004\uffe9\005\uffe9\011" + 377 "\uffe9\014\uffe9\016\uffe9\020\uffe9\025\uffe9\026\uffe9\027\uffe9" + 378 "\031\uffe9\033\uffe9\035\uffe9\036\uffe9\041\uffe9\042\uffe9\045" + 379 "\uffe9\046\uffe9\047\uffe9\050\uffe9\052\uffe9\057\uffe9\060\uffe9" + 380 "\061\104\063\uffe9\064\uffe9\065\uffe9\067\uffe9\071\uffe9\072" + 381 "\105\073\uffe9\074\103\075\uffe9\076\uffe9\001\002\000\114" + 382 "\002\uffea\004\uffea\005\uffea\011\uffea\014\uffea\016\uffea\020" + 383 "\uffea\025\uffea\026\uffea\027\uffea\031\uffea\033\uffea\035\uffea" + 384 "\036\uffea\041\uffea\042\uffea\045\uffea\046\uffea\047\uffea\050" + 385 "\uffea\052\uffea\055\uffce\057\uffea\060\uffea\061\uffce\062\uffce" + 386 "\063\uffea\064\uffea\065\uffea\067\uffea\071\uffea\072\uffce\073" + 387 "\uffea\074\uffce\075\uffea\076\uffea\077\uffce\001\002\000\100" + 388 "\002\uffe8\004\uffe8\005\uffe8\011\uffe8\014\uffe8\016\uffe8\020" + 389 "\uffe8\025\uffe8\026\uffe8\027\uffe8\031\uffe8\033\uffe8\035\uffe8" + 390 "\036\uffe8\041\uffe8\042\uffe8\045\uffe8\046\uffe8\047\uffe8\050" + 391 "\uffe8\052\uffe8\057\uffe8\060\uffe8\063\uffe8\064\uffe8\065\uffe8" + 392 "\067\uffe8\071\uffe8\073\uffe8\075\uffe8\076\uffe8\001\002\000" + 393 "\106\002\uffe7\004\uffe7\005\uffe7\011\uffe7\014\uffe7\016\uffe7" + 394 "\020\uffe7\025\uffe7\026\uffe7\027\uffe7\031\uffe7\033\uffe7\035" + 395 "\uffe7\036\uffe7\041\uffe7\042\uffe7\045\uffe7\046\uffe7\047\uffe7" + 396 "\050\uffe7\052\uffe7\057\uffe7\060\uffe7\061\104\063\uffe7\064" + 397 "\uffe7\065\uffe7\067\uffe7\071\uffe7\072\105\073\uffe7\074\103" + 398 "\075\uffe7\076\uffe7\001\002\000\034\007\044\010\024\014" + 399 "\033\034\047\041\026\066\022\070\021\072\042\074\015" + 400 "\100\032\101\023\102\037\104\027\001\002\000\034\007" + 401 "\044\010\024\014\033\034\047\041\026\066\022\070\021" + 402 "\072\042\074\015\100\032\101\023\102\037\104\027\001" + 403 "\002\000\106\002\uffe6\004\uffe6\005\uffe6\011\uffe6\014\uffe6" + 404 "\016\uffe6\020\uffe6\025\uffe6\026\uffe6\027\uffe6\031\uffe6\033" + 405 "\uffe6\035\uffe6\036\uffe6\041\uffe6\042\uffe6\045\uffe6\046\uffe6" + 406 "\047\uffe6\050\uffe6\052\uffe6\057\uffe6\060\uffe6\061\104\063" + 407 "\uffe6\064\uffe6\065\uffe6\067\uffe6\071\uffe6\072\105\073\uffe6" + 408 "\074\103\075\uffe6\076\uffe6\001\002\000\106\002\uffe4\004" + 409 "\uffe4\005\uffe4\011\uffe4\014\uffe4\016\uffe4\020\uffe4\025\uffe4" + 410 "\026\uffe4\027\uffe4\031\uffe4\033\uffe4\035\uffe4\036\uffe4\041" + 411 "\uffe4\042\uffe4\045\uffe4\046\uffe4\047\uffe4\050\uffe4\052\uffe4" + 412 "\057\uffe4\060\uffe4\061\104\063\uffe4\064\uffe4\065\uffe4\067" + 413 "\uffe4\071\uffe4\072\105\073\uffe4\074\103\075\uffe4\076\uffe4" + 414 "\001\002\000\106\002\uffeb\004\uffeb\005\uffeb\011\uffeb\014" + 415 "\uffeb\016\uffeb\020\uffeb\025\uffeb\026\uffeb\027\uffeb\031\uffeb" + 416 "\033\uffeb\035\uffeb\036\uffeb\041\uffeb\042\uffeb\045\uffeb\046" + 417 "\uffeb\047\uffeb\050\uffeb\052\uffeb\057\uffeb\060\uffeb\061\104" + 418 "\063\uffeb\064\uffeb\065\uffeb\067\uffeb\071\uffeb\072\105\073" + 419 "\uffeb\074\103\075\uffeb\076\uffeb\001\002\000\106\002\uffe5" + 420 "\004\uffe5\005\uffe5\011\uffe5\014\uffe5\016\uffe5\020\uffe5\025" + 421 "\uffe5\026\uffe5\027\uffe5\031\uffe5\033\uffe5\035\uffe5\036\uffe5" + 422 "\041\uffe5\042\uffe5\045\uffe5\046\uffe5\047\uffe5\050\uffe5\052" + 423 "\uffe5\057\uffe5\060\uffe5\061\104\063\uffe5\064\uffe5\065\uffe5" + 424 "\067\uffe5\071\uffe5\072\105\073\uffe5\074\103\075\uffe5\076" + 425 "\uffe5\001\002\000\114\002\uffda\004\uffda\005\uffda\011\uffda" + 426 "\014\uffda\016\uffda\020\uffda\025\uffda\026\uffda\027\uffda\031" + 427 "\uffda\033\uffda\035\uffda\036\uffda\041\uffda\042\uffda\045\uffda" + 428 "\046\uffda\047\uffda\050\uffda\052\uffda\055\uffda\057\uffda\060" + 429 "\uffda\061\uffda\062\053\063\uffda\064\uffda\065\uffda\067\uffda" + 430 "\071\uffda\072\uffda\073\uffda\074\uffda\075\uffda\076\uffda\077" + 431 "\uffda\001\002\000\012\014\033\041\026\101\023\102\037" + 432 "\001\002\000\042\007\044\010\024\014\033\033\020\034" + 433 "\047\041\026\060\uffba\066\022\070\021\072\042\074\015" + 434 "\076\uffb9\100\032\101\023\102\037\104\027\001\002\000" + 435 "\004\076\162\001\002\000\114\002\uffd2\004\uffd2\005\uffd2" + 436 "\011\uffd2\014\uffd2\016\uffd2\020\uffd2\025\uffd2\026\uffd2\027" + 437 "\uffd2\031\uffd2\033\uffd2\035\uffd2\036\uffd2\041\uffd2\042\uffd2" + 438 "\045\uffd2\046\uffd2\047\uffd2\050\uffd2\052\uffd2\055\uffd2\057" + 439 "\uffd2\060\uffd2\061\uffd2\062\uffd2\063\uffd2\064\uffd2\065\uffd2" + 440 "\067\uffd2\071\uffd2\072\uffd2\073\uffd2\074\uffd2\075\uffd2\076" + 441 "\uffd2\077\uffd2\001\002\000\006\056\ufff5\070\ufff5\001\002" + 442 "\000\036\007\044\010\024\014\033\033\020\034\047\041" + 443 "\026\066\022\070\021\072\042\074\015\100\032\101\023" + 444 "\102\037\104\027\001\002\000\006\005\070\057\071\001" + 445 "\002\000\010\005\uffbd\057\uffbd\076\167\001\002\000\114" + 446 "\002\uffd1\004\uffd1\005\uffd1\011\uffd1\014\uffd1\016\uffd1\020" + 447 "\uffd1\025\uffd1\026\uffd1\027\uffd1\031\uffd1\033\uffd1\035\uffd1" + 448 "\036\uffd1\041\uffd1\042\uffd1\045\uffd1\046\uffd1\047\uffd1\050" + 449 "\uffd1\052\uffd1\055\uffd1\057\uffd1\060\uffd1\061\uffd1\062\uffd1" + 450 "\063\uffd1\064\uffd1\065\uffd1\067\uffd1\071\uffd1\072\uffd1\073" + 451 "\uffd1\074\uffd1\075\uffd1\076\uffd1\077\uffd1\001\002\000\004" + 452 "\075\171\001\002\000\114\002\uffcf\004\uffcf\005\uffcf\011" + 453 "\uffcf\014\uffcf\016\uffcf\020\uffcf\025\uffcf\026\uffcf\027\uffcf" + 454 "\031\uffcf\033\uffcf\035\uffcf\036\uffcf\041\uffcf\042\uffcf\045" + 455 "\uffcf\046\uffcf\047\uffcf\050\uffcf\052\uffcf\055\uffcf\057\uffcf" + 456 "\060\uffcf\061\uffcf\062\uffcf\063\uffcf\064\uffcf\065\uffcf\067" + 457 "\uffcf\071\uffcf\072\uffcf\073\uffcf\074\uffcf\075\uffcf\076\uffcf" + 458 "\077\uffcf\001\002\000\004\076\173\001\002\000\114\002" + 459 "\uffd0\004\uffd0\005\uffd0\011\uffd0\014\uffd0\016\uffd0\020\uffd0" + 460 "\025\uffd0\026\uffd0\027\uffd0\031\uffd0\033\uffd0\035\uffd0\036" + 461 "\uffd0\041\uffd0\042\uffd0\045\uffd0\046\uffd0\047\uffd0\050\uffd0" + 462 "\052\uffd0\055\uffd0\057\uffd0\060\uffd0\061\uffd0\062\uffd0\063" + 463 "\uffd0\064\uffd0\065\uffd0\067\uffd0\071\uffd0\072\uffd0\073\uffd0" + 464 "\074\uffd0\075\uffd0\076\uffd0\077\uffd0\001\002\000\054\002" + 465 "\uffed\004\uffed\005\uffed\011\uffed\014\uffed\016\uffed\020\uffed" + 466 "\031\uffed\035\uffed\036\uffed\041\uffed\042\uffed\045\uffed\046" + 467 "\uffed\047\uffed\050\uffed\052\uffed\057\uffed\060\uffed\075\uffed" + 468 "\076\uffed\001\002\000\114\002\uffdb\004\uffdb\005\uffdb\011" + 469 "\uffdb\014\uffdb\016\uffdb\020\uffdb\025\uffdb\026\uffdb\027\uffdb" + 470 "\031\uffdb\033\uffdb\035\uffdb\036\uffdb\041\uffdb\042\uffdb\045" + 471 "\uffdb\046\uffdb\047\uffdb\050\uffdb\052\uffdb\055\uffdb\057\uffdb" + 472 "\060\uffdb\061\uffdb\062\053\063\uffdb\064\uffdb\065\uffdb\067" + 473 "\uffdb\071\uffdb\072\uffdb\073\uffdb\074\uffdb\075\uffdb\076\uffdb" + 474 "\077\uffdb\001\002\000\004\023\177\001\002\000\010\015" + 475 "\005\045\uffaf\053\010\001\002\000\004\002\uff71\001\002" + 476 "\000\004\002\uff70\001\002\000\004\002\uff6f\001\002\000" + 477 "\004\045\uffae\001\002\000\010\031\uffa3\045\uffa3\046\uffa3" + 478 "\001\002\000\010\031\210\045\uffa5\046\206\001\002\000" + 479 "\012\014\033\041\026\101\023\102\037\001\002\000\010" + 480 "\031\uffa2\045\uffa2\046\uffa2\001\002\000\012\014\033\041" + 481 "\026\101\023\102\037\001\002\000\004\005\216\001\002" + 482 "\000\024\002\ufff8\005\ufff8\011\ufff8\035\ufff8\041\ufff8\042" + 483 "\ufff8\051\ufff8\060\ufff8\062\ufff8\001\002\000\006\005\uff9b" + 484 "\062\214\001\002\000\012\014\033\041\026\101\023\102" + 485 "\037\001\002\000\024\002\ufff7\005\ufff7\011\ufff7\035\ufff7" + 486 "\041\ufff7\042\ufff7\051\ufff7\060\ufff7\062\ufff7\001\002\000" + 487 "\040\007\044\010\024\014\033\033\020\034\047\041\026" + 488 "\066\022\070\021\072\042\074\015\100\032\101\023\102" + 489 "\037\104\027\105\220\001\002\000\016\031\uff9f\036\073" + 490 "\045\uff9f\046\uff9f\052\074\060\221\001\002\000\012\031" + 491 "\uff9f\045\uff9f\046\uff9f\060\221\001\002\000\012\014\033" + 492 "\041\026\101\023\102\037\001\002\000\010\031\uffa1\045" + 493 "\uffa1\046\uffa1\001\002\000\010\031\uff9e\045\uff9e\046\uff9e" + 494 "\001\002\000\012\031\uff9d\045\uff9d\046\uff9d\060\230\001" + 495 "\002\000\004\063\226\001\002\000\036\007\044\010\024" + 496 "\014\033\033\020\034\047\041\026\066\022\070\021\072" + 497 "\042\074\015\100\032\101\023\102\037\104\027\001\002" + 498 "\000\016\031\uff9a\036\073\045\uff9a\046\uff9a\052\074\060" + 499 "\uff9a\001\002\000\012\014\033\041\026\101\023\102\037" + 500 "\001\002\000\010\031\uff9c\045\uff9c\046\uff9c\001\002\000" + 501 "\010\031\uffa0\045\uffa0\046\uffa0\001\002\000\004\005\235" + 502 "\001\002\000\006\005\uff97\062\214\001\002\000\040\007" + 503 "\044\010\024\014\033\033\020\034\047\041\026\066\022" + 504 "\070\021\072\042\074\015\100\032\101\023\102\037\104" + 505 "\027\105\237\001\002\000\014\005\070\031\uff98\045\uff98" + 506 "\046\uff98\057\071\001\002\000\010\031\uff99\045\uff99\046" + 507 "\uff99\001\002\000\004\045\uffa4\001\002\000\042\007\uff94" + 508 "\010\uff94\014\uff94\024\uffad\032\245\033\uff94\034\uff94\041" + 509 "\uff94\066\uff94\070\uff94\072\uff94\074\uff94\100\uff94\101\uff94" + 510 "\102\uff94\104\uff94\001\002\000\004\024\302\001\002\000" + 511 "\036\007\044\010\024\014\033\033\020\034\047\041\026" + 512 "\066\022\070\021\072\042\074\015\100\032\101\023\102" + 513 "\037\104\027\001\002\000\006\024\uffab\060\250\001\002" + 514 "\000\004\017\247\001\002\000\004\024\uffac\001\002\000" + 515 "\036\007\uff93\010\uff93\014\uff93\033\uff93\034\uff93\041\uff93" + 516 "\066\uff93\070\uff93\072\uff93\074\uff93\100\uff93\101\uff93\102" + 517 "\uff93\104\uff93\001\002\000\040\007\uff94\010\uff94\014\uff94" + 518 "\032\245\033\uff94\034\uff94\041\uff94\066\uff94\070\uff94\072" + 519 "\uff94\074\uff94\100\uff94\101\uff94\102\uff94\104\uff94\001\002" + 520 "\000\004\024\uffaa\001\002\000\014\005\070\014\254\035" + 521 "\uff92\041\uff88\057\071\001\002\000\004\035\uff91\001\002" + 522 "\000\004\041\uff87\001\002\000\004\035\265\001\002\000" + 523 "\004\041\257\001\002\000\012\014\033\041\026\101\023" + 524 "\102\037\001\002\000\004\035\uff89\001\002\000\006\035" + 525 "\uff86\060\263\001\002\000\010\035\uff84\060\uff84\062\214" + 526 "\001\002\000\012\014\033\041\026\101\023\102\037\001" + 527 "\002\000\004\035\uff85\001\002\000\020\006\270\012\267" + 528 "\013\274\037\275\043\276\044\266\100\271\001\002\000" + 529 "\006\024\uff8d\060\uff8d\001\002\000\006\024\uff8c\060\uff8c" + 530 "\001\002\000\004\070\277\001\002\000\006\024\uff8b\060" + 531 "\uff8b\001\002\000\006\024\uff96\060\uff96\001\002\000\006" + 532 "\024\uff95\060\uff95\001\002\000\006\024\uff90\060\uff90\001" + 533 "\002\000\006\024\uff8e\060\uff8e\001\002\000\006\024\uff8f" + 534 "\060\uff8f\001\002\000\004\100\300\001\002\000\004\076" + 535 "\301\001\002\000\006\024\uff8a\060\uff8a\001\002\000\012" + 536 "\014\033\041\026\101\023\102\037\001\002\000\014\002" + 537 "\uff83\011\uff83\041\uff83\042\uff83\051\uff83\001\002\000\016" + 538 "\002\ufff4\011\ufff4\041\ufff4\042\ufff4\051\ufff4\062\214\001" + 539 "\002\000\014\002\uffa9\011\uffa9\041\uffa9\042\uffa9\051\306" + 540 "\001\002\000\036\007\044\010\024\014\033\033\020\034" + 541 "\047\041\026\066\022\070\021\072\042\074\015\100\032" + 542 "\101\023\102\037\104\027\001\002\000\012\002\uffa7\011" + 543 "\313\041\uff80\042\uffa7\001\002\000\006\002\uffa6\042\uffa6" + 544 "\001\002\000\004\041\314\001\002\000\006\002\uffb0\042" + 545 "\uffb0\001\002\000\004\041\uff7f\001\002\000\012\014\033" + 546 "\041\026\101\023\102\037\001\002\000\010\002\uff7e\042" + 547 "\uff7e\060\320\001\002\000\006\002\uff81\042\uff81\001\002" + 548 "\000\012\002\uff7c\042\uff7c\060\uff7c\062\214\001\002\000" + 549 "\012\014\033\041\026\101\023\102\037\001\002\000\006" + 550 "\002\uff7d\042\uff7d\001\002\000\012\002\uffa8\011\uffa8\041" + 551 "\uffa8\042\uffa8\001\002\000\016\002\uff82\005\070\011\uff82" + 552 "\041\uff82\042\uff82\057\071\001\002\000\004\002\001\001" + 553 "\002\000\004\100\342\001\002\000\010\022\330\045\uff77" + 554 "\053\uff77\001\002\000\006\045\uffaf\053\010\001\002\000" + 555 "\004\100\331\001\002\000\006\045\uff78\053\uff78\001\002" + 556 "\000\006\002\uff75\042\333\001\002\000\012\014\033\041" + 557 "\026\101\023\102\037\001\002\000\004\002\uff7b\001\002" + 558 "\000\006\002\uff74\060\340\001\002\000\004\002\uff76\001" + 559 "\002\000\010\002\uff72\060\uff72\062\214\001\002\000\012" + 560 "\014\033\041\026\101\023\102\037\001\002\000\004\002" + 561 "\uff73\001\002\000\010\022\uff7a\045\uff7a\053\uff7a\001\002" + 562 "" }); 563 564 /** Access to parse-action table. */ 565 public short[][] action_table() {return _action_table;} 566 567 /** <code>reduce_goto</code> table. */ 568 protected static final short[][] _reduce_table = 569 unpackFromStrings(new String[] { 570 "\000\340\000\014\025\003\026\005\030\010\031\012\100" + 571 "\006\001\001\000\002\001\001\000\004\103\325\001\001" + 572 "\000\002\001\001\000\002\001\001\000\012\050\203\051" + 573 "\206\052\204\071\202\001\001\000\002\001\001\000\002" + 574 "\001\001\000\002\001\001\000\042\004\034\005\016\007" + 575 "\027\011\033\013\035\014\044\015\042\016\040\017\037" + 576 "\021\030\023\045\032\024\043\047\044\015\045\051\046" + 577 "\050\001\001\000\020\005\016\023\174\032\024\043\047" + 578 "\044\015\045\051\046\050\001\001\000\002\001\001\000" + 579 "\002\001\001\000\032\005\016\011\033\013\035\014\044" + 580 "\015\042\016\173\023\045\032\024\043\047\044\015\045" + 581 "\051\046\050\001\001\000\046\004\034\005\016\007\063" + 582 "\010\064\011\033\013\035\014\044\015\042\016\040\017" + 583 "\037\021\030\023\045\032\024\043\047\044\015\045\051" + 584 "\046\050\067\171\001\001\000\050\004\034\005\016\007" + 585 "\063\010\064\011\033\013\035\014\044\015\042\016\040" + 586 "\017\037\021\030\023\045\032\024\043\047\044\015\045" + 587 "\051\046\050\067\062\070\167\001\001\000\002\001\001" + 588 "\000\002\001\001\000\002\001\001\000\002\001\001\000" + 589 "\002\001\001\000\002\001\001\000\002\001\001\000\002" + 590 "\001\001\000\002\001\001\000\002\001\001\000\002\001" + 591 "\001\000\002\001\001\000\002\001\001\000\002\001\001" + 592 "\000\002\001\001\000\020\005\016\023\155\032\024\043" + 593 "\047\044\015\045\051\046\050\001\001\000\004\042\131" + 594 "\001\001\000\040\005\016\011\033\013\035\014\044\015" + 595 "\042\016\040\017\037\021\114\022\115\023\045\032\024" + 596 "\043\047\044\015\045\051\046\050\001\001\000\002\001" + 597 "\001\000\002\001\001\000\002\001\001\000\002\001\001" + 598 "\000\002\001\001\000\002\001\001\000\014\043\047\044" + 599 "\054\045\056\046\055\047\053\001\001\000\002\001\001" + 600 "\000\002\001\001\000\002\001\001\000\002\001\001\000" + 601 "\002\001\001\000\050\004\034\005\016\007\063\010\064" + 602 "\011\033\013\035\014\044\015\042\016\040\017\037\021" + 603 "\030\023\045\032\024\043\047\044\015\045\051\046\050" + 604 "\067\062\070\061\001\001\000\002\001\001\000\002\001" + 605 "\001\000\002\001\001\000\002\001\001\000\046\004\034" + 606 "\005\016\007\063\010\064\011\033\013\035\014\044\015" + 607 "\042\016\040\017\037\021\030\023\045\032\024\043\047" + 608 "\044\015\045\051\046\050\067\066\001\001\000\002\001" + 609 "\001\000\012\043\047\044\100\045\051\046\050\001\001" + 610 "\000\036\005\016\011\033\013\035\014\044\015\042\016" + 611 "\040\017\037\021\071\023\045\032\024\043\047\044\015" + 612 "\045\051\046\050\001\001\000\002\001\001\000\034\005" + 613 "\016\011\033\013\035\014\044\015\042\016\040\017\077" + 614 "\023\045\032\024\043\047\044\015\045\051\046\050\001" + 615 "\001\000\034\005\016\011\033\013\035\014\044\015\042" + 616 "\016\040\017\074\023\045\032\024\043\047\044\015\045" + 617 "\051\046\050\001\001\000\002\001\001\000\032\005\016" + 618 "\011\033\013\035\014\044\015\042\016\076\023\045\032" + 619 "\024\043\047\044\015\045\051\046\050\001\001\000\002" + 620 "\001\001\000\002\001\001\000\002\001\001\000\002\001" + 621 "\001\000\024\005\016\011\033\013\113\023\045\032\024" + 622 "\043\047\044\015\045\051\046\050\001\001\000\024\005" + 623 "\016\011\033\013\112\023\045\032\024\043\047\044\015" + 624 "\045\051\046\050\001\001\000\024\005\016\011\033\013" + 625 "\105\023\045\032\024\043\047\044\015\045\051\046\050" + 626 "\001\001\000\002\001\001\000\022\005\016\011\111\023" + 627 "\045\032\024\043\047\044\015\045\051\046\050\001\001" + 628 "\000\022\005\016\011\110\023\045\032\024\043\047\044" + 629 "\015\045\051\046\050\001\001\000\002\001\001\000\002" + 630 "\001\001\000\002\001\001\000\002\001\001\000\002\001" + 631 "\001\000\004\077\116\001\001\000\006\006\117\101\122" + 632 "\001\001\000\002\001\001\000\036\005\016\011\033\013" + 633 "\035\014\044\015\042\016\040\017\037\021\126\023\045" + 634 "\032\024\043\047\044\015\045\051\046\050\001\001\000" + 635 "\036\005\016\011\033\013\035\014\044\015\042\016\040" + 636 "\017\037\021\123\023\045\032\024\043\047\044\015\045" + 637 "\051\046\050\001\001\000\002\001\001\000\002\001\001" + 638 "\000\036\005\016\011\033\013\035\014\044\015\042\016" + 639 "\040\017\037\021\125\023\045\032\024\043\047\044\015" + 640 "\045\051\046\050\001\001\000\002\001\001\000\002\001" + 641 "\001\000\002\001\001\000\026\005\016\011\033\013\035" + 642 "\014\154\023\045\032\024\043\047\044\015\045\051\046" + 643 "\050\001\001\000\026\005\016\011\033\013\035\014\153" + 644 "\023\045\032\024\043\047\044\015\045\051\046\050\001" + 645 "\001\000\002\001\001\000\002\001\001\000\002\001\001" + 646 "\000\002\001\001\000\002\001\001\000\026\005\016\011" + 647 "\033\013\035\014\146\023\045\032\024\043\047\044\015" + 648 "\045\051\046\050\001\001\000\002\001\001\000\002\001" + 649 "\001\000\026\005\016\011\033\013\035\014\143\023\045" + 650 "\032\024\043\047\044\015\045\051\046\050\001\001\000" + 651 "\002\001\001\000\002\001\001\000\002\001\001\000\002" + 652 "\001\001\000\026\005\016\011\033\013\035\014\152\023" + 653 "\045\032\024\043\047\044\015\045\051\046\050\001\001" + 654 "\000\026\005\016\011\033\013\035\014\151\023\045\032" + 655 "\024\043\047\044\015\045\051\046\050\001\001\000\002" + 656 "\001\001\000\002\001\001\000\002\001\001\000\002\001" + 657 "\001\000\002\001\001\000\012\043\047\044\162\045\051" + 658 "\046\050\001\001\000\050\004\034\005\016\007\063\010" + 659 "\064\011\033\013\035\014\044\015\042\016\040\017\037" + 660 "\021\030\023\045\032\024\043\047\044\015\045\051\046" + 661 "\050\067\062\070\160\001\001\000\002\001\001\000\002" + 662 "\001\001\000\002\001\001\000\042\004\165\005\016\007" + 663 "\164\011\033\013\035\014\044\015\042\016\040\017\037" + 664 "\021\030\023\045\032\024\043\047\044\015\045\051\046" + 665 "\050\001\001\000\002\001\001\000\002\001\001\000\002" + 666 "\001\001\000\002\001\001\000\002\001\001\000\002\001" + 667 "\001\000\002\001\001\000\002\001\001\000\002\001\001" + 668 "\000\002\001\001\000\012\025\177\027\201\030\200\100" + 669 "\006\001\001\000\002\001\001\000\002\001\001\000\002" + 670 "\001\001\000\002\001\001\000\002\001\001\000\012\050" + 671 "\203\051\206\052\204\071\237\001\001\000\016\034\233" + 672 "\040\232\043\047\044\211\045\051\046\050\001\001\000" + 673 "\002\001\001\000\016\034\212\037\210\043\047\044\211" + 674 "\045\051\046\050\001\001\000\002\001\001\000\002\001" + 675 "\001\000\002\001\001\000\012\043\047\044\214\045\051" + 676 "\046\050\001\001\000\002\001\001\000\036\005\016\011" + 677 "\033\013\035\014\044\015\042\016\040\017\037\021\216" + 678 "\023\045\032\024\043\047\044\015\045\051\046\050\001" + 679 "\001\000\004\064\231\001\001\000\004\064\221\001\001" + 680 "\000\016\043\047\044\224\045\051\046\050\053\223\072" + 681 "\222\001\001\000\002\001\001\000\002\001\001\000\002" + 682 "\001\001\000\002\001\001\000\036\005\016\011\033\013" + 683 "\035\014\044\015\042\016\040\017\037\021\226\023\045" + 684 "\032\024\043\047\044\015\045\051\046\050\001\001\000" + 685 "\002\001\001\000\016\043\047\044\224\045\051\046\050" + 686 "\053\223\072\230\001\001\000\002\001\001\000\002\001" + 687 "\001\000\002\001\001\000\002\001\001\000\042\004\034" + 688 "\005\016\007\235\011\033\013\035\014\044\015\042\016" + 689 "\040\017\037\021\030\023\045\032\024\043\047\044\015" + 690 "\045\051\046\050\001\001\000\002\001\001\000\002\001" + 691 "\001\000\002\001\001\000\012\003\243\057\242\060\245" + 692 "\061\241\001\001\000\002\001\001\000\042\004\034\005" + 693 "\016\007\251\011\033\013\035\014\044\015\042\016\040" + 694 "\017\037\021\030\023\045\032\024\043\047\044\015\045" + 695 "\051\046\050\001\001\000\002\001\001\000\002\001\001" + 696 "\000\002\001\001\000\002\001\001\000\010\003\243\057" + 697 "\242\060\250\001\001\000\002\001\001\000\010\055\255" + 698 "\065\252\066\254\001\001\000\002\001\001\000\002\001" + 699 "\001\000\002\001\001\000\002\001\001\000\020\034\261" + 700 "\043\047\044\211\045\051\046\050\056\260\073\257\001" + 701 "\001\000\002\001\001\000\002\001\001\000\002\001\001" + 702 "\000\020\034\261\043\047\044\211\045\051\046\050\056" + 703 "\260\073\263\001\001\000\002\001\001\000\006\041\271" + 704 "\102\272\001\001\000\002\001\001\000\002\001\001\000" + 705 "\002\001\001\000\002\001\001\000\002\001\001\000\002" + 706 "\001\001\000\002\001\001\000\002\001\001\000\002\001" + 707 "\001\000\002\001\001\000\002\001\001\000\002\001\001" + 708 "\000\020\034\303\035\302\036\304\043\047\044\211\045" + 709 "\051\046\050\001\001\000\002\001\001\000\002\001\001" + 710 "\000\004\024\306\001\001\000\044\004\034\005\016\007" + 711 "\322\011\033\012\321\013\035\014\044\015\042\016\040" + 712 "\017\037\021\030\023\045\032\024\043\047\044\015\045" + 713 "\051\046\050\001\001\000\010\054\310\062\307\063\311" + 714 "\001\001\000\002\001\001\000\002\001\001\000\002\001" + 715 "\001\000\002\001\001\000\020\033\314\034\316\043\047" + 716 "\044\211\045\051\046\050\074\315\001\001\000\002\001" + 717 "\001\000\002\001\001\000\002\001\001\000\020\033\314" + 718 "\034\316\043\047\044\211\045\051\046\050\074\320\001" + 719 "\001\000\002\001\001\000\002\001\001\000\002\001\001" + 720 "\000\002\001\001\000\002\001\001\000\004\104\326\001" + 721 "\001\000\006\025\331\100\006\001\001\000\002\001\001" + 722 "\000\002\001\001\000\004\075\333\001\001\000\020\020" + 723 "\334\034\336\043\047\044\211\045\051\046\050\076\335" + 724 "\001\001\000\002\001\001\000\002\001\001\000\002\001" + 725 "\001\000\002\001\001\000\020\020\334\034\336\043\047" + 726 "\044\211\045\051\046\050\076\340\001\001\000\002\001" + 727 "\001\000\002\001\001" }); 728 729 /** Access to <code>reduce_goto</code> table. */ 730 public short[][] reduce_table() {return _reduce_table;} 731 732 /** Instance of action encapsulation class. */ 733 protected CUP$Parser$actions action_obj; 734 735 /** Action encapsulation object initializer. */ 736 protected void init_actions() 737 { 738 action_obj = new CUP$Parser$actions(this); 739 } 740 741 /** Invoke a user supplied parse action. */ 742 public java_cup.runtime.Symbol do_action( 743 int act_num, 744 java_cup.runtime.lr_parser parser, 745 java.util.Stack stack, 746 int top) 747 throws java.lang.Exception 748 { 749 /* call code in generated class */ 750 return action_obj.CUP$Parser$do_action(act_num, parser, stack, top); 751 } 752 753 /** Indicates start state. */ 754 public int start_state() {return 0;} 755 /** Indicates start production. */ 756 public int start_production() {return 0;} 757 758 /** <code>EOF</code> Symbol index. */ 759 public int EOF_sym() {return 0;} 760 761 /** <code>error</code> Symbol index. */ 762 public int error_sym() {return 1;} 763 764 765 /** User initialization code. */ 766 public void user_init() throws java.lang.Exception 767 { 768 769 scanner.init(); 770 771 } 772 773 /** Scan to get the next Symbol. */ 774 public java_cup.runtime.Symbol scan() 775 throws java.lang.Exception 776 { 777 778 return scanner.next_token(); 779 780 } 781 782 783 // Generated from Parser.cup. 784 private Scanner scanner; 785 private String queryString; 786 Statement statement; 787 private FunTable funTable; 788 boolean strictValidation; 789 MdxParserValidator.QueryPartFactory factory; 790 791 /** 792 * Recursively parses an expression. 793 */ 794 Exp recursivelyParseExp(String s) 795 { 796 return new Parser().parseExpression( 797 factory, statement, s, false, funTable); 798 } 799 800 /** 801 * Parses a string to create a {@link Query}. 802 * Called only by {@link ConnectionBase#parseQuery}. 803 */ 804 public QueryPart parseInternal( 805 MdxParserValidator.QueryPartFactory factory, 806 Statement statement, 807 String queryString, 808 boolean debug, 809 FunTable funTable, 810 boolean strictValidation) 811 { 812 Symbol parse_tree; 813 this.factory = factory; 814 this.scanner = new StringScanner(queryString, debug); 815 this.statement = statement; 816 this.queryString = queryString; 817 this.funTable = funTable; 818 this.strictValidation = strictValidation; 819 try { 820 if (debug) { 821 parse_tree = debug_parse(); 822 } else { 823 parse_tree = parse(); 824 } 825 return (QueryPart) parse_tree.value; 826 } catch (Exception e) { 827 // "Error while parsing MDX statement '%1'" 828 throw MondrianResource.instance().WhileParsingMdx.ex( 829 queryString, e); 830 } finally { 831 this.scanner = null; 832 this.statement = null; 833 this.queryString = null; 834 this.funTable = null; 835 } 836 } 837 838 /** 839 * Parses a string to create an {@link Exp}. 840 * Called only by {@link ConnectionBase#parseExpression}. 841 */ 842 public Exp parseExpression( 843 MdxParserValidator.QueryPartFactory factory, 844 Statement statement, 845 String queryString, 846 boolean debug, 847 FunTable funTable) 848 { 849 this.factory = factory; 850 Symbol parse_tree = null; 851 this.scanner = new PrefixScanner( 852 debug, 853 new StringScanner(queryString, debug), 854 new int[] {ParserSym._VALUE_EXPRESSION}); 855 this.statement = statement; 856 this.queryString = queryString; 857 this.funTable = funTable; 858 try { 859 if (debug) { 860 parse_tree = debug_parse(); 861 } else { 862 parse_tree = parse(); 863 } 864 return (Exp) parse_tree.value; 865 } catch (Exception e) { 866 // "Syntax error while parsing MDX expression '%1'" 867 throw MondrianResource.instance().WhileParsingMdxExpression.ex( 868 queryString, e); 869 } finally { 870 this.scanner = null; 871 this.statement = null; 872 this.queryString = null; 873 this.funTable = null; 874 } 875 } 876 877 /** 878 * Scanner which returns a list of pre-programmed tokens, then switches 879 * to a parent scanner. 880 */ 881 private static class PrefixScanner extends Scanner { 882 private final Scanner parent; 883 private final int tokens[]; 884 private int i; 885 886 PrefixScanner(boolean debug, Scanner parent, int[] tokens) { 887 super(debug); 888 this.parent = parent; 889 this.tokens = tokens; 890 } 891 892 public void init() throws java.io.IOException { 893 i = 0; 894 parent.init(); 895 } 896 897 public Symbol next_token() throws java.io.IOException { 898 if (i < tokens.length) { 899 return new Symbol(tokens[i++], 0, 0, null); 900 } 901 return parent.next_token(); 902 } 903 904 void getLocation(Symbol symbol, int[] loc) { 905 parent.getLocation(symbol, loc); 906 } 907 } 908 909 public static class FactoryImpl 910 implements MdxParserValidator.QueryPartFactory 911 { 912 public Query makeQuery( 913 Statement statement, 914 Formula[] formulae, 915 QueryAxis[] axes, 916 String cube, 917 Exp slicer, 918 QueryPart[] cellProps, 919 boolean strictValidation) 920 { 921 final QueryAxis slicerAxis = 922 slicer == null 923 ? null 924 : new QueryAxis( 925 false, slicer, AxisOrdinal.StandardAxisOrdinal.SLICER, 926 QueryAxis.SubtotalVisibility.Undefined, new Id[0]); 927 return new Query( 928 statement, formulae, axes, cube, slicerAxis, cellProps, 929 strictValidation); 930 } 931 932 public DrillThrough makeDrillThrough( 933 Query query, 934 int maxRowCount, 935 int firstRowOrdinal, 936 List<Exp> returnList) 937 { 938 return new DrillThrough( 939 query, maxRowCount, firstRowOrdinal, returnList); 940 } 941 942 /** 943 * Creates an {@link Explain} object. 944 */ 945 public Explain makeExplain( 946 QueryPart query) 947 { 948 return new Explain(query); 949 } 950 } 951 952 // Override lr_parser methods for NLS. With this error handling scheme, 953 // all errors are fatal. 954 public void report_fatal_error( 955 String message, 956 Object info) 957 throws java.lang.Exception 958 { 959 done_parsing(); 960 try { 961 report_error(message, info); 962 } catch (Throwable e) { 963 // "MDX parser cannot recover from previous error(s)" 964 throw MondrianResource.instance().MdxFatalError.ex(e); 965 } 966 } 967 968 // override lr_parser method 969 public void report_error(String message, Object info) 970 { 971 // "Error: %1" 972 throw MondrianResource.instance().MdxError.ex(message); 973 } 974 975 // override lr_parser method 976 public void syntax_error(Symbol cur_token) 977 { 978 String s = cur_token.value.toString(); 979 if (cur_token.left != -1) { 980 int loc[] = new int[2]; 981 scanner.getLocation(cur_token, loc); 982 // "Syntax error at line %2, column %3, token '%1'" 983 throw MondrianResource.instance().MdxSyntaxErrorAt.ex( 984 s, Integer.toString(loc[0] + 1), Integer.toString(loc[1] + 1)); 985 } else { 986 // "Syntax error at token '%1'" 987 throw MondrianResource.instance().MdxSyntaxError.ex(s); 988 } 989 } 990 991 public void unrecovered_syntax_error(Symbol cur_token) 992 throws java.lang.Exception 993 { 994 // "Couldn't repair and continue parse" 995 String sFatalSyntaxError = 996 MondrianResource.instance().MdxFatalSyntaxError.str(); 997 report_fatal_error(sFatalSyntaxError, cur_token); 998 } 999 1000 /** 1001 * Returns whether the given identifier can possibly the name of an operator 1002 * with property syntax. 1003 * 1004 * <p>For example, <code>isFunCall("ORDINAL")</code> 1005 * returns true because there is a "<Level>.Ordinal" property.</p> 1006 */ 1007 protected boolean isFunCall(String s) { 1008 return funTable.isProperty(s); 1009 } 1010 1011 static Id[] toIdArray(List<Id> idList) { 1012 if (idList == null || idList.size() == 0) { 1013 return EmptyIdArray; 1014 } else { 1015 return idList.toArray(new Id[idList.size()]); 1016 } 1017 } 1018 1019 static Exp[] toExpArray(List<Exp> expList) { 1020 if (expList == null || expList.size() == 0) { 1021 return EmptyExpArray; 1022 } else { 1023 return expList.toArray(new Exp[expList.size()]); 1024 } 1025 } 1026 1027 static Formula[] toFormulaArray(List<Formula> formulaList) { 1028 if (formulaList == null || formulaList.size() == 0) { 1029 return EmptyFormulaArray; 1030 } else { 1031 return formulaList.toArray(new Formula[formulaList.size()]); 1032 } 1033 } 1034 1035 static MemberProperty[] toMemberPropertyArray(List<MemberProperty> mpList) { 1036 if (mpList == null || mpList.size() == 0) { 1037 return EmptyMemberPropertyArray; 1038 } else { 1039 return mpList.toArray(new MemberProperty[mpList.size()]); 1040 } 1041 } 1042 1043 static QueryPart[] toQueryPartArray(List<QueryPart> qpList) { 1044 if (qpList == null || qpList.size() == 0) { 1045 return EmptyQueryPartArray; 1046 } else { 1047 return qpList.toArray(new QueryPart[qpList.size()]); 1048 } 1049 } 1050 1051 static QueryAxis[] toQueryAxisArray(List<QueryAxis> qpList) { 1052 if (qpList == null || qpList.size() == 0) { 1053 return EmptyQueryAxisArray; 1054 } else { 1055 return qpList.toArray(new QueryAxis[qpList.size()]); 1056 } 1057 } 1058 1059 private static final MemberProperty[] EmptyMemberPropertyArray = 1060 new MemberProperty[0]; 1061 private static final Exp[] EmptyExpArray = new Exp[0]; 1062 private static final Formula[] EmptyFormulaArray = new Formula[0]; 1063 private static final Id[] EmptyIdArray = new Id[0]; 1064 private static final QueryPart[] EmptyQueryPartArray = new QueryPart[0]; 1065 private static final QueryAxis[] EmptyQueryAxisArray = new QueryAxis[0]; 1066 1067} 1068 1069/** Cup generated class to encapsulate user supplied action code.*/ 1070class CUP$Parser$actions { 1071 private final Parser parser; 1072 1073 /** Constructor */ 1074 CUP$Parser$actions(Parser parser) { 1075 this.parser = parser; 1076 } 1077 1078 /** Method with the actual generated action code. */ 1079 public final java_cup.runtime.Symbol CUP$Parser$do_action( 1080 int CUP$Parser$act_num, 1081 java_cup.runtime.lr_parser CUP$Parser$parser, 1082 java.util.Stack CUP$Parser$stack, 1083 int CUP$Parser$top) 1084 throws java.lang.Exception 1085 { 1086 /* Symbol object for return from actions */ 1087 java_cup.runtime.Symbol CUP$Parser$result; 1088 1089 /* select the action based on the action number */ 1090 switch (CUP$Parser$act_num) 1091 { 1092 /*. . . . . . . . . . . . . . . . . . . .*/ 1093 case 146: // explain_statement ::= EXPLAIN PLAN FOR select_or_drillthrough_statement 1094 { 1095 QueryPart RESULT = null; 1096 int sleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1097 int sright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1098 QueryPart s = (QueryPart)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1099 1100 RESULT = parser.factory.makeExplain( 1101 s); 1102 1103 CUP$Parser$result = new java_cup.runtime.Symbol(23/*explain_statement*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1104 } 1105 return CUP$Parser$result; 1106 1107 /*. . . . . . . . . . . . . . . . . . . .*/ 1108 case 145: // select_or_drillthrough_statement ::= drillthrough_statement 1109 { 1110 QueryPart RESULT = null; 1111 1112 // Default action for single-symbol production 1113 RESULT = (QueryPart)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 1114 CUP$Parser$result = new java_cup.runtime.Symbol(21/*select_or_drillthrough_statement*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1115 } 1116 return CUP$Parser$result; 1117 1118 /*. . . . . . . . . . . . . . . . . . . .*/ 1119 case 144: // select_or_drillthrough_statement ::= select_statement 1120 { 1121 QueryPart RESULT = null; 1122 1123 // Default action for single-symbol production 1124 RESULT = (Query)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 1125 CUP$Parser$result = new java_cup.runtime.Symbol(21/*select_or_drillthrough_statement*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1126 } 1127 return CUP$Parser$result; 1128 1129 /*. . . . . . . . . . . . . . . . . . . .*/ 1130 case 143: // return_item ::= compound_id 1131 { 1132 Exp RESULT = null; 1133 int ileft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1134 int iright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1135 Id i = (Id)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1136 1137 // Default action for single-symbol production 1138 RESULT = (Id)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 1139 CUP$Parser$result = new java_cup.runtime.Symbol(14/*return_item*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1140 } 1141 return CUP$Parser$result; 1142 1143 /*. . . . . . . . . . . . . . . . . . . .*/ 1144 case 142: // return_item_list ::= return_item COMMA return_item_list 1145 { 1146 List RESULT = null; 1147 int ileft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 1148 int iright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 1149 Exp i = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 1150 int listleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1151 int listright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1152 List list = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1153 1154 list.add(0, i); 1155 RESULT = list; 1156 1157 CUP$Parser$result = new java_cup.runtime.Symbol(60/*return_item_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1158 } 1159 return CUP$Parser$result; 1160 1161 /*. . . . . . . . . . . . . . . . . . . .*/ 1162 case 141: // return_item_list ::= return_item 1163 { 1164 List RESULT = null; 1165 int ileft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1166 int iright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1167 Exp i = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1168 1169 RESULT = new LinkedList(); 1170 RESULT.add(i); 1171 1172 CUP$Parser$result = new java_cup.runtime.Symbol(60/*return_item_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1173 } 1174 return CUP$Parser$result; 1175 1176 /*. . . . . . . . . . . . . . . . . . . .*/ 1177 case 140: // return_opt ::= 1178 { 1179 List RESULT = null; 1180 1181 RESULT = null; 1182 1183 CUP$Parser$result = new java_cup.runtime.Symbol(59/*return_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1184 } 1185 return CUP$Parser$result; 1186 1187 /*. . . . . . . . . . . . . . . . . . . .*/ 1188 case 139: // return_opt ::= RETURN return_item_list 1189 { 1190 List RESULT = null; 1191 int rlleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1192 int rlright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1193 List rl = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1194 1195 RESULT = rl; 1196 1197 CUP$Parser$result = new java_cup.runtime.Symbol(59/*return_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1198 } 1199 return CUP$Parser$result; 1200 1201 /*. . . . . . . . . . . . . . . . . . . .*/ 1202 case 138: // firstrowset_opt ::= 1203 { 1204 Number RESULT = null; 1205 1206 RESULT = null; 1207 1208 CUP$Parser$result = new java_cup.runtime.Symbol(66/*firstrowset_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1209 } 1210 return CUP$Parser$result; 1211 1212 /*. . . . . . . . . . . . . . . . . . . .*/ 1213 case 137: // firstrowset_opt ::= FIRSTROWSET NUMBER 1214 { 1215 Number RESULT = null; 1216 int nleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1217 int nright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1218 BigDecimal n = (BigDecimal)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1219 1220 RESULT = n; 1221 1222 CUP$Parser$result = new java_cup.runtime.Symbol(66/*firstrowset_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1223 } 1224 return CUP$Parser$result; 1225 1226 /*. . . . . . . . . . . . . . . . . . . .*/ 1227 case 136: // maxrows_opt ::= 1228 { 1229 Number RESULT = null; 1230 1231 RESULT = null; 1232 1233 CUP$Parser$result = new java_cup.runtime.Symbol(65/*maxrows_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1234 } 1235 return CUP$Parser$result; 1236 1237 /*. . . . . . . . . . . . . . . . . . . .*/ 1238 case 135: // maxrows_opt ::= MAXROWS NUMBER 1239 { 1240 Number RESULT = null; 1241 int nleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1242 int nright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1243 BigDecimal n = (BigDecimal)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1244 1245 RESULT = n; 1246 1247 CUP$Parser$result = new java_cup.runtime.Symbol(65/*maxrows_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1248 } 1249 return CUP$Parser$result; 1250 1251 /*. . . . . . . . . . . . . . . . . . . .*/ 1252 case 134: // drillthrough_statement ::= DRILLTHROUGH maxrows_opt firstrowset_opt select_statement return_opt 1253 { 1254 QueryPart RESULT = null; 1255 int mleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left; 1256 int mright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right; 1257 Number m = (Number)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value; 1258 int fleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 1259 int fright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 1260 Number f = (Number)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 1261 int sleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; 1262 int sright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; 1263 Query s = (Query)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; 1264 int rleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1265 int rright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1266 List r = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1267 1268 RESULT = parser.factory.makeDrillThrough( 1269 s, 1270 m == null ? 0 : m.intValue(), 1271 f == null ? 0 : f.intValue(), 1272 r); 1273 1274 CUP$Parser$result = new java_cup.runtime.Symbol(22/*drillthrough_statement*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1275 } 1276 return CUP$Parser$result; 1277 1278 /*. . . . . . . . . . . . . . . . . . . .*/ 1279 case 133: // cell_property ::= compound_id 1280 { 1281 Id RESULT = null; 1282 1283 // Default action for single-symbol production 1284 RESULT = (Id)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 1285 CUP$Parser$result = new java_cup.runtime.Symbol(25/*cell_property*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1286 } 1287 return CUP$Parser$result; 1288 1289 /*. . . . . . . . . . . . . . . . . . . .*/ 1290 case 132: // cell_property_list ::= cell_property COMMA cell_property_list 1291 { 1292 List RESULT = null; 1293 int pleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 1294 int pright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 1295 Id p = (Id)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 1296 int p1left = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1297 int p1right = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1298 List p1 = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1299 1300 p1.add(0, new CellProperty(p.getSegments())); 1301 RESULT = p1; 1302 1303 CUP$Parser$result = new java_cup.runtime.Symbol(58/*cell_property_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1304 } 1305 return CUP$Parser$result; 1306 1307 /*. . . . . . . . . . . . . . . . . . . .*/ 1308 case 131: // cell_property_list ::= cell_property 1309 { 1310 List RESULT = null; 1311 int pleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1312 int pright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1313 Id p = (Id)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1314 1315 RESULT = new LinkedList(); 1316 RESULT.add(new CellProperty(p.getSegments())); 1317 1318 CUP$Parser$result = new java_cup.runtime.Symbol(58/*cell_property_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1319 } 1320 return CUP$Parser$result; 1321 1322 /*. . . . . . . . . . . . . . . . . . . .*/ 1323 case 130: // cell_opt ::= CELL 1324 { 1325 Object RESULT = null; 1326 1327 // Default action for single-symbol production 1328 RESULT = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 1329 CUP$Parser$result = new java_cup.runtime.Symbol(42/*cell_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1330 } 1331 return CUP$Parser$result; 1332 1333 /*. . . . . . . . . . . . . . . . . . . .*/ 1334 case 129: // cell_opt ::= 1335 { 1336 Object RESULT = null; 1337 1338 CUP$Parser$result = new java_cup.runtime.Symbol(42/*cell_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1339 } 1340 return CUP$Parser$result; 1341 1342 /*. . . . . . . . . . . . . . . . . . . .*/ 1343 case 128: // cell_props ::= cell_opt PROPERTIES cell_property_list 1344 { 1345 List RESULT = null; 1346 int p1left = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1347 int p1right = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1348 List p1 = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1349 1350 RESULT = p1; 1351 1352 CUP$Parser$result = new java_cup.runtime.Symbol(48/*cell_props*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1353 } 1354 return CUP$Parser$result; 1355 1356 /*. . . . . . . . . . . . . . . . . . . .*/ 1357 case 127: // slicer_specification ::= expression 1358 { 1359 Exp RESULT = null; 1360 1361 // Default action for single-symbol production 1362 RESULT = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 1363 CUP$Parser$result = new java_cup.runtime.Symbol(8/*slicer_specification*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1364 } 1365 return CUP$Parser$result; 1366 1367 /*. . . . . . . . . . . . . . . . . . . .*/ 1368 case 126: // cube_specification ::= cube_name 1369 { 1370 Id RESULT = null; 1371 1372 // Default action for single-symbol production 1373 RESULT = (Id)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 1374 CUP$Parser$result = new java_cup.runtime.Symbol(28/*cube_specification*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1375 } 1376 return CUP$Parser$result; 1377 1378 /*. . . . . . . . . . . . . . . . . . . .*/ 1379 case 125: // property ::= compound_id 1380 { 1381 Object RESULT = null; 1382 1383 // Default action for single-symbol production 1384 RESULT = (Id)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 1385 CUP$Parser$result = new java_cup.runtime.Symbol(44/*property*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1386 } 1387 return CUP$Parser$result; 1388 1389 /*. . . . . . . . . . . . . . . . . . . .*/ 1390 case 124: // property_list ::= property COMMA property_list 1391 { 1392 List RESULT = null; 1393 int pleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 1394 int pright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 1395 Object p = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 1396 int plleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1397 int plright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1398 List pl = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1399 1400 pl.add(0, p); 1401 RESULT = pl; 1402 1403 CUP$Parser$result = new java_cup.runtime.Symbol(57/*property_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1404 } 1405 return CUP$Parser$result; 1406 1407 /*. . . . . . . . . . . . . . . . . . . .*/ 1408 case 123: // property_list ::= property 1409 { 1410 List RESULT = null; 1411 int pleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1412 int pright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1413 Object p = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1414 1415 RESULT = new LinkedList(); 1416 RESULT.add(p); 1417 1418 CUP$Parser$result = new java_cup.runtime.Symbol(57/*property_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1419 } 1420 return CUP$Parser$result; 1421 1422 /*. . . . . . . . . . . . . . . . . . . .*/ 1423 case 122: // dimension_opt ::= DIMENSION 1424 { 1425 Object RESULT = null; 1426 1427 // Default action for single-symbol production 1428 RESULT = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 1429 CUP$Parser$result = new java_cup.runtime.Symbol(43/*dimension_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1430 } 1431 return CUP$Parser$result; 1432 1433 /*. . . . . . . . . . . . . . . . . . . .*/ 1434 case 121: // dimension_opt ::= 1435 { 1436 Object RESULT = null; 1437 1438 CUP$Parser$result = new java_cup.runtime.Symbol(43/*dimension_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1439 } 1440 return CUP$Parser$result; 1441 1442 /*. . . . . . . . . . . . . . . . . . . .*/ 1443 case 120: // dim_props ::= dimension_opt PROPERTIES property_list 1444 { 1445 List RESULT = null; 1446 int plleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1447 int plright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1448 List pl = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1449 1450 RESULT = pl; 1451 1452 CUP$Parser$result = new java_cup.runtime.Symbol(51/*dim_props*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1453 } 1454 return CUP$Parser$result; 1455 1456 /*. . . . . . . . . . . . . . . . . . . .*/ 1457 case 119: // axis_number ::= AXIS LPAREN NUMBER RPAREN 1458 { 1459 BigDecimal RESULT = null; 1460 int nleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; 1461 int nright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; 1462 BigDecimal n = (BigDecimal)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; 1463 1464 RESULT = n; 1465 1466 CUP$Parser$result = new java_cup.runtime.Symbol(64/*axis_number*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1467 } 1468 return CUP$Parser$result; 1469 1470 /*. . . . . . . . . . . . . . . . . . . .*/ 1471 case 118: // axis_number ::= NUMBER 1472 { 1473 BigDecimal RESULT = null; 1474 1475 // Default action for single-symbol production 1476 RESULT = (BigDecimal)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 1477 CUP$Parser$result = new java_cup.runtime.Symbol(64/*axis_number*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1478 } 1479 return CUP$Parser$result; 1480 1481 /*. . . . . . . . . . . . . . . . . . . .*/ 1482 case 117: // axis_name ::= CHAPTERS 1483 { 1484 AxisOrdinal.StandardAxisOrdinal RESULT = null; 1485 1486 RESULT = AxisOrdinal.StandardAxisOrdinal.CHAPTERS; 1487 1488 CUP$Parser$result = new java_cup.runtime.Symbol(31/*axis_name*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1489 } 1490 return CUP$Parser$result; 1491 1492 /*. . . . . . . . . . . . . . . . . . . .*/ 1493 case 116: // axis_name ::= SECTIONS 1494 { 1495 AxisOrdinal.StandardAxisOrdinal RESULT = null; 1496 1497 RESULT = AxisOrdinal.StandardAxisOrdinal.SECTIONS; 1498 1499 CUP$Parser$result = new java_cup.runtime.Symbol(31/*axis_name*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1500 } 1501 return CUP$Parser$result; 1502 1503 /*. . . . . . . . . . . . . . . . . . . .*/ 1504 case 115: // axis_name ::= PAGES 1505 { 1506 AxisOrdinal.StandardAxisOrdinal RESULT = null; 1507 1508 RESULT = AxisOrdinal.StandardAxisOrdinal.PAGES; 1509 1510 CUP$Parser$result = new java_cup.runtime.Symbol(31/*axis_name*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1511 } 1512 return CUP$Parser$result; 1513 1514 /*. . . . . . . . . . . . . . . . . . . .*/ 1515 case 114: // axis_name ::= ROWS 1516 { 1517 AxisOrdinal.StandardAxisOrdinal RESULT = null; 1518 1519 RESULT = AxisOrdinal.StandardAxisOrdinal.ROWS; 1520 1521 CUP$Parser$result = new java_cup.runtime.Symbol(31/*axis_name*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1522 } 1523 return CUP$Parser$result; 1524 1525 /*. . . . . . . . . . . . . . . . . . . .*/ 1526 case 113: // axis_name ::= COLUMNS 1527 { 1528 AxisOrdinal.StandardAxisOrdinal RESULT = null; 1529 1530 RESULT = AxisOrdinal.StandardAxisOrdinal.COLUMNS; 1531 1532 CUP$Parser$result = new java_cup.runtime.Symbol(31/*axis_name*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1533 } 1534 return CUP$Parser$result; 1535 1536 /*. . . . . . . . . . . . . . . . . . . .*/ 1537 case 112: // dim_props_opt ::= dim_props 1538 { 1539 List RESULT = null; 1540 1541 // Default action for single-symbol production 1542 RESULT = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 1543 CUP$Parser$result = new java_cup.runtime.Symbol(52/*dim_props_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1544 } 1545 return CUP$Parser$result; 1546 1547 /*. . . . . . . . . . . . . . . . . . . .*/ 1548 case 111: // dim_props_opt ::= 1549 { 1550 List RESULT = null; 1551 1552 CUP$Parser$result = new java_cup.runtime.Symbol(52/*dim_props_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1553 } 1554 return CUP$Parser$result; 1555 1556 /*. . . . . . . . . . . . . . . . . . . .*/ 1557 case 110: // non_empty_opt ::= NON EMPTY 1558 { 1559 Boolean RESULT = null; 1560 1561 RESULT = Boolean.TRUE; 1562 1563 CUP$Parser$result = new java_cup.runtime.Symbol(45/*non_empty_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1564 } 1565 return CUP$Parser$result; 1566 1567 /*. . . . . . . . . . . . . . . . . . . .*/ 1568 case 109: // non_empty_opt ::= 1569 { 1570 Boolean RESULT = null; 1571 1572 RESULT = Boolean.FALSE; 1573 1574 CUP$Parser$result = new java_cup.runtime.Symbol(45/*non_empty_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1575 } 1576 return CUP$Parser$result; 1577 1578 /*. . . . . . . . . . . . . . . . . . . .*/ 1579 case 108: // axis_specification ::= non_empty_opt expression dim_props_opt ON axis_number 1580 { 1581 QueryAxis RESULT = null; 1582 int bleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left; 1583 int bright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).right; 1584 Boolean b = (Boolean)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-4)).value; 1585 int sleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left; 1586 int sright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right; 1587 Exp s = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value; 1588 int dpleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 1589 int dpright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 1590 List dp = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 1591 int nleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1592 int nright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1593 BigDecimal n = (BigDecimal)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1594 1595 double d = n.doubleValue(); 1596 int index = n.intValue(); 1597 1598 // AxisOrdinal values go from -2 to 4 for standard axis, but higher 1599 // ordinals are allowed. The negative values represent 1600 // special cases, so are ignored. 1601 if (index < 0 || index != d) { 1602 throw MondrianResource.instance().InvalidAxis.ex( 1603 d); 1604 } 1605 1606 AxisOrdinal axis = 1607 AxisOrdinal.StandardAxisOrdinal.forLogicalOrdinal(index); 1608 RESULT = 1609 new QueryAxis( 1610 b.booleanValue(), s, axis, 1611 QueryAxis.SubtotalVisibility.Undefined, 1612 Parser.toIdArray(dp)); 1613 1614 CUP$Parser$result = new java_cup.runtime.Symbol(1/*axis_specification*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1615 } 1616 return CUP$Parser$result; 1617 1618 /*. . . . . . . . . . . . . . . . . . . .*/ 1619 case 107: // axis_specification ::= non_empty_opt expression dim_props_opt ON axis_name 1620 { 1621 QueryAxis RESULT = null; 1622 int bleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left; 1623 int bright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).right; 1624 Boolean b = (Boolean)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-4)).value; 1625 int sleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left; 1626 int sright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right; 1627 Exp s = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value; 1628 int dpleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 1629 int dpright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 1630 List dp = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 1631 int aleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1632 int aright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1633 AxisOrdinal.StandardAxisOrdinal a = (AxisOrdinal.StandardAxisOrdinal)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1634 1635 RESULT = new QueryAxis( 1636 b.booleanValue(), s, a, 1637 QueryAxis.SubtotalVisibility.Undefined, 1638 Parser.toIdArray(dp)); 1639 1640 CUP$Parser$result = new java_cup.runtime.Symbol(1/*axis_specification*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1641 } 1642 return CUP$Parser$result; 1643 1644 /*. . . . . . . . . . . . . . . . . . . .*/ 1645 case 106: // set_name ::= compound_id 1646 { 1647 Id RESULT = null; 1648 1649 // Default action for single-symbol production 1650 RESULT = (Id)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 1651 CUP$Parser$result = new java_cup.runtime.Symbol(30/*set_name*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1652 } 1653 return CUP$Parser$result; 1654 1655 /*. . . . . . . . . . . . . . . . . . . .*/ 1656 case 105: // set_specification ::= SET set_name AS expression 1657 { 1658 Formula RESULT = null; 1659 int nleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 1660 int nright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 1661 Id n = (Id)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 1662 int eleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1663 int eright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1664 Exp e = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1665 1666 RESULT = new Formula(n, e); 1667 1668 CUP$Parser$result = new java_cup.runtime.Symbol(39/*set_specification*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1669 } 1670 return CUP$Parser$result; 1671 1672 /*. . . . . . . . . . . . . . . . . . . .*/ 1673 case 104: // set_specification ::= SET set_name AS FORMULA_STRING 1674 { 1675 Formula RESULT = null; 1676 int nleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 1677 int nright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 1678 Id n = (Id)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 1679 int sleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1680 int sright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1681 String s = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1682 1683 Exp e = parser.recursivelyParseExp(s); 1684 RESULT = new Formula(n, e); 1685 1686 CUP$Parser$result = new java_cup.runtime.Symbol(39/*set_specification*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1687 } 1688 return CUP$Parser$result; 1689 1690 /*. . . . . . . . . . . . . . . . . . . .*/ 1691 case 103: // member_property_definition ::= identifier EQ value_expression 1692 { 1693 MemberProperty RESULT = null; 1694 int idleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 1695 int idright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 1696 Id.NameSegment id = (Id.NameSegment)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 1697 int eleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1698 int eright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1699 Exp e = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1700 1701 RESULT = new MemberProperty(id.name, e); 1702 1703 CUP$Parser$result = new java_cup.runtime.Symbol(41/*member_property_definition*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1704 } 1705 return CUP$Parser$result; 1706 1707 /*. . . . . . . . . . . . . . . . . . . .*/ 1708 case 102: // member_name ::= compound_id 1709 { 1710 Id RESULT = null; 1711 1712 // Default action for single-symbol production 1713 RESULT = (Id)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 1714 CUP$Parser$result = new java_cup.runtime.Symbol(29/*member_name*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1715 } 1716 return CUP$Parser$result; 1717 1718 /*. . . . . . . . . . . . . . . . . . . .*/ 1719 case 101: // member_property_def_list ::= member_property_definition COMMA member_property_def_list 1720 { 1721 List RESULT = null; 1722 int hdleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 1723 int hdright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 1724 MemberProperty hd = (MemberProperty)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 1725 int tlleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1726 int tlright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1727 List tl = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1728 1729 RESULT = tl; 1730 RESULT.add(0, hd); 1731 1732 CUP$Parser$result = new java_cup.runtime.Symbol(56/*member_property_def_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1733 } 1734 return CUP$Parser$result; 1735 1736 /*. . . . . . . . . . . . . . . . . . . .*/ 1737 case 100: // member_property_def_list ::= member_property_definition 1738 { 1739 List RESULT = null; 1740 int mleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1741 int mright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1742 MemberProperty m = (MemberProperty)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1743 1744 RESULT = new LinkedList(); 1745 RESULT.add(m); 1746 1747 CUP$Parser$result = new java_cup.runtime.Symbol(56/*member_property_def_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1748 } 1749 return CUP$Parser$result; 1750 1751 /*. . . . . . . . . . . . . . . . . . . .*/ 1752 case 99: // comma_member_property_def_list_opt ::= COMMA member_property_def_list 1753 { 1754 List RESULT = null; 1755 int lleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1756 int lright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1757 List l = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1758 1759 RESULT = l; 1760 1761 CUP$Parser$result = new java_cup.runtime.Symbol(50/*comma_member_property_def_list_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1762 } 1763 return CUP$Parser$result; 1764 1765 /*. . . . . . . . . . . . . . . . . . . .*/ 1766 case 98: // comma_member_property_def_list_opt ::= 1767 { 1768 List RESULT = null; 1769 1770 RESULT = new LinkedList(); 1771 1772 CUP$Parser$result = new java_cup.runtime.Symbol(50/*comma_member_property_def_list_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1773 } 1774 return CUP$Parser$result; 1775 1776 /*. . . . . . . . . . . . . . . . . . . .*/ 1777 case 97: // member_specification ::= MEMBER member_name AS value_expression comma_member_property_def_list_opt 1778 { 1779 Formula RESULT = null; 1780 int mleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left; 1781 int mright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right; 1782 Id m = (Id)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value; 1783 int eleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; 1784 int eright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; 1785 Exp e = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; 1786 int lleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1787 int lright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1788 List l = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1789 1790 RESULT = new Formula( 1791 m, 1792 e, 1793 Parser.toMemberPropertyArray(l)); 1794 1795 CUP$Parser$result = new java_cup.runtime.Symbol(38/*member_specification*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1796 } 1797 return CUP$Parser$result; 1798 1799 /*. . . . . . . . . . . . . . . . . . . .*/ 1800 case 96: // member_specification ::= MEMBER member_name AS FORMULA_STRING comma_member_property_def_list_opt 1801 { 1802 Formula RESULT = null; 1803 int mleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left; 1804 int mright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right; 1805 Id m = (Id)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value; 1806 int sleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; 1807 int sright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; 1808 String s = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; 1809 int lleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1810 int lright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1811 List l = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1812 1813 Exp e = parser.recursivelyParseExp(s); 1814 RESULT = new Formula( 1815 m, 1816 e, 1817 Parser.toMemberPropertyArray(l)); 1818 1819 CUP$Parser$result = new java_cup.runtime.Symbol(38/*member_specification*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1820 } 1821 return CUP$Parser$result; 1822 1823 /*. . . . . . . . . . . . . . . . . . . .*/ 1824 case 95: // single_formula_specification ::= set_specification 1825 { 1826 Formula RESULT = null; 1827 1828 // Default action for single-symbol production 1829 RESULT = (Formula)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 1830 CUP$Parser$result = new java_cup.runtime.Symbol(40/*single_formula_specification*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1831 } 1832 return CUP$Parser$result; 1833 1834 /*. . . . . . . . . . . . . . . . . . . .*/ 1835 case 94: // single_formula_specification ::= member_specification 1836 { 1837 Formula RESULT = null; 1838 1839 // Default action for single-symbol production 1840 RESULT = (Formula)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 1841 CUP$Parser$result = new java_cup.runtime.Symbol(40/*single_formula_specification*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1842 } 1843 return CUP$Parser$result; 1844 1845 /*. . . . . . . . . . . . . . . . . . . .*/ 1846 case 93: // formula_specification ::= single_formula_specification formula_specification 1847 { 1848 List RESULT = null; 1849 int hdleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; 1850 int hdright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; 1851 Formula hd = (Formula)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; 1852 int tlleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1853 int tlright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1854 List tl = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1855 1856 tl.add(0, hd); 1857 RESULT = tl; 1858 1859 CUP$Parser$result = new java_cup.runtime.Symbol(55/*formula_specification*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1860 } 1861 return CUP$Parser$result; 1862 1863 /*. . . . . . . . . . . . . . . . . . . .*/ 1864 case 92: // formula_specification ::= single_formula_specification 1865 { 1866 List RESULT = null; 1867 int eleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1868 int eright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1869 Formula e = (Formula)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1870 1871 RESULT = new LinkedList(); 1872 RESULT.add(e); 1873 1874 CUP$Parser$result = new java_cup.runtime.Symbol(55/*formula_specification*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1875 } 1876 return CUP$Parser$result; 1877 1878 /*. . . . . . . . . . . . . . . . . . . .*/ 1879 case 91: // cell_props_opt ::= cell_props 1880 { 1881 List RESULT = null; 1882 1883 // Default action for single-symbol production 1884 RESULT = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 1885 CUP$Parser$result = new java_cup.runtime.Symbol(49/*cell_props_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1886 } 1887 return CUP$Parser$result; 1888 1889 /*. . . . . . . . . . . . . . . . . . . .*/ 1890 case 90: // cell_props_opt ::= 1891 { 1892 List RESULT = null; 1893 1894 RESULT = new LinkedList(); 1895 1896 CUP$Parser$result = new java_cup.runtime.Symbol(49/*cell_props_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1897 } 1898 return CUP$Parser$result; 1899 1900 /*. . . . . . . . . . . . . . . . . . . .*/ 1901 case 89: // where_clause_opt ::= WHERE slicer_specification 1902 { 1903 Exp RESULT = null; 1904 int sleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1905 int sright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1906 Exp s = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1907 1908 RESULT = s; 1909 1910 CUP$Parser$result = new java_cup.runtime.Symbol(18/*where_clause_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1911 } 1912 return CUP$Parser$result; 1913 1914 /*. . . . . . . . . . . . . . . . . . . .*/ 1915 case 88: // where_clause_opt ::= 1916 { 1917 Exp RESULT = null; 1918 1919 CUP$Parser$result = new java_cup.runtime.Symbol(18/*where_clause_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1920 } 1921 return CUP$Parser$result; 1922 1923 /*. . . . . . . . . . . . . . . . . . . .*/ 1924 case 87: // axis_specification_list ::= axis_specification COMMA axis_specification_list 1925 { 1926 List RESULT = null; 1927 int eleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 1928 int eright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 1929 QueryAxis e = (QueryAxis)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 1930 int listleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1931 int listright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1932 List list = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1933 1934 list.add(0, e); 1935 RESULT = list; 1936 1937 CUP$Parser$result = new java_cup.runtime.Symbol(46/*axis_specification_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1938 } 1939 return CUP$Parser$result; 1940 1941 /*. . . . . . . . . . . . . . . . . . . .*/ 1942 case 86: // axis_specification_list ::= axis_specification 1943 { 1944 List RESULT = null; 1945 int ileft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1946 int iright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1947 QueryAxis i = (QueryAxis)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1948 1949 RESULT = new LinkedList(); 1950 RESULT.add(i); 1951 1952 CUP$Parser$result = new java_cup.runtime.Symbol(46/*axis_specification_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1953 } 1954 return CUP$Parser$result; 1955 1956 /*. . . . . . . . . . . . . . . . . . . .*/ 1957 case 85: // axis_specification_list_opt ::= axis_specification_list 1958 { 1959 List RESULT = null; 1960 1961 // Default action for single-symbol production 1962 RESULT = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 1963 CUP$Parser$result = new java_cup.runtime.Symbol(47/*axis_specification_list_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1964 } 1965 return CUP$Parser$result; 1966 1967 /*. . . . . . . . . . . . . . . . . . . .*/ 1968 case 84: // axis_specification_list_opt ::= 1969 { 1970 List RESULT = null; 1971 1972 RESULT = new LinkedList(); 1973 1974 CUP$Parser$result = new java_cup.runtime.Symbol(47/*axis_specification_list_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1975 } 1976 return CUP$Parser$result; 1977 1978 /*. . . . . . . . . . . . . . . . . . . .*/ 1979 case 83: // with_formula_specification_opt ::= WITH formula_specification 1980 { 1981 List RESULT = null; 1982 int fleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 1983 int fright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 1984 List f = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 1985 1986 RESULT = f; 1987 1988 CUP$Parser$result = new java_cup.runtime.Symbol(62/*with_formula_specification_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 1989 } 1990 return CUP$Parser$result; 1991 1992 /*. . . . . . . . . . . . . . . . . . . .*/ 1993 case 82: // with_formula_specification_opt ::= 1994 { 1995 List RESULT = null; 1996 1997 RESULT = new LinkedList(); 1998 1999 CUP$Parser$result = new java_cup.runtime.Symbol(62/*with_formula_specification_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2000 } 2001 return CUP$Parser$result; 2002 2003 /*. . . . . . . . . . . . . . . . . . . .*/ 2004 case 81: // select_statement ::= with_formula_specification_opt SELECT axis_specification_list_opt FROM cube_specification where_clause_opt cell_props_opt 2005 { 2006 Query RESULT = null; 2007 int fleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-6)).left; 2008 int fright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-6)).right; 2009 List f = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-6)).value; 2010 int aleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left; 2011 int aright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).right; 2012 List a = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-4)).value; 2013 int cleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 2014 int cright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 2015 Id c = (Id)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 2016 int wleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; 2017 int wright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; 2018 Exp w = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; 2019 int cpleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2020 int cpright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2021 List cp = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2022 2023 Parser parser = (Parser) CUP$Parser$parser; 2024 // We want 'Sales', not '[Sales]', and can't handle 'Schema.Sales' 2025 // yet. 2026 String cubeName = ((Id.NameSegment) c.getElement(0)).name; 2027 RESULT = parser.factory.makeQuery( 2028 parser.statement, 2029 Parser.toFormulaArray(f), 2030 Parser.toQueryAxisArray(a), 2031 cubeName, 2032 w, 2033 Parser.toQueryPartArray(cp), 2034 parser.strictValidation); 2035 2036 CUP$Parser$result = new java_cup.runtime.Symbol(19/*select_statement*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-6)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2037 } 2038 return CUP$Parser$result; 2039 2040 /*. . . . . . . . . . . . . . . . . . . .*/ 2041 case 80: // statement ::= _VALUE_EXPRESSION expression 2042 { 2043 QueryPart RESULT = null; 2044 int eleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2045 int eright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2046 Exp e = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2047 2048 RESULT = (QueryPart) e; 2049 2050 CUP$Parser$result = new java_cup.runtime.Symbol(20/*statement*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2051 } 2052 return CUP$Parser$result; 2053 2054 /*. . . . . . . . . . . . . . . . . . . .*/ 2055 case 79: // statement ::= explain_statement 2056 { 2057 QueryPart RESULT = null; 2058 2059 // Default action for single-symbol production 2060 RESULT = (QueryPart)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 2061 CUP$Parser$result = new java_cup.runtime.Symbol(20/*statement*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2062 } 2063 return CUP$Parser$result; 2064 2065 /*. . . . . . . . . . . . . . . . . . . .*/ 2066 case 78: // statement ::= drillthrough_statement 2067 { 2068 QueryPart RESULT = null; 2069 2070 // Default action for single-symbol production 2071 RESULT = (QueryPart)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 2072 CUP$Parser$result = new java_cup.runtime.Symbol(20/*statement*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2073 } 2074 return CUP$Parser$result; 2075 2076 /*. . . . . . . . . . . . . . . . . . . .*/ 2077 case 77: // statement ::= select_statement 2078 { 2079 QueryPart RESULT = null; 2080 2081 // Default action for single-symbol production 2082 RESULT = (Query)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 2083 CUP$Parser$result = new java_cup.runtime.Symbol(20/*statement*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2084 } 2085 return CUP$Parser$result; 2086 2087 /*. . . . . . . . . . . . . . . . . . . .*/ 2088 case 76: // aliasedExpression ::= expression AS identifier 2089 { 2090 UnresolvedFunCall RESULT = null; 2091 int xleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 2092 int xright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 2093 Exp x = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 2094 int ileft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2095 int iright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2096 Id.NameSegment i = (Id.NameSegment)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2097 2098 Id id = new Id(i); 2099 RESULT = 2100 new UnresolvedFunCall("AS", Syntax.Infix, new Exp[] {x, id}); 2101 2102 CUP$Parser$result = new java_cup.runtime.Symbol(2/*aliasedExpression*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2103 } 2104 return CUP$Parser$result; 2105 2106 /*. . . . . . . . . . . . . . . . . . . .*/ 2107 case 75: // exp_list ::= expression_or_empty COMMA exp_list 2108 { 2109 List RESULT = null; 2110 int eleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 2111 int eright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 2112 Exp e = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 2113 int listleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2114 int listright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2115 List list = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2116 2117 list.add(0, e); RESULT = list; 2118 2119 CUP$Parser$result = new java_cup.runtime.Symbol(53/*exp_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2120 } 2121 return CUP$Parser$result; 2122 2123 /*. . . . . . . . . . . . . . . . . . . .*/ 2124 case 74: // exp_list ::= expression 2125 { 2126 List RESULT = null; 2127 int eleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2128 int eright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2129 Exp e = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2130 2131 RESULT = new LinkedList(); 2132 RESULT.add(e); 2133 2134 CUP$Parser$result = new java_cup.runtime.Symbol(53/*exp_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2135 } 2136 return CUP$Parser$result; 2137 2138 /*. . . . . . . . . . . . . . . . . . . .*/ 2139 case 73: // exp_list_opt ::= exp_list 2140 { 2141 List RESULT = null; 2142 2143 // Default action for single-symbol production 2144 RESULT = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 2145 CUP$Parser$result = new java_cup.runtime.Symbol(54/*exp_list_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2146 } 2147 return CUP$Parser$result; 2148 2149 /*. . . . . . . . . . . . . . . . . . . .*/ 2150 case 72: // exp_list_opt ::= 2151 { 2152 List RESULT = null; 2153 2154 RESULT = new LinkedList(); 2155 2156 CUP$Parser$result = new java_cup.runtime.Symbol(54/*exp_list_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2157 } 2158 return CUP$Parser$result; 2159 2160 /*. . . . . . . . . . . . . . . . . . . .*/ 2161 case 71: // expression_or_empty ::= 2162 { 2163 Exp RESULT = null; 2164 2165 RESULT = new UnresolvedFunCall("", Syntax.Empty, new Exp[] {}); 2166 2167 CUP$Parser$result = new java_cup.runtime.Symbol(6/*expression_or_empty*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2168 } 2169 return CUP$Parser$result; 2170 2171 /*. . . . . . . . . . . . . . . . . . . .*/ 2172 case 70: // expression_or_empty ::= expression 2173 { 2174 Exp RESULT = null; 2175 2176 // Default action for single-symbol production 2177 RESULT = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 2178 CUP$Parser$result = new java_cup.runtime.Symbol(6/*expression_or_empty*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2179 } 2180 return CUP$Parser$result; 2181 2182 /*. . . . . . . . . . . . . . . . . . . .*/ 2183 case 69: // expression ::= value_expression 2184 { 2185 Exp RESULT = null; 2186 2187 // Default action for single-symbol production 2188 RESULT = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 2189 CUP$Parser$result = new java_cup.runtime.Symbol(5/*expression*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2190 } 2191 return CUP$Parser$result; 2192 2193 /*. . . . . . . . . . . . . . . . . . . .*/ 2194 case 68: // expression ::= aliasedExpression 2195 { 2196 Exp RESULT = null; 2197 2198 // Default action for single-symbol production 2199 RESULT = (UnresolvedFunCall)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 2200 CUP$Parser$result = new java_cup.runtime.Symbol(5/*expression*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2201 } 2202 return CUP$Parser$result; 2203 2204 /*. . . . . . . . . . . . . . . . . . . .*/ 2205 case 67: // expression ::= expression COLON value_expression 2206 { 2207 Exp RESULT = null; 2208 int xleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 2209 int xright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 2210 Exp x = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 2211 int yleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2212 int yright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2213 Exp y = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2214 // range yields set 2215 RESULT = new UnresolvedFunCall(":", Syntax.Infix, new Exp[] {x, y}); 2216 2217 CUP$Parser$result = new java_cup.runtime.Symbol(5/*expression*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2218 } 2219 return CUP$Parser$result; 2220 2221 /*. . . . . . . . . . . . . . . . . . . .*/ 2222 case 66: // comp_op ::= GE 2223 { 2224 String RESULT = null; 2225 2226 RESULT = ">="; 2227 2228 CUP$Parser$result = new java_cup.runtime.Symbol(32/*comp_op*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2229 } 2230 return CUP$Parser$result; 2231 2232 /*. . . . . . . . . . . . . . . . . . . .*/ 2233 case 65: // comp_op ::= LE 2234 { 2235 String RESULT = null; 2236 2237 RESULT = "<="; 2238 2239 CUP$Parser$result = new java_cup.runtime.Symbol(32/*comp_op*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2240 } 2241 return CUP$Parser$result; 2242 2243 /*. . . . . . . . . . . . . . . . . . . .*/ 2244 case 64: // comp_op ::= GT 2245 { 2246 String RESULT = null; 2247 2248 RESULT = ">"; 2249 2250 CUP$Parser$result = new java_cup.runtime.Symbol(32/*comp_op*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2251 } 2252 return CUP$Parser$result; 2253 2254 /*. . . . . . . . . . . . . . . . . . . .*/ 2255 case 63: // comp_op ::= LT 2256 { 2257 String RESULT = null; 2258 2259 RESULT = "<"; 2260 2261 CUP$Parser$result = new java_cup.runtime.Symbol(32/*comp_op*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2262 } 2263 return CUP$Parser$result; 2264 2265 /*. . . . . . . . . . . . . . . . . . . .*/ 2266 case 62: // comp_op ::= NE 2267 { 2268 String RESULT = null; 2269 2270 RESULT = "<>"; 2271 2272 CUP$Parser$result = new java_cup.runtime.Symbol(32/*comp_op*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2273 } 2274 return CUP$Parser$result; 2275 2276 /*. . . . . . . . . . . . . . . . . . . .*/ 2277 case 61: // comp_op ::= EQ 2278 { 2279 String RESULT = null; 2280 2281 RESULT = "="; 2282 2283 CUP$Parser$result = new java_cup.runtime.Symbol(32/*comp_op*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2284 } 2285 return CUP$Parser$result; 2286 2287 /*. . . . . . . . . . . . . . . . . . . .*/ 2288 case 60: // else_clause_opt ::= ELSE value_expression 2289 { 2290 Exp RESULT = null; 2291 int xleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2292 int xright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2293 Exp x = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2294 2295 RESULT = x; 2296 2297 CUP$Parser$result = new java_cup.runtime.Symbol(4/*else_clause_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2298 } 2299 return CUP$Parser$result; 2300 2301 /*. . . . . . . . . . . . . . . . . . . .*/ 2302 case 59: // else_clause_opt ::= 2303 { 2304 Exp RESULT = null; 2305 2306 CUP$Parser$result = new java_cup.runtime.Symbol(4/*else_clause_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2307 } 2308 return CUP$Parser$result; 2309 2310 /*. . . . . . . . . . . . . . . . . . . .*/ 2311 case 58: // when_clause ::= WHEN value_expression THEN value_expression 2312 { 2313 Exp[] RESULT = null; 2314 int xleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 2315 int xright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 2316 Exp x = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 2317 int yleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2318 int yright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2319 Exp y = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2320 2321 RESULT = new Exp[] {x, y}; 2322 2323 CUP$Parser$result = new java_cup.runtime.Symbol(63/*when_clause*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2324 } 2325 return CUP$Parser$result; 2326 2327 /*. . . . . . . . . . . . . . . . . . . .*/ 2328 case 57: // when_list ::= when_list when_clause 2329 { 2330 List RESULT = null; 2331 int xleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; 2332 int xright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; 2333 List x = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; 2334 int yleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2335 int yright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2336 Exp[] y = (Exp[])((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2337 2338 RESULT = x; 2339 x.add(y); 2340 2341 CUP$Parser$result = new java_cup.runtime.Symbol(61/*when_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2342 } 2343 return CUP$Parser$result; 2344 2345 /*. . . . . . . . . . . . . . . . . . . .*/ 2346 case 56: // when_list ::= 2347 { 2348 List RESULT = null; 2349 2350 RESULT = new ArrayList(); 2351 2352 CUP$Parser$result = new java_cup.runtime.Symbol(61/*when_list*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2353 } 2354 return CUP$Parser$result; 2355 2356 /*. . . . . . . . . . . . . . . . . . . .*/ 2357 case 55: // value_expression_opt ::= value_expression 2358 { 2359 Exp RESULT = null; 2360 2361 // Default action for single-symbol production 2362 RESULT = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 2363 CUP$Parser$result = new java_cup.runtime.Symbol(16/*value_expression_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2364 } 2365 return CUP$Parser$result; 2366 2367 /*. . . . . . . . . . . . . . . . . . . .*/ 2368 case 54: // value_expression_opt ::= 2369 { 2370 Exp RESULT = null; 2371 2372 CUP$Parser$result = new java_cup.runtime.Symbol(16/*value_expression_opt*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2373 } 2374 return CUP$Parser$result; 2375 2376 /*. . . . . . . . . . . . . . . . . . . .*/ 2377 case 53: // case_expression ::= CASE value_expression_opt when_list else_clause_opt END 2378 { 2379 Exp RESULT = null; 2380 int xleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left; 2381 int xright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right; 2382 Exp x = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value; 2383 int yleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 2384 int yright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 2385 List y = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 2386 int zleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; 2387 int zright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; 2388 Exp z = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; 2389 2390 List v = new ArrayList(); 2391 if (x != null) { 2392 v.add(x); 2393 } 2394 for (int i = 0; i < y.size(); i++) { 2395 Exp[] exps = (Exp[]) y.get(i); 2396 Util.assertTrue(exps.length == 2); 2397 v.add(exps[0]); 2398 v.add(exps[1]); 2399 } 2400 if (z != null) { 2401 v.add(z); 2402 } 2403 if (x == null) { 2404 RESULT = new UnresolvedFunCall( 2405 "_CaseTest", Syntax.Case, Parser.toExpArray(v)); 2406 } else { 2407 RESULT = new UnresolvedFunCall( 2408 "_CaseMatch", Syntax.Case, Parser.toExpArray(v)); 2409 } 2410 2411 CUP$Parser$result = new java_cup.runtime.Symbol(3/*case_expression*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-4)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2412 } 2413 return CUP$Parser$result; 2414 2415 /*. . . . . . . . . . . . . . . . . . . .*/ 2416 case 52: // value_expression_primary ::= case_expression 2417 { 2418 Exp RESULT = null; 2419 2420 // Default action for single-symbol production 2421 RESULT = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 2422 CUP$Parser$result = new java_cup.runtime.Symbol(17/*value_expression_primary*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2423 } 2424 return CUP$Parser$result; 2425 2426 /*. . . . . . . . . . . . . . . . . . . .*/ 2427 case 51: // value_expression_primary ::= NULL 2428 { 2429 Exp RESULT = null; 2430 2431 RESULT = Literal.nullValue; 2432 2433 CUP$Parser$result = new java_cup.runtime.Symbol(17/*value_expression_primary*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2434 } 2435 return CUP$Parser$result; 2436 2437 /*. . . . . . . . . . . . . . . . . . . .*/ 2438 case 50: // value_expression_primary ::= LBRACE exp_list_opt RBRACE 2439 { 2440 Exp RESULT = null; 2441 int lisleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; 2442 int lisright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; 2443 List lis = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; 2444 // set built from sets/tuples 2445 RESULT = new UnresolvedFunCall( 2446 "{}", Syntax.Braces, Parser.toExpArray(lis)); 2447 2448 CUP$Parser$result = new java_cup.runtime.Symbol(17/*value_expression_primary*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2449 } 2450 return CUP$Parser$result; 2451 2452 /*. . . . . . . . . . . . . . . . . . . .*/ 2453 case 49: // value_expression_primary ::= LPAREN exp_list RPAREN 2454 { 2455 Exp RESULT = null; 2456 int lisleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; 2457 int lisright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; 2458 List lis = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; 2459 2460 // Whereas ([Sales],[Time]) and () are tuples, ([Sales]) and (5) 2461 // are just expressions. 2462 RESULT = new UnresolvedFunCall( 2463 "()", Syntax.Parentheses, Parser.toExpArray(lis)); 2464 2465 CUP$Parser$result = new java_cup.runtime.Symbol(17/*value_expression_primary*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2466 } 2467 return CUP$Parser$result; 2468 2469 /*. . . . . . . . . . . . . . . . . . . .*/ 2470 case 48: // value_expression_primary ::= CAST LPAREN aliasedExpression RPAREN 2471 { 2472 Exp RESULT = null; 2473 int aeleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; 2474 int aeright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; 2475 UnresolvedFunCall ae = (UnresolvedFunCall)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; 2476 2477 assert ae.getArgCount() == 2; 2478 Exp e = ae.getArg(0); 2479 Id.NameSegment t = (Id.NameSegment) ((Id) ae.getArg(1)).getSegments().get(0); 2480 RESULT = new UnresolvedFunCall( 2481 "CAST", Syntax.Cast, new Exp[] { 2482 e, 2483 Literal.createSymbol(t.name)}); 2484 2485 CUP$Parser$result = new java_cup.runtime.Symbol(17/*value_expression_primary*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2486 } 2487 return CUP$Parser$result; 2488 2489 /*. . . . . . . . . . . . . . . . . . . .*/ 2490 case 47: // value_expression_primary ::= bang_compound_id LPAREN exp_list_opt RPAREN 2491 { 2492 Exp RESULT = null; 2493 int ileft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left; 2494 int iright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right; 2495 Id i = (Id)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value; 2496 int lisleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; 2497 int lisright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; 2498 List lis = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; 2499 2500 RESULT = new UnresolvedFunCall( 2501 ((Id.NameSegment) Util.last(i.getSegments())).name, 2502 Syntax.Function, Parser.toExpArray(lis)); 2503 2504 CUP$Parser$result = new java_cup.runtime.Symbol(17/*value_expression_primary*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2505 } 2506 return CUP$Parser$result; 2507 2508 /*. . . . . . . . . . . . . . . . . . . .*/ 2509 case 46: // value_expression_primary ::= value_expression_primary DOT identifier LPAREN exp_list_opt RPAREN 2510 { 2511 Exp RESULT = null; 2512 int ileft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).left; 2513 int iright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).right; 2514 Exp i = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-5)).value; 2515 int jleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left; 2516 int jright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right; 2517 Id.NameSegment j = (Id.NameSegment)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value; 2518 int lisleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; 2519 int lisright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; 2520 List lis = (List)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; 2521 2522 lis.add(0, i); 2523 RESULT = new UnresolvedFunCall( 2524 j.name, Syntax.Method, Parser.toExpArray(lis)); 2525 2526 CUP$Parser$result = new java_cup.runtime.Symbol(17/*value_expression_primary*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-5)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2527 } 2528 return CUP$Parser$result; 2529 2530 /*. . . . . . . . . . . . . . . . . . . .*/ 2531 case 45: // value_expression_primary ::= value_expression_primary DOT amp_quoted_identifier 2532 { 2533 Exp RESULT = null; 2534 int ileft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 2535 int iright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 2536 Exp i = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 2537 int jleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2538 int jright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2539 Id.NameSegment j = (Id.NameSegment)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2540 2541 if (i instanceof Id) { 2542 RESULT = ((Id) i).append(j); 2543 } else { 2544 RESULT = new UnresolvedFunCall( 2545 j.name, Syntax.AmpersandQuotedProperty, new Exp[] {i}); 2546 } 2547 2548 CUP$Parser$result = new java_cup.runtime.Symbol(17/*value_expression_primary*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2549 } 2550 return CUP$Parser$result; 2551 2552 /*. . . . . . . . . . . . . . . . . . . .*/ 2553 case 44: // value_expression_primary ::= value_expression_primary DOT quoted_identifier 2554 { 2555 Exp RESULT = null; 2556 int ileft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 2557 int iright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 2558 Exp i = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 2559 int jleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2560 int jright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2561 Id.NameSegment j = (Id.NameSegment)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2562 2563 if (i instanceof Id) { 2564 RESULT = ((Id) i).append(j); 2565 } else { 2566 RESULT = new UnresolvedFunCall( 2567 j.name, Syntax.QuotedProperty, new Exp[] {i}); 2568 } 2569 2570 CUP$Parser$result = new java_cup.runtime.Symbol(17/*value_expression_primary*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2571 } 2572 return CUP$Parser$result; 2573 2574 /*. . . . . . . . . . . . . . . . . . . .*/ 2575 case 43: // value_expression_primary ::= value_expression_primary DOT unquoted_identifier 2576 { 2577 Exp RESULT = null; 2578 int ileft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 2579 int iright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 2580 Exp i = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 2581 int jleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2582 int jright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2583 Id.NameSegment j = (Id.NameSegment)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2584 2585 if (i instanceof Id && !parser.isFunCall(j.name)) { 2586 RESULT = ((Id) i).append(j); 2587 } else { 2588 RESULT = 2589 new UnresolvedFunCall( 2590 j.name, Syntax.Property, new Exp[] {i}); 2591 } 2592 2593 CUP$Parser$result = new java_cup.runtime.Symbol(17/*value_expression_primary*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2594 } 2595 return CUP$Parser$result; 2596 2597 /*. . . . . . . . . . . . . . . . . . . .*/ 2598 case 42: // value_expression_primary ::= identifier 2599 { 2600 Exp RESULT = null; 2601 int ileft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2602 int iright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2603 Id.NameSegment i = (Id.NameSegment)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2604 2605 RESULT = new Id(i); 2606 2607 CUP$Parser$result = new java_cup.runtime.Symbol(17/*value_expression_primary*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2608 } 2609 return CUP$Parser$result; 2610 2611 /*. . . . . . . . . . . . . . . . . . . .*/ 2612 case 41: // value_expression_primary ::= NUMBER 2613 { 2614 Exp RESULT = null; 2615 int dleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2616 int dright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2617 BigDecimal d = (BigDecimal)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2618 2619 RESULT = Literal.create(d); 2620 2621 CUP$Parser$result = new java_cup.runtime.Symbol(17/*value_expression_primary*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2622 } 2623 return CUP$Parser$result; 2624 2625 /*. . . . . . . . . . . . . . . . . . . .*/ 2626 case 40: // value_expression_primary ::= STRING 2627 { 2628 Exp RESULT = null; 2629 int sleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2630 int sright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2631 String s = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2632 2633 RESULT = Literal.createString(s); 2634 2635 CUP$Parser$result = new java_cup.runtime.Symbol(17/*value_expression_primary*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2636 } 2637 return CUP$Parser$result; 2638 2639 /*. . . . . . . . . . . . . . . . . . . .*/ 2640 case 39: // factor ::= MINUS value_expression_primary 2641 { 2642 Exp RESULT = null; 2643 int pleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2644 int pright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2645 Exp p = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2646 2647 RESULT = new UnresolvedFunCall("-", Syntax.Prefix, new Exp[] {p}); 2648 2649 CUP$Parser$result = new java_cup.runtime.Symbol(7/*factor*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2650 } 2651 return CUP$Parser$result; 2652 2653 /*. . . . . . . . . . . . . . . . . . . .*/ 2654 case 38: // factor ::= PLUS value_expression_primary 2655 { 2656 Exp RESULT = null; 2657 int pleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2658 int pright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2659 Exp p = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2660 2661 RESULT = p; 2662 2663 CUP$Parser$result = new java_cup.runtime.Symbol(7/*factor*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2664 } 2665 return CUP$Parser$result; 2666 2667 /*. . . . . . . . . . . . . . . . . . . .*/ 2668 case 37: // factor ::= value_expression_primary 2669 { 2670 Exp RESULT = null; 2671 2672 // Default action for single-symbol production 2673 RESULT = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 2674 CUP$Parser$result = new java_cup.runtime.Symbol(7/*factor*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2675 } 2676 return CUP$Parser$result; 2677 2678 /*. . . . . . . . . . . . . . . . . . . .*/ 2679 case 36: // term ::= term SOLIDUS factor 2680 { 2681 Exp RESULT = null; 2682 int xleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 2683 int xright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 2684 Exp x = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 2685 int yleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2686 int yright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2687 Exp y = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2688 2689 RESULT = new UnresolvedFunCall("/", Syntax.Infix, new Exp[] {x, y}); 2690 2691 CUP$Parser$result = new java_cup.runtime.Symbol(9/*term*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2692 } 2693 return CUP$Parser$result; 2694 2695 /*. . . . . . . . . . . . . . . . . . . .*/ 2696 case 35: // term ::= term ASTERISK factor 2697 { 2698 Exp RESULT = null; 2699 int xleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 2700 int xright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 2701 Exp x = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 2702 int yleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2703 int yright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2704 Exp y = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2705 2706 RESULT = new UnresolvedFunCall("*", Syntax.Infix, new Exp[] {x, y}); 2707 2708 CUP$Parser$result = new java_cup.runtime.Symbol(9/*term*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2709 } 2710 return CUP$Parser$result; 2711 2712 /*. . . . . . . . . . . . . . . . . . . .*/ 2713 case 34: // term ::= factor 2714 { 2715 Exp RESULT = null; 2716 2717 // Default action for single-symbol production 2718 RESULT = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 2719 CUP$Parser$result = new java_cup.runtime.Symbol(9/*term*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2720 } 2721 return CUP$Parser$result; 2722 2723 /*. . . . . . . . . . . . . . . . . . . .*/ 2724 case 33: // term2 ::= term2 CONCAT term 2725 { 2726 Exp RESULT = null; 2727 int xleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 2728 int xright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 2729 Exp x = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 2730 int yleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2731 int yright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2732 Exp y = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2733 2734 RESULT = 2735 new UnresolvedFunCall("||", Syntax.Infix, new Exp[] {x, y}); 2736 2737 CUP$Parser$result = new java_cup.runtime.Symbol(10/*term2*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2738 } 2739 return CUP$Parser$result; 2740 2741 /*. . . . . . . . . . . . . . . . . . . .*/ 2742 case 32: // term2 ::= term2 MINUS term 2743 { 2744 Exp RESULT = null; 2745 int xleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 2746 int xright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 2747 Exp x = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 2748 int yleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2749 int yright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2750 Exp y = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2751 2752 RESULT = new UnresolvedFunCall("-", Syntax.Infix, new Exp[] {x, y}); 2753 2754 CUP$Parser$result = new java_cup.runtime.Symbol(10/*term2*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2755 } 2756 return CUP$Parser$result; 2757 2758 /*. . . . . . . . . . . . . . . . . . . .*/ 2759 case 31: // term2 ::= term2 PLUS term 2760 { 2761 Exp RESULT = null; 2762 int xleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 2763 int xright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 2764 Exp x = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 2765 int yleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2766 int yright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2767 Exp y = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2768 2769 RESULT = new UnresolvedFunCall("+", Syntax.Infix, new Exp[] {x, y}); 2770 2771 CUP$Parser$result = new java_cup.runtime.Symbol(10/*term2*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2772 } 2773 return CUP$Parser$result; 2774 2775 /*. . . . . . . . . . . . . . . . . . . .*/ 2776 case 30: // term2 ::= term 2777 { 2778 Exp RESULT = null; 2779 2780 // Default action for single-symbol production 2781 RESULT = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 2782 CUP$Parser$result = new java_cup.runtime.Symbol(10/*term2*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2783 } 2784 return CUP$Parser$result; 2785 2786 /*. . . . . . . . . . . . . . . . . . . .*/ 2787 case 29: // term3 ::= term3 NOT IN term2 2788 { 2789 Exp RESULT = null; 2790 int xleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left; 2791 int xright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right; 2792 Exp x = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value; 2793 int yleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2794 int yright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2795 Exp y = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2796 2797 RESULT = new UnresolvedFunCall( 2798 "NOT", Syntax.Prefix, new Exp[] { 2799 new UnresolvedFunCall( 2800 "IN", Syntax.Infix, new Exp[] {x, y})}); 2801 2802 CUP$Parser$result = new java_cup.runtime.Symbol(11/*term3*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2803 } 2804 return CUP$Parser$result; 2805 2806 /*. . . . . . . . . . . . . . . . . . . .*/ 2807 case 28: // term3 ::= term3 IN term2 2808 { 2809 Exp RESULT = null; 2810 int xleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 2811 int xright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 2812 Exp x = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 2813 int yleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2814 int yright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2815 Exp y = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2816 2817 RESULT = 2818 new UnresolvedFunCall("IN", Syntax.Infix, new Exp[] {x, y}); 2819 2820 CUP$Parser$result = new java_cup.runtime.Symbol(11/*term3*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2821 } 2822 return CUP$Parser$result; 2823 2824 /*. . . . . . . . . . . . . . . . . . . .*/ 2825 case 27: // term3 ::= term3 NOT MATCHES term2 2826 { 2827 Exp RESULT = null; 2828 int xleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left; 2829 int xright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).right; 2830 Exp x = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-3)).value; 2831 int yleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2832 int yright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2833 Exp y = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2834 2835 RESULT = new UnresolvedFunCall( 2836 "NOT", Syntax.Prefix, new Exp[] { 2837 new UnresolvedFunCall( 2838 "MATCHES", Syntax.Infix, new Exp[] {x, y})}); 2839 2840 CUP$Parser$result = new java_cup.runtime.Symbol(11/*term3*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2841 } 2842 return CUP$Parser$result; 2843 2844 /*. . . . . . . . . . . . . . . . . . . .*/ 2845 case 26: // term3 ::= term3 MATCHES term2 2846 { 2847 Exp RESULT = null; 2848 int xleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 2849 int xright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 2850 Exp x = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 2851 int yleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2852 int yright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2853 Exp y = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2854 2855 RESULT = 2856 new UnresolvedFunCall( 2857 "MATCHES", Syntax.Infix, new Exp[] {x, y}); 2858 2859 CUP$Parser$result = new java_cup.runtime.Symbol(11/*term3*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2860 } 2861 return CUP$Parser$result; 2862 2863 /*. . . . . . . . . . . . . . . . . . . .*/ 2864 case 25: // term3 ::= term3 IS EMPTY 2865 { 2866 Exp RESULT = null; 2867 int xleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 2868 int xright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 2869 Exp x = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 2870 2871 RESULT = 2872 new UnresolvedFunCall( 2873 "IS EMPTY", Syntax.Postfix, new Exp[] {x}); 2874 2875 CUP$Parser$result = new java_cup.runtime.Symbol(11/*term3*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2876 } 2877 return CUP$Parser$result; 2878 2879 /*. . . . . . . . . . . . . . . . . . . .*/ 2880 case 24: // term3 ::= term3 IS term2 2881 { 2882 Exp RESULT = null; 2883 int xleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 2884 int xright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 2885 Exp x = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 2886 int yleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2887 int yright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2888 Exp y = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2889 2890 // e.g. "x IS y"; but "x IS NULL" is handled elsewhere 2891 RESULT = 2892 new UnresolvedFunCall("IS", Syntax.Infix, new Exp[] {x, y}); 2893 2894 CUP$Parser$result = new java_cup.runtime.Symbol(11/*term3*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2895 } 2896 return CUP$Parser$result; 2897 2898 /*. . . . . . . . . . . . . . . . . . . .*/ 2899 case 23: // term3 ::= term3 IS NULL 2900 { 2901 Exp RESULT = null; 2902 int xleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 2903 int xright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 2904 Exp x = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 2905 2906 RESULT = 2907 new UnresolvedFunCall("IS NULL", Syntax.Postfix, new Exp[] {x}); 2908 2909 CUP$Parser$result = new java_cup.runtime.Symbol(11/*term3*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2910 } 2911 return CUP$Parser$result; 2912 2913 /*. . . . . . . . . . . . . . . . . . . .*/ 2914 case 22: // term3 ::= term3 comp_op term2 2915 { 2916 Exp RESULT = null; 2917 int xleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 2918 int xright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 2919 Exp x = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 2920 int opleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; 2921 int opright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; 2922 String op = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; 2923 int yleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2924 int yright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2925 Exp y = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2926 // e.g. "1 < 5" 2927 RESULT = new UnresolvedFunCall(op, Syntax.Infix, new Exp[] {x, y}); 2928 2929 CUP$Parser$result = new java_cup.runtime.Symbol(11/*term3*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2930 } 2931 return CUP$Parser$result; 2932 2933 /*. . . . . . . . . . . . . . . . . . . .*/ 2934 case 21: // term3 ::= term2 2935 { 2936 Exp RESULT = null; 2937 2938 // Default action for single-symbol production 2939 RESULT = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 2940 CUP$Parser$result = new java_cup.runtime.Symbol(11/*term3*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2941 } 2942 return CUP$Parser$result; 2943 2944 /*. . . . . . . . . . . . . . . . . . . .*/ 2945 case 20: // term4 ::= NOT term4 2946 { 2947 Exp RESULT = null; 2948 int pleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2949 int pright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2950 Exp p = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2951 2952 RESULT = new UnresolvedFunCall("NOT", Syntax.Prefix, new Exp[] {p}); 2953 2954 CUP$Parser$result = new java_cup.runtime.Symbol(12/*term4*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2955 } 2956 return CUP$Parser$result; 2957 2958 /*. . . . . . . . . . . . . . . . . . . .*/ 2959 case 19: // term4 ::= term3 2960 { 2961 Exp RESULT = null; 2962 2963 // Default action for single-symbol production 2964 RESULT = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 2965 CUP$Parser$result = new java_cup.runtime.Symbol(12/*term4*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2966 } 2967 return CUP$Parser$result; 2968 2969 /*. . . . . . . . . . . . . . . . . . . .*/ 2970 case 18: // term5 ::= term5 AND term4 2971 { 2972 Exp RESULT = null; 2973 int xleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 2974 int xright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 2975 Exp x = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 2976 int yleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 2977 int yright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 2978 Exp y = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 2979 2980 RESULT = 2981 new UnresolvedFunCall("AND", Syntax.Infix, new Exp[] {x, y}); 2982 2983 CUP$Parser$result = new java_cup.runtime.Symbol(13/*term5*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2984 } 2985 return CUP$Parser$result; 2986 2987 /*. . . . . . . . . . . . . . . . . . . .*/ 2988 case 17: // term5 ::= term4 2989 { 2990 Exp RESULT = null; 2991 2992 // Default action for single-symbol production 2993 RESULT = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 2994 CUP$Parser$result = new java_cup.runtime.Symbol(13/*term5*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 2995 } 2996 return CUP$Parser$result; 2997 2998 /*. . . . . . . . . . . . . . . . . . . .*/ 2999 case 16: // value_expression ::= value_expression XOR term5 3000 { 3001 Exp RESULT = null; 3002 int xleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 3003 int xright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 3004 Exp x = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 3005 int yleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 3006 int yright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 3007 Exp y = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 3008 3009 RESULT = 3010 new UnresolvedFunCall("XOR", Syntax.Infix, new Exp[] {x, y}); 3011 3012 CUP$Parser$result = new java_cup.runtime.Symbol(15/*value_expression*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 3013 } 3014 return CUP$Parser$result; 3015 3016 /*. . . . . . . . . . . . . . . . . . . .*/ 3017 case 15: // value_expression ::= value_expression OR term5 3018 { 3019 Exp RESULT = null; 3020 int xleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 3021 int xright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 3022 Exp x = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 3023 int yleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 3024 int yright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 3025 Exp y = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 3026 3027 RESULT = 3028 new UnresolvedFunCall("OR", Syntax.Infix, new Exp[] {x, y}); 3029 3030 CUP$Parser$result = new java_cup.runtime.Symbol(15/*value_expression*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 3031 } 3032 return CUP$Parser$result; 3033 3034 /*. . . . . . . . . . . . . . . . . . . .*/ 3035 case 14: // value_expression ::= term5 3036 { 3037 Exp RESULT = null; 3038 3039 // Default action for single-symbol production 3040 RESULT = (Exp)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 3041 CUP$Parser$result = new java_cup.runtime.Symbol(15/*value_expression*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 3042 } 3043 return CUP$Parser$result; 3044 3045 /*. . . . . . . . . . . . . . . . . . . .*/ 3046 case 13: // cube_name ::= compound_id 3047 { 3048 Id RESULT = null; 3049 3050 // Default action for single-symbol production 3051 RESULT = (Id)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 3052 CUP$Parser$result = new java_cup.runtime.Symbol(27/*cube_name*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 3053 } 3054 return CUP$Parser$result; 3055 3056 /*. . . . . . . . . . . . . . . . . . . .*/ 3057 case 12: // bang_compound_id ::= bang_compound_id BANG identifier 3058 { 3059 Id RESULT = null; 3060 int hdleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 3061 int hdright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 3062 Id hd = (Id)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 3063 int tlleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 3064 int tlright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 3065 Id.NameSegment tl = (Id.NameSegment)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 3066 3067 RESULT = hd.append(tl); 3068 3069 CUP$Parser$result = new java_cup.runtime.Symbol(24/*bang_compound_id*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 3070 } 3071 return CUP$Parser$result; 3072 3073 /*. . . . . . . . . . . . . . . . . . . .*/ 3074 case 11: // bang_compound_id ::= identifier 3075 { 3076 Id RESULT = null; 3077 int ileft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 3078 int iright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 3079 Id.NameSegment i = (Id.NameSegment)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 3080 3081 RESULT = new Id(i); 3082 3083 CUP$Parser$result = new java_cup.runtime.Symbol(24/*bang_compound_id*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 3084 } 3085 return CUP$Parser$result; 3086 3087 /*. . . . . . . . . . . . . . . . . . . .*/ 3088 case 10: // compound_id ::= compound_id DOT identifier 3089 { 3090 Id RESULT = null; 3091 int hdleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left; 3092 int hdright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right; 3093 Id hd = (Id)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value; 3094 int tlleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 3095 int tlright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 3096 Id.NameSegment tl = (Id.NameSegment)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 3097 3098 RESULT = hd.append(tl); 3099 3100 CUP$Parser$result = new java_cup.runtime.Symbol(26/*compound_id*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 3101 } 3102 return CUP$Parser$result; 3103 3104 /*. . . . . . . . . . . . . . . . . . . .*/ 3105 case 9: // compound_id ::= identifier 3106 { 3107 Id RESULT = null; 3108 int ileft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 3109 int iright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 3110 Id.NameSegment i = (Id.NameSegment)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 3111 3112 RESULT = new Id(i); 3113 3114 CUP$Parser$result = new java_cup.runtime.Symbol(26/*compound_id*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 3115 } 3116 return CUP$Parser$result; 3117 3118 /*. . . . . . . . . . . . . . . . . . . .*/ 3119 case 8: // keyword ::= PROPERTIES 3120 { 3121 String RESULT = null; 3122 3123 RESULT = "Properties"; 3124 3125 CUP$Parser$result = new java_cup.runtime.Symbol(33/*keyword*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 3126 } 3127 return CUP$Parser$result; 3128 3129 /*. . . . . . . . . . . . . . . . . . . .*/ 3130 case 7: // keyword ::= DIMENSION 3131 { 3132 String RESULT = null; 3133 3134 RESULT = "Dimension"; 3135 3136 CUP$Parser$result = new java_cup.runtime.Symbol(33/*keyword*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 3137 } 3138 return CUP$Parser$result; 3139 3140 /*. . . . . . . . . . . . . . . . . . . .*/ 3141 case 6: // identifier ::= quoted_identifier 3142 { 3143 Id.NameSegment RESULT = null; 3144 3145 // Default action for single-symbol production 3146 RESULT = (Id.NameSegment)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 3147 CUP$Parser$result = new java_cup.runtime.Symbol(34/*identifier*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 3148 } 3149 return CUP$Parser$result; 3150 3151 /*. . . . . . . . . . . . . . . . . . . .*/ 3152 case 5: // identifier ::= unquoted_identifier 3153 { 3154 Id.NameSegment RESULT = null; 3155 3156 // Default action for single-symbol production 3157 RESULT = (Id.NameSegment)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top)).value; 3158 CUP$Parser$result = new java_cup.runtime.Symbol(34/*identifier*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 3159 } 3160 return CUP$Parser$result; 3161 3162 /*. . . . . . . . . . . . . . . . . . . .*/ 3163 case 4: // unquoted_identifier ::= keyword 3164 { 3165 Id.NameSegment RESULT = null; 3166 int ileft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 3167 int iright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 3168 String i = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 3169 3170 RESULT = new Id.NameSegment(i, Id.Quoting.UNQUOTED); 3171 3172 CUP$Parser$result = new java_cup.runtime.Symbol(36/*unquoted_identifier*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 3173 } 3174 return CUP$Parser$result; 3175 3176 /*. . . . . . . . . . . . . . . . . . . .*/ 3177 case 3: // unquoted_identifier ::= ID 3178 { 3179 Id.NameSegment RESULT = null; 3180 int ileft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 3181 int iright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 3182 String i = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 3183 3184 RESULT = new Id.NameSegment(i, Id.Quoting.UNQUOTED); 3185 3186 CUP$Parser$result = new java_cup.runtime.Symbol(36/*unquoted_identifier*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 3187 } 3188 return CUP$Parser$result; 3189 3190 /*. . . . . . . . . . . . . . . . . . . .*/ 3191 case 2: // amp_quoted_identifier ::= AMP_QUOTED_ID 3192 { 3193 Id.NameSegment RESULT = null; 3194 int ileft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 3195 int iright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 3196 String i = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 3197 3198 RESULT = new Id.NameSegment(i, Id.Quoting.KEY); // yuck 3199 3200 CUP$Parser$result = new java_cup.runtime.Symbol(37/*amp_quoted_identifier*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 3201 } 3202 return CUP$Parser$result; 3203 3204 /*. . . . . . . . . . . . . . . . . . . .*/ 3205 case 1: // quoted_identifier ::= QUOTED_ID 3206 { 3207 Id.NameSegment RESULT = null; 3208 int ileft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left; 3209 int iright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right; 3210 String i = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-0)).value; 3211 3212 RESULT = new Id.NameSegment(i, Id.Quoting.QUOTED); 3213 3214 CUP$Parser$result = new java_cup.runtime.Symbol(35/*quoted_identifier*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 3215 } 3216 return CUP$Parser$result; 3217 3218 /*. . . . . . . . . . . . . . . . . . . .*/ 3219 case 0: // $START ::= statement EOF 3220 { 3221 Object RESULT = null; 3222 int start_valleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; 3223 int start_valright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; 3224 QueryPart start_val = (QueryPart)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; 3225 RESULT = start_val; 3226 CUP$Parser$result = new java_cup.runtime.Symbol(0/*$START*/, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-0)).right, RESULT); 3227 } 3228 /* ACCEPT */ 3229 CUP$Parser$parser.done_parsing(); 3230 return CUP$Parser$result; 3231 3232 /* . . . . . .*/ 3233 default: 3234 throw new Exception( 3235 "Invalid action number found in internal parse table"); 3236 3237 } 3238 } 3239} 3240