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