//----------------------------------------------------
// The following code was generated by CUP v0.10k
// Wed Dec 22 14:03:40 EST 2010
//----------------------------------------------------
package org.olap4j.mdx.parser.impl;
import java_cup.runtime.*;
import java.math.BigDecimal;
import java.util.*;
import org.olap4j.Axis;
import org.olap4j.mdx.*;
import org.olap4j.mdx.parser.MdxParseException;
/** CUP v0.10k generated parser.
* @version Wed Dec 22 14:03:40 EST 2010
*/
public class DefaultMdxParser extends java_cup.runtime.lr_parser {
/** Default constructor. */
public DefaultMdxParser() {super();}
/** Constructor which sets the default scanner. */
public DefaultMdxParser(java_cup.runtime.Scanner s) {super(s);}
/** Production table. */
protected static final short _production_table[][] =
unpackFromStrings(new String[] {
"\000\211\000\002\002\004\000\002\042\003\000\002\043" +
"\003\000\002\043\003\000\002\041\003\000\002\047\003" +
"\000\002\047\004\000\002\044\003\000\002\044\003\000" +
"\002\045\003\000\002\046\003\000\002\040\003\000\002" +
"\040\003\000\002\040\003\000\002\037\003\000\002\037" +
"\003\000\002\030\003\000\002\030\005\000\002\031\003" +
"\000\002\020\003\000\002\020\005\000\002\020\005\000" +
"\002\017\003\000\002\017\005\000\002\016\003\000\002" +
"\016\004\000\002\015\003\000\002\015\005\000\002\015" +
"\005\000\002\015\005\000\002\015\005\000\002\015\005" +
"\000\002\015\006\000\002\015\005\000\002\015\006\000" +
"\002\014\003\000\002\014\005\000\002\014\005\000\002" +
"\014\005\000\002\013\003\000\002\013\005\000\002\013" +
"\005\000\002\011\003\000\002\011\004\000\002\011\004" +
"\000\002\022\003\000\002\022\003\000\002\022\003\000" +
"\002\022\005\000\002\022\005\000\002\022\005\000\002" +
"\022\010\000\002\022\006\000\002\022\010\000\002\022" +
"\005\000\002\022\005\000\002\022\003\000\002\022\003" +
"\000\002\004\007\000\002\021\002\000\002\021\003\000" +
"\002\075\002\000\002\075\004\000\002\077\006\000\002" +
"\006\002\000\002\006\004\000\002\036\003\000\002\036" +
"\003\000\002\036\003\000\002\036\003\000\002\036\003" +
"\000\002\036\003\000\002\007\005\000\002\007\003\000" +
"\002\010\003\000\002\010\002\000\002\070\002\000\002" +
"\070\003\000\002\067\003\000\002\067\005\000\002\026" +
"\003\000\002\026\004\000\002\005\003\000\002\005\005" +
"\000\002\024\011\000\002\076\002\000\002\076\004\000" +
"\002\061\002\000\002\061\003\000\002\060\003\000\002" +
"\060\005\000\002\023\002\000\002\023\004\000\002\063" +
"\002\000\002\063\003\000\002\071\003\000\002\071\004" +
"\000\002\025\003\000\002\025\003\000\002\050\007\000" +
"\002\050\007\000\002\064\002\000\002\064\004\000\002" +
"\072\003\000\002\072\005\000\002\033\003\000\002\052" +
"\005\000\002\051\006\000\002\051\006\000\002\034\003" +
"\000\002\003\007\000\002\003\007\000\002\057\002\000" +
"\002\057\004\000\002\066\002\000\002\066\003\000\002" +
"\035\003\000\002\035\003\000\002\035\003\000\002\035" +
"\003\000\002\035\003\000\002\100\003\000\002\100\006" +
"\000\002\065\005\000\002\054\002\000\002\054\003\000" +
"\002\073\003\000\002\073\005\000\002\055\003\000\002" +
"\032\003\000\002\012\003\000\002\062\005\000\002\053" +
"\002\000\002\053\003\000\002\074\003\000\002\074\005" +
"\000\002\027\003" });
/** Access to production table. */
public short[][] production_table() {return _production_table;}
/** Parse-action table. */
protected static final short[][] _action_table =
unpackFromStrings(new String[] {
"\000\317\000\010\036\uffac\044\005\045\007\001\002\000" +
"\004\002\uffb1\001\002\000\006\024\274\037\272\001\002" +
"\000\004\002\266\001\002\000\042\007\055\010\033\014" +
"\044\026\026\027\061\033\035\056\032\060\031\062\053" +
"\064\022\070\042\071\034\072\050\073\037\074\045\075" +
"\036\001\002\000\004\036\011\001\002\000\046\007\uff91" +
"\010\uff91\014\uff91\020\uffaa\025\015\026\uff91\027\uff91\033" +
"\uff91\056\uff91\060\uff91\062\uff91\064\uff91\070\uff91\071\uff91" +
"\072\uff91\073\uff91\074\uff91\075\uff91\001\002\000\004\020" +
"\237\001\002\000\042\007\055\010\033\014\044\026\026" +
"\027\061\033\035\056\032\060\031\062\053\064\022\070" +
"\042\071\034\072\050\073\037\074\045\075\036\001\002" +
"\000\006\020\uffa8\050\020\001\002\000\004\016\017\001" +
"\002\000\004\020\uffa9\001\002\000\042\007\uff90\010\uff90" +
"\014\uff90\026\uff90\027\uff90\033\uff90\056\uff90\060\uff90\062" +
"\uff90\064\uff90\070\uff90\071\uff90\072\uff90\073\uff90\074\uff90" +
"\075\uff90\001\002\000\044\007\uff91\010\uff91\014\uff91\025" +
"\015\026\uff91\027\uff91\033\uff91\056\uff91\060\uff91\062\uff91" +
"\064\uff91\070\uff91\071\uff91\072\uff91\073\uff91\074\uff91\075" +
"\uff91\001\002\000\004\020\uffa7\001\002\000\034\007\055" +
"\010\033\014\044\027\061\033\035\056\032\060\031\070" +
"\042\071\034\072\050\073\037\074\045\075\036\001\002" +
"\000\114\002\uffd2\004\uffd2\005\uffd2\011\uffd2\014\uffd2\015" +
"\uffd2\017\uffd2\021\uffd2\022\uffd2\023\uffd2\024\uffd2\026\uffd2" +
"\030\uffd2\031\uffd2\033\uffd2\036\uffd2\037\uffd2\040\uffd2\041" +
"\uffd2\043\uffd2\046\uffd2\047\uffd2\050\uffd2\051\uffd2\052\uffd2" +
"\053\uffd2\054\uffd2\055\uffd2\057\uffd2\060\233\061\uffd2\062" +
"\uffd2\063\uffd2\064\uffd2\065\uffd2\066\uffd2\067\uffd2\001\002" +
"\000\112\002\uffc8\004\uffc8\005\uffc8\011\uffc8\014\uffc8\015" +
"\uffc8\017\uffc8\021\uffc8\022\uffc8\023\uffc8\024\uffc8\026\uffc8" +
"\030\uffc8\031\uffc8\033\uffc8\036\uffc8\037\uffc8\040\uffc8\041" +
"\uffc8\043\uffc8\046\uffc8\047\uffc8\050\uffc8\051\uffc8\052\uffc8" +
"\053\uffc8\054\uffc8\055\uffc8\057\uffc8\061\uffc8\062\uffc8\063" +
"\uffc8\064\uffc8\065\uffc8\066\uffc8\067\uffc8\001\002\000\122" +
"\002\ufff9\004\ufff9\005\ufff9\011\ufff9\014\ufff9\015\ufff9\017" +
"\ufff9\021\ufff9\022\ufff9\023\ufff9\024\ufff9\026\ufff9\030\ufff9" +
"\031\ufff9\033\ufff9\036\ufff9\037\ufff9\040\ufff9\041\ufff9\042" +
"\ufff9\043\ufff9\046\ufff9\047\ufff9\050\ufff9\051\ufff9\052\ufff9" +
"\053\ufff9\054\ufff9\055\ufff9\057\ufff9\060\ufff9\061\ufff9\062" +
"\ufff9\063\ufff9\064\ufff9\065\ufff9\066\ufff9\067\ufff9\073\ufff9" +
"\074\ufff9\001\002\000\042\007\055\010\033\014\044\026" +
"\026\027\061\033\035\056\032\060\031\062\053\064\022" +
"\070\042\071\034\072\050\073\037\074\045\075\036\001" +
"\002\000\122\002\ufffc\004\ufffc\005\ufffc\011\ufffc\014\ufffc" +
"\015\ufffc\017\ufffc\021\ufffc\022\ufffc\023\ufffc\024\ufffc\026" +
"\ufffc\030\ufffc\031\ufffc\033\ufffc\036\ufffc\037\ufffc\040\ufffc" +
"\041\ufffc\042\ufffc\043\ufffc\046\ufffc\047\ufffc\050\ufffc\051" +
"\ufffc\052\ufffc\053\ufffc\054\ufffc\055\ufffc\057\ufffc\060\ufffc" +
"\061\ufffc\062\ufffc\063\ufffc\064\ufffc\065\ufffc\066\ufffc\067" +
"\ufffc\073\ufffc\074\ufffc\001\002\000\116\002\ufff4\004\ufff4" +
"\005\ufff4\011\ufff4\014\ufff4\015\ufff4\017\ufff4\021\ufff4\022" +
"\ufff4\023\ufff4\024\ufff4\026\ufff4\030\ufff4\031\ufff4\033\ufff4" +
"\036\ufff4\037\ufff4\040\ufff4\041\ufff4\042\ufff4\043\ufff4\046" +
"\ufff4\047\ufff4\050\ufff4\051\ufff4\052\ufff4\053\ufff4\054\ufff4" +
"\055\ufff4\057\ufff4\060\ufff4\061\ufff4\062\ufff4\063\ufff4\064" +
"\ufff4\065\ufff4\066\ufff4\067\ufff4\001\002\000\044\007\055" +
"\010\033\014\044\026\026\027\061\033\035\050\uffb6\056" +
"\032\060\031\062\053\064\022\070\042\071\034\072\050" +
"\073\037\074\045\075\036\001\002\000\046\007\055\010" +
"\033\014\044\026\026\027\061\033\035\050\uffb6\056\032" +
"\060\031\062\053\064\022\065\uffb5\070\042\071\034\072" +
"\050\073\037\074\045\075\036\001\002\000\004\060\221" +
"\001\002\000\116\002\uffff\004\uffff\005\uffff\011\uffff\014" +
"\uffff\015\uffff\017\uffff\021\uffff\022\uffff\023\uffff\024\uffff" +
"\026\uffff\030\uffff\031\uffff\033\uffff\036\uffff\037\uffff\040" +
"\uffff\041\uffff\042\uffff\043\uffff\046\uffff\047\uffff\050\uffff" +
"\051\uffff\052\uffff\053\uffff\054\uffff\055\uffff\057\uffff\060" +
"\uffff\061\uffff\062\uffff\063\uffff\064\uffff\065\uffff\066\uffff" +
"\067\uffff\001\002\000\116\002\ufff2\004\ufff2\005\ufff2\011" +
"\ufff2\014\ufff2\015\ufff2\017\ufff2\021\ufff2\022\ufff2\023\ufff2" +
"\024\ufff2\026\ufff2\030\ufff2\031\ufff2\033\ufff2\036\ufff2\037" +
"\ufff2\040\ufff2\041\ufff2\042\ufff2\043\ufff2\046\ufff2\047\ufff2" +
"\050\ufff2\051\ufff2\052\ufff2\053\ufff2\054\ufff2\055\ufff2\057" +
"\ufff2\060\ufff2\061\ufff2\062\ufff2\063\ufff2\064\ufff2\065\ufff2" +
"\066\ufff2\067\ufff2\001\002\000\112\002\uffd4\004\uffd4\005" +
"\uffd4\011\uffd4\014\uffd4\015\uffd4\017\uffd4\021\uffd4\022\uffd4" +
"\023\uffd4\024\uffd4\026\uffd4\030\uffd4\031\uffd4\033\uffd4\036" +
"\uffd4\037\uffd4\040\uffd4\041\uffd4\043\uffd4\046\uffd4\047\uffd4" +
"\050\uffd4\051\uffd4\052\uffd4\053\uffd4\054\uffd4\055\uffd4\057" +
"\uffd4\061\uffd4\062\uffd4\063\uffd4\064\uffd4\065\uffd4\066\uffd4" +
"\067\uffd4\001\002\000\122\002\ufff8\004\ufff8\005\ufff8\011" +
"\ufff8\014\ufff8\015\ufff8\017\ufff8\021\ufff8\022\ufff8\023\ufff8" +
"\024\ufff8\026\ufff8\030\ufff8\031\ufff8\033\ufff8\036\ufff8\037" +
"\ufff8\040\ufff8\041\ufff8\042\ufff8\043\ufff8\046\ufff8\047\ufff8" +
"\050\ufff8\051\ufff8\052\ufff8\053\ufff8\054\ufff8\055\ufff8\057" +
"\ufff8\060\ufff8\061\ufff8\062\ufff8\063\ufff8\064\ufff8\065\ufff8" +
"\066\ufff8\067\ufff8\073\ufff8\074\ufff8\001\002\000\012\014" +
"\170\030\uff8f\033\uff85\047\077\001\002\000\040\002\uffb8" +
"\005\uffb8\011\uffb8\014\uffb8\024\uffb8\030\uffb8\031\101\033" +
"\uffb8\036\uffb8\037\uffb8\043\102\047\uffb8\050\uffb8\065\uffb8" +
"\066\uffb8\001\002\000\112\002\uffd3\004\uffd3\005\uffd3\011" +
"\uffd3\014\uffd3\015\uffd3\017\uffd3\021\uffd3\022\uffd3\023\uffd3" +
"\024\uffd3\026\uffd3\030\uffd3\031\uffd3\033\uffd3\036\uffd3\037" +
"\uffd3\040\uffd3\041\uffd3\043\uffd3\046\uffd3\047\uffd3\050\uffd3" +
"\051\uffd3\052\uffd3\053\uffd3\054\uffd3\055\uffd3\057\uffd3\061" +
"\uffd3\062\uffd3\063\uffd3\064\uffd3\065\uffd3\066\uffd3\067\uffd3" +
"\001\002\000\110\002\uffda\004\uffda\005\uffda\011\uffda\014" +
"\uffda\015\uffda\017\uffda\021\uffda\022\uffda\023\uffda\024\uffda" +
"\026\uffda\030\uffda\031\uffda\033\uffda\036\uffda\037\uffda\040" +
"\uffda\041\uffda\043\uffda\046\uffda\047\uffda\050\uffda\051\uffda" +
"\053\uffda\054\uffda\055\uffda\057\uffda\061\uffda\062\uffda\063" +
"\uffda\064\uffda\065\uffda\066\uffda\067\uffda\001\002\000\116" +
"\002\ufff3\004\ufff3\005\ufff3\011\ufff3\014\ufff3\015\ufff3\017" +
"\ufff3\021\ufff3\022\ufff3\023\ufff3\024\ufff3\026\ufff3\030\ufff3" +
"\031\ufff3\033\ufff3\036\ufff3\037\ufff3\040\ufff3\041\ufff3\042" +
"\ufff3\043\ufff3\046\ufff3\047\ufff3\050\ufff3\051\ufff3\052\ufff3" +
"\053\ufff3\054\ufff3\055\ufff3\057\ufff3\060\ufff3\061\ufff3\062" +
"\ufff3\063\ufff3\064\ufff3\065\ufff3\066\ufff3\067\ufff3\001\002" +
"\000\122\002\ufff7\004\ufff7\005\ufff7\011\ufff7\014\ufff7\015" +
"\ufff7\017\ufff7\021\ufff7\022\ufff7\023\ufff7\024\ufff7\026\ufff7" +
"\030\ufff7\031\ufff7\033\ufff7\036\ufff7\037\ufff7\040\ufff7\041" +
"\ufff7\042\ufff7\043\ufff7\046\ufff7\047\ufff7\050\ufff7\051\ufff7" +
"\052\ufff7\053\ufff7\054\ufff7\055\ufff7\057\ufff7\060\ufff7\061" +
"\ufff7\062\ufff7\063\ufff7\064\ufff7\065\ufff7\066\ufff7\067\ufff7" +
"\073\ufff7\074\ufff7\001\002\000\110\002\uffde\004\uffde\005" +
"\uffde\011\uffde\014\uffde\015\uffde\017\uffde\021\uffde\022\uffde" +
"\023\uffde\024\uffde\026\uffde\030\uffde\031\uffde\033\uffde\036" +
"\uffde\037\uffde\040\uffde\041\uffde\043\uffde\046\116\047\uffde" +
"\050\uffde\051\uffde\053\uffde\054\uffde\055\uffde\057\uffde\061" +
"\uffde\062\uffde\063\uffde\064\uffde\065\uffde\066\uffde\067\117" +
"\001\002\000\122\002\ufffd\004\ufffd\005\ufffd\011\ufffd\014" +
"\ufffd\015\ufffd\017\ufffd\021\ufffd\022\ufffd\023\ufffd\024\ufffd" +
"\026\ufffd\030\ufffd\031\ufffd\033\ufffd\036\ufffd\037\ufffd\040" +
"\ufffd\041\ufffd\042\ufffd\043\ufffd\046\ufffd\047\ufffd\050\ufffd" +
"\051\ufffd\052\ufffd\053\ufffd\054\ufffd\055\ufffd\057\ufffd\060" +
"\ufffd\061\ufffd\062\ufffd\063\ufffd\064\ufffd\065\ufffd\066\ufffd" +
"\067\ufffd\073\037\074\045\001\002\000\116\002\000\004" +
"\000\005\000\011\000\014\000\015\000\017\000\021\000" +
"\022\000\023\000\024\000\026\000\030\000\031\000\033" +
"\000\036\000\037\000\040\000\041\000\042\000\043\000" +
"\046\000\047\000\050\000\051\000\052\000\053\000\054" +
"\000\055\000\057\000\060\000\061\000\062\000\063\000" +
"\064\000\065\000\066\000\067\000\001\002\000\052\002" +
"\uffee\004\104\005\uffee\011\uffee\014\uffee\015\uffee\017\uffee" +
"\024\uffee\030\uffee\031\uffee\033\uffee\036\uffee\037\uffee\040" +
"\uffee\041\uffee\043\uffee\047\uffee\050\uffee\065\uffee\066\uffee" +
"\001\002\000\052\002\uffeb\004\uffeb\005\uffeb\011\uffeb\014" +
"\uffeb\015\uffeb\017\uffeb\024\uffeb\030\uffeb\031\uffeb\033\uffeb" +
"\036\uffeb\037\uffeb\040\uffeb\041\uffeb\043\uffeb\047\uffeb\050" +
"\uffeb\065\uffeb\066\uffeb\001\002\000\034\007\055\010\033" +
"\014\044\027\061\033\035\056\032\060\031\070\042\071" +
"\034\072\050\073\037\074\045\075\036\001\002\000\076" +
"\002\uffe9\004\uffe9\005\uffe9\011\uffe9\014\uffe9\015\uffe9\017" +
"\uffe9\021\140\022\152\023\150\024\uffe9\026\146\030\uffe9" +
"\031\uffe9\033\uffe9\036\uffe9\037\uffe9\040\uffe9\041\uffe9\043" +
"\uffe9\047\uffe9\050\uffe9\053\143\054\142\055\145\057\144" +
"\061\151\063\147\065\uffe9\066\uffe9\001\002\000\050\007" +
"\055\010\033\014\044\015\uffc6\017\uffc6\026\026\027\061" +
"\033\035\041\uffc6\056\032\060\031\062\053\064\022\070" +
"\042\071\034\072\050\073\037\074\045\075\036\001\002" +
"\000\104\002\uffe7\004\uffe7\005\uffe7\011\uffe7\014\uffe7\015" +
"\uffe7\017\uffe7\021\uffe7\022\uffe7\023\uffe7\024\uffe7\026\uffe7" +
"\030\uffe7\031\uffe7\033\uffe7\036\uffe7\037\uffe7\040\uffe7\041" +
"\uffe7\043\uffe7\047\uffe7\050\uffe7\051\113\053\uffe7\054\uffe7" +
"\055\uffe7\057\uffe7\061\uffe7\062\114\063\uffe7\064\112\065" +
"\uffe7\066\uffe7\001\002\000\112\002\uffd7\004\uffd7\005\uffd7" +
"\011\uffd7\014\uffd7\015\uffd7\017\uffd7\021\uffd7\022\uffd7\023" +
"\uffd7\024\uffd7\026\uffd7\030\uffd7\031\uffd7\033\uffd7\036\uffd7" +
"\037\uffd7\040\uffd7\041\uffd7\043\uffd7\046\uffd7\047\uffd7\050" +
"\uffd7\051\uffd7\052\065\053\uffd7\054\uffd7\055\uffd7\057\uffd7" +
"\061\uffd7\062\uffd7\063\uffd7\064\uffd7\065\uffd7\066\uffd7\067" +
"\uffd7\001\002\000\122\002\ufffa\004\ufffa\005\ufffa\011\ufffa" +
"\014\ufffa\015\ufffa\017\ufffa\021\ufffa\022\ufffa\023\ufffa\024" +
"\ufffa\026\ufffa\030\ufffa\031\ufffa\033\ufffa\036\ufffa\037\ufffa" +
"\040\ufffa\041\ufffa\042\ufffa\043\ufffa\046\ufffa\047\ufffa\050" +
"\ufffa\051\ufffa\052\ufffa\053\ufffa\054\ufffa\055\ufffa\057\ufffa" +
"\060\ufffa\061\ufffa\062\ufffa\063\ufffa\064\ufffa\065\ufffa\066" +
"\ufffa\067\ufffa\073\ufffa\074\ufffa\001\002\000\112\002\uffc9" +
"\004\uffc9\005\uffc9\011\uffc9\014\uffc9\015\uffc9\017\uffc9\021" +
"\uffc9\022\uffc9\023\uffc9\024\uffc9\026\uffc9\030\uffc9\031\uffc9" +
"\033\uffc9\036\uffc9\037\uffc9\040\uffc9\041\uffc9\043\uffc9\046" +
"\uffc9\047\uffc9\050\uffc9\051\uffc9\052\uffc9\053\uffc9\054\uffc9" +
"\055\uffc9\057\uffc9\061\uffc9\062\uffc9\063\uffc9\064\uffc9\065" +
"\uffc9\066\uffc9\067\uffc9\001\002\000\116\002\ufffe\004\ufffe" +
"\005\ufffe\011\ufffe\014\ufffe\015\ufffe\017\ufffe\021\ufffe\022" +
"\ufffe\023\ufffe\024\ufffe\026\ufffe\030\ufffe\031\ufffe\033\ufffe" +
"\036\ufffe\037\ufffe\040\ufffe\041\ufffe\042\ufffe\043\ufffe\046" +
"\ufffe\047\ufffe\050\ufffe\051\ufffe\052\ufffe\053\ufffe\054\ufffe" +
"\055\ufffe\057\ufffe\060\ufffe\061\ufffe\062\ufffe\063\ufffe\064" +
"\ufffe\065\ufffe\066\ufffe\067\ufffe\001\002\000\116\002\ufff6" +
"\004\ufff6\005\ufff6\011\ufff6\014\ufff6\015\ufff6\017\ufff6\021" +
"\ufff6\022\ufff6\023\ufff6\024\ufff6\026\ufff6\030\ufff6\031\ufff6" +
"\033\ufff6\036\ufff6\037\ufff6\040\ufff6\041\ufff6\042\ufff6\043" +
"\ufff6\046\ufff6\047\ufff6\050\ufff6\051\ufff6\052\ufff6\053\ufff6" +
"\054\ufff6\055\ufff6\057\ufff6\060\ufff6\061\ufff6\062\ufff6\063" +
"\ufff6\064\ufff6\065\ufff6\066\ufff6\067\ufff6\001\002\000\116" +
"\002\ufff5\004\ufff5\005\ufff5\011\ufff5\014\ufff5\015\ufff5\017" +
"\ufff5\021\ufff5\022\ufff5\023\ufff5\024\ufff5\026\ufff5\030\ufff5" +
"\031\ufff5\033\ufff5\036\ufff5\037\ufff5\040\ufff5\041\ufff5\042" +
"\ufff5\043\ufff5\046\ufff5\047\ufff5\050\ufff5\051\ufff5\052\ufff5" +
"\053\ufff5\054\ufff5\055\ufff5\057\ufff5\060\ufff5\061\ufff5\062" +
"\ufff5\063\ufff5\064\ufff5\065\ufff5\066\ufff5\067\ufff5\001\002" +
"\000\016\014\044\033\035\071\034\072\050\073\037\074" +
"\045\001\002\000\004\060\072\001\002\000\114\002\uffd1" +
"\004\uffd1\005\uffd1\011\uffd1\014\uffd1\015\uffd1\017\uffd1\021" +
"\uffd1\022\uffd1\023\uffd1\024\uffd1\026\uffd1\030\uffd1\031\uffd1" +
"\033\uffd1\036\uffd1\037\uffd1\040\uffd1\041\uffd1\043\uffd1\046" +
"\uffd1\047\uffd1\050\uffd1\051\uffd1\052\uffd1\053\uffd1\054\uffd1" +
"\055\uffd1\057\uffd1\060\ufff6\061\uffd1\062\uffd1\063\uffd1\064" +
"\uffd1\065\uffd1\066\uffd1\067\uffd1\001\002\000\114\002\uffd0" +
"\004\uffd0\005\uffd0\011\uffd0\014\uffd0\015\uffd0\017\uffd0\021" +
"\uffd0\022\uffd0\023\uffd0\024\uffd0\026\uffd0\030\uffd0\031\uffd0" +
"\033\uffd0\036\uffd0\037\uffd0\040\uffd0\041\uffd0\043\uffd0\046" +
"\uffd0\047\uffd0\050\uffd0\051\uffd0\052\uffd0\053\uffd0\054\uffd0" +
"\055\uffd0\057\uffd0\060\ufff5\061\uffd0\062\uffd0\063\uffd0\064" +
"\uffd0\065\uffd0\066\uffd0\067\uffd0\001\002\000\114\002\uffcf" +
"\004\uffcf\005\uffcf\011\uffcf\014\uffcf\015\uffcf\017\uffcf\021" +
"\uffcf\022\uffcf\023\uffcf\024\uffcf\026\uffcf\030\uffcf\031\uffcf" +
"\033\uffcf\036\uffcf\037\uffcf\040\uffcf\041\uffcf\043\uffcf\046" +
"\uffcf\047\uffcf\050\uffcf\051\uffcf\052\uffcf\053\uffcf\054\uffcf" +
"\055\uffcf\057\uffcf\060\ufff4\061\uffcf\062\uffcf\063\uffcf\064" +
"\uffcf\065\uffcf\066\uffcf\067\uffcf\001\002\000\046\007\055" +
"\010\033\014\044\026\026\027\061\033\035\050\uffb6\056" +
"\032\060\031\062\053\064\022\066\uffb5\070\042\071\034" +
"\072\050\073\037\074\045\075\036\001\002\000\004\066" +
"\111\001\002\000\004\050\107\001\002\000\006\065\uffb4" +
"\066\uffb4\001\002\000\012\047\077\050\uffb7\065\uffb3\066" +
"\uffb3\001\002\000\042\007\055\010\033\014\044\026\026" +
"\027\061\033\035\056\032\060\031\062\053\064\022\070" +
"\042\071\034\072\050\073\037\074\045\075\036\001\002" +
"\000\040\002\uffb9\005\uffb9\011\uffb9\014\uffb9\024\uffb9\030" +
"\uffb9\031\101\033\uffb9\036\uffb9\037\uffb9\043\102\047\uffb9" +
"\050\uffb9\065\uffb9\066\uffb9\001\002\000\042\007\055\010" +
"\033\014\044\026\026\027\061\033\035\056\032\060\031" +
"\062\053\064\022\070\042\071\034\072\050\073\037\074" +
"\045\075\036\001\002\000\042\007\055\010\033\014\044" +
"\026\026\027\061\033\035\056\032\060\031\062\053\064" +
"\022\070\042\071\034\072\050\073\037\074\045\075\036" +
"\001\002\000\052\002\uffec\004\104\005\uffec\011\uffec\014" +
"\uffec\015\uffec\017\uffec\024\uffec\030\uffec\031\uffec\033\uffec" +
"\036\uffec\037\uffec\040\uffec\041\uffec\043\uffec\047\uffec\050" +
"\uffec\065\uffec\066\uffec\001\002\000\042\007\055\010\033" +
"\014\044\026\026\027\061\033\035\056\032\060\031\062" +
"\053\064\022\070\042\071\034\072\050\073\037\074\045" +
"\075\036\001\002\000\052\002\uffea\004\uffea\005\uffea\011" +
"\uffea\014\uffea\015\uffea\017\uffea\024\uffea\030\uffea\031\uffea" +
"\033\uffea\036\uffea\037\uffea\040\uffea\041\uffea\043\uffea\047" +
"\uffea\050\uffea\065\uffea\066\uffea\001\002\000\052\002\uffed" +
"\004\104\005\uffed\011\uffed\014\uffed\015\uffed\017\uffed\024" +
"\uffed\030\uffed\031\uffed\033\uffed\036\uffed\037\uffed\040\uffed" +
"\041\uffed\043\uffed\047\uffed\050\uffed\065\uffed\066\uffed\001" +
"\002\000\044\007\055\010\033\014\044\026\026\027\061" +
"\033\035\050\uffb6\056\032\060\031\062\053\064\022\070" +
"\042\071\034\072\050\073\037\074\045\075\036\001\002" +
"\000\006\065\uffb2\066\uffb2\001\002\000\112\002\uffce\004" +
"\uffce\005\uffce\011\uffce\014\uffce\015\uffce\017\uffce\021\uffce" +
"\022\uffce\023\uffce\024\uffce\026\uffce\030\uffce\031\uffce\033" +
"\uffce\036\uffce\037\uffce\040\uffce\041\uffce\043\uffce\046\uffce" +
"\047\uffce\050\uffce\051\uffce\052\uffce\053\uffce\054\uffce\055" +
"\uffce\057\uffce\061\uffce\062\uffce\063\uffce\064\uffce\065\uffce" +
"\066\uffce\067\uffce\001\002\000\040\007\055\010\033\014" +
"\044\027\061\033\035\056\032\060\031\062\053\064\022" +
"\070\042\071\034\072\050\073\037\074\045\075\036\001" +
"\002\000\040\007\055\010\033\014\044\027\061\033\035" +
"\056\032\060\031\062\053\064\022\070\042\071\034\072" +
"\050\073\037\074\045\075\036\001\002\000\040\007\055" +
"\010\033\014\044\027\061\033\035\056\032\060\031\062" +
"\053\064\022\070\042\071\034\072\050\073\037\074\045" +
"\075\036\001\002\000\110\002\uffdc\004\uffdc\005\uffdc\011" +
"\uffdc\014\uffdc\015\uffdc\017\uffdc\021\uffdc\022\uffdc\023\uffdc" +
"\024\uffdc\026\uffdc\030\uffdc\031\uffdc\033\uffdc\036\uffdc\037" +
"\uffdc\040\uffdc\041\uffdc\043\uffdc\046\116\047\uffdc\050\uffdc" +
"\051\uffdc\053\uffdc\054\uffdc\055\uffdc\057\uffdc\061\uffdc\062" +
"\uffdc\063\uffdc\064\uffdc\065\uffdc\066\uffdc\067\117\001\002" +
"\000\040\007\055\010\033\014\044\027\061\033\035\056" +
"\032\060\031\062\053\064\022\070\042\071\034\072\050" +
"\073\037\074\045\075\036\001\002\000\040\007\055\010" +
"\033\014\044\027\061\033\035\056\032\060\031\062\053" +
"\064\022\070\042\071\034\072\050\073\037\074\045\075" +
"\036\001\002\000\110\002\uffd8\004\uffd8\005\uffd8\011\uffd8" +
"\014\uffd8\015\uffd8\017\uffd8\021\uffd8\022\uffd8\023\uffd8\024" +
"\uffd8\026\uffd8\030\uffd8\031\uffd8\033\uffd8\036\uffd8\037\uffd8" +
"\040\uffd8\041\uffd8\043\uffd8\046\uffd8\047\uffd8\050\uffd8\051" +
"\uffd8\053\uffd8\054\uffd8\055\uffd8\057\uffd8\061\uffd8\062\uffd8" +
"\063\uffd8\064\uffd8\065\uffd8\066\uffd8\067\uffd8\001\002\000" +
"\110\002\uffd9\004\uffd9\005\uffd9\011\uffd9\014\uffd9\015\uffd9" +
"\017\uffd9\021\uffd9\022\uffd9\023\uffd9\024\uffd9\026\uffd9\030" +
"\uffd9\031\uffd9\033\uffd9\036\uffd9\037\uffd9\040\uffd9\041\uffd9" +
"\043\uffd9\046\uffd9\047\uffd9\050\uffd9\051\uffd9\053\uffd9\054" +
"\uffd9\055\uffd9\057\uffd9\061\uffd9\062\uffd9\063\uffd9\064\uffd9" +
"\065\uffd9\066\uffd9\067\uffd9\001\002\000\110\002\uffdb\004" +
"\uffdb\005\uffdb\011\uffdb\014\uffdb\015\uffdb\017\uffdb\021\uffdb" +
"\022\uffdb\023\uffdb\024\uffdb\026\uffdb\030\uffdb\031\uffdb\033" +
"\uffdb\036\uffdb\037\uffdb\040\uffdb\041\uffdb\043\uffdb\046\116" +
"\047\uffdb\050\uffdb\051\uffdb\053\uffdb\054\uffdb\055\uffdb\057" +
"\uffdb\061\uffdb\062\uffdb\063\uffdb\064\uffdb\065\uffdb\066\uffdb" +
"\067\117\001\002\000\110\002\uffdd\004\uffdd\005\uffdd\011" +
"\uffdd\014\uffdd\015\uffdd\017\uffdd\021\uffdd\022\uffdd\023\uffdd" +
"\024\uffdd\026\uffdd\030\uffdd\031\uffdd\033\uffdd\036\uffdd\037" +
"\uffdd\040\uffdd\041\uffdd\043\uffdd\046\116\047\uffdd\050\uffdd" +
"\051\uffdd\053\uffdd\054\uffdd\055\uffdd\057\uffdd\061\uffdd\062" +
"\uffdd\063\uffdd\064\uffdd\065\uffdd\066\uffdd\067\117\001\002" +
"\000\014\015\uffc5\017\uffc5\031\101\041\uffc5\043\102\001" +
"\002\000\010\015\uffc4\017\uffc4\041\uffc4\001\002\000\010" +
"\015\130\017\uffc1\041\131\001\002\000\004\017\137\001" +
"\002\000\042\007\055\010\033\014\044\026\026\027\061" +
"\033\035\056\032\060\031\062\053\064\022\070\042\071" +
"\034\072\050\073\037\074\045\075\036\001\002\000\042" +
"\007\055\010\033\014\044\026\026\027\061\033\035\056" +
"\032\060\031\062\053\064\022\070\042\071\034\072\050" +
"\073\037\074\045\075\036\001\002\000\010\015\uffc3\017" +
"\uffc3\041\uffc3\001\002\000\010\031\101\040\134\043\102" +
"\001\002\000\042\007\055\010\033\014\044\026\026\027" +
"\061\033\035\056\032\060\031\062\053\064\022\070\042" +
"\071\034\072\050\073\037\074\045\075\036\001\002\000" +
"\014\015\uffc2\017\uffc2\031\101\041\uffc2\043\102\001\002" +
"\000\010\017\uffc0\031\101\043\102\001\002\000\112\002" +
"\uffc7\004\uffc7\005\uffc7\011\uffc7\014\uffc7\015\uffc7\017\uffc7" +
"\021\uffc7\022\uffc7\023\uffc7\024\uffc7\026\uffc7\030\uffc7\031" +
"\uffc7\033\uffc7\036\uffc7\037\uffc7\040\uffc7\041\uffc7\043\uffc7" +
"\046\uffc7\047\uffc7\050\uffc7\051\uffc7\052\uffc7\053\uffc7\054" +
"\uffc7\055\uffc7\057\uffc7\061\uffc7\062\uffc7\063\uffc7\064\uffc7" +
"\065\uffc7\066\uffc7\067\uffc7\001\002\000\040\007\055\010" +
"\033\014\044\027\061\033\035\056\032\060\031\062\053" +
"\064\022\070\042\071\034\072\050\073\037\074\045\075" +
"\036\001\002\000\040\007\055\010\033\014\044\027\061" +
"\033\035\056\032\060\031\062\053\064\022\070\042\071" +
"\034\072\050\073\037\074\045\075\036\001\002\000\040" +
"\007\uffba\010\uffba\014\uffba\027\uffba\033\uffba\056\uffba\060" +
"\uffba\062\uffba\064\uffba\070\uffba\071\uffba\072\uffba\073\uffba" +
"\074\uffba\075\uffba\001\002\000\040\007\uffbf\010\uffbf\014" +
"\uffbf\027\uffbf\033\uffbf\056\uffbf\060\uffbf\062\uffbf\064\uffbf" +
"\070\uffbf\071\uffbf\072\uffbf\073\uffbf\074\uffbf\075\uffbf\001" +
"\002\000\040\007\uffbb\010\uffbb\014\uffbb\027\uffbb\033\uffbb" +
"\056\uffbb\060\uffbb\062\uffbb\064\uffbb\070\uffbb\071\uffbb\072" +
"\uffbb\073\uffbb\074\uffbb\075\uffbb\001\002\000\040\007\uffbc" +
"\010\uffbc\014\uffbc\027\uffbc\033\uffbc\056\uffbc\060\uffbc\062" +
"\uffbc\064\uffbc\070\uffbc\071\uffbc\072\uffbc\073\uffbc\074\uffbc" +
"\075\uffbc\001\002\000\006\021\157\023\160\001\002\000" +
"\040\007\uffbe\010\uffbe\014\uffbe\027\uffbe\033\uffbe\056\uffbe" +
"\060\uffbe\062\uffbe\064\uffbe\070\uffbe\071\uffbe\072\uffbe\073" +
"\uffbe\074\uffbe\075\uffbe\001\002\000\040\007\055\010\033" +
"\014\044\027\061\033\035\056\032\060\031\062\053\064" +
"\022\070\042\071\034\072\050\073\037\074\045\075\036" +
"\001\002\000\040\007\uffbd\010\uffbd\014\uffbd\027\uffbd\033" +
"\uffbd\056\uffbd\060\uffbd\062\uffbd\064\uffbd\070\uffbd\071\uffbd" +
"\072\uffbd\073\uffbd\074\uffbd\075\uffbd\001\002\000\042\007" +
"\055\010\033\014\044\016\155\027\154\033\035\056\032" +
"\060\031\062\053\064\022\070\042\071\034\072\050\073" +
"\037\074\045\075\036\001\002\000\104\002\uffe4\004\uffe4" +
"\005\uffe4\011\uffe4\014\uffe4\015\uffe4\017\uffe4\021\uffe4\022" +
"\uffe4\023\uffe4\024\uffe4\026\uffe4\030\uffe4\031\uffe4\033\uffe4" +
"\036\uffe4\037\uffe4\040\uffe4\041\uffe4\043\uffe4\047\uffe4\050" +
"\uffe4\051\113\053\uffe4\054\uffe4\055\uffe4\057\uffe4\061\uffe4" +
"\062\114\063\uffe4\064\112\065\uffe4\066\uffe4\001\002\000" +
"\112\002\uffe5\004\uffe5\005\uffe5\011\uffe5\014\uffe5\015\uffe5" +
"\017\uffe5\021\uffe5\022\uffe5\023\uffe5\024\uffe5\026\uffe5\030" +
"\uffe5\031\uffe5\033\uffe5\036\uffe5\037\uffe5\040\uffe5\041\uffe5" +
"\043\uffe5\046\uffc9\047\uffe5\050\uffe5\051\uffc9\052\uffc9\053" +
"\uffe5\054\uffe5\055\uffe5\057\uffe5\061\uffe5\062\uffc9\063\uffe5" +
"\064\uffc9\065\uffe5\066\uffe5\067\uffc9\001\002\000\076\002" +
"\uffe3\004\uffe3\005\uffe3\011\uffe3\014\uffe3\015\uffe3\017\uffe3" +
"\021\uffe3\022\uffe3\023\uffe3\024\uffe3\026\uffe3\030\uffe3\031" +
"\uffe3\033\uffe3\036\uffe3\037\uffe3\040\uffe3\041\uffe3\043\uffe3" +
"\047\uffe3\050\uffe3\053\uffe3\054\uffe3\055\uffe3\057\uffe3\061" +
"\uffe3\063\uffe3\065\uffe3\066\uffe3\001\002\000\104\002\uffe2" +
"\004\uffe2\005\uffe2\011\uffe2\014\uffe2\015\uffe2\017\uffe2\021" +
"\uffe2\022\uffe2\023\uffe2\024\uffe2\026\uffe2\030\uffe2\031\uffe2" +
"\033\uffe2\036\uffe2\037\uffe2\040\uffe2\041\uffe2\043\uffe2\047" +
"\uffe2\050\uffe2\051\113\053\uffe2\054\uffe2\055\uffe2\057\uffe2" +
"\061\uffe2\062\114\063\uffe2\064\112\065\uffe2\066\uffe2\001" +
"\002\000\040\007\055\010\033\014\044\027\061\033\035" +
"\056\032\060\031\062\053\064\022\070\042\071\034\072" +
"\050\073\037\074\045\075\036\001\002\000\040\007\055" +
"\010\033\014\044\027\061\033\035\056\032\060\031\062" +
"\053\064\022\070\042\071\034\072\050\073\037\074\045" +
"\075\036\001\002\000\104\002\uffe1\004\uffe1\005\uffe1\011" +
"\uffe1\014\uffe1\015\uffe1\017\uffe1\021\uffe1\022\uffe1\023\uffe1" +
"\024\uffe1\026\uffe1\030\uffe1\031\uffe1\033\uffe1\036\uffe1\037" +
"\uffe1\040\uffe1\041\uffe1\043\uffe1\047\uffe1\050\uffe1\051\113" +
"\053\uffe1\054\uffe1\055\uffe1\057\uffe1\061\uffe1\062\114\063" +
"\uffe1\064\112\065\uffe1\066\uffe1\001\002\000\104\002\uffdf" +
"\004\uffdf\005\uffdf\011\uffdf\014\uffdf\015\uffdf\017\uffdf\021" +
"\uffdf\022\uffdf\023\uffdf\024\uffdf\026\uffdf\030\uffdf\031\uffdf" +
"\033\uffdf\036\uffdf\037\uffdf\040\uffdf\041\uffdf\043\uffdf\047" +
"\uffdf\050\uffdf\051\113\053\uffdf\054\uffdf\055\uffdf\057\uffdf" +
"\061\uffdf\062\114\063\uffdf\064\112\065\uffdf\066\uffdf\001" +
"\002\000\104\002\uffe6\004\uffe6\005\uffe6\011\uffe6\014\uffe6" +
"\015\uffe6\017\uffe6\021\uffe6\022\uffe6\023\uffe6\024\uffe6\026" +
"\uffe6\030\uffe6\031\uffe6\033\uffe6\036\uffe6\037\uffe6\040\uffe6" +
"\041\uffe6\043\uffe6\047\uffe6\050\uffe6\051\113\053\uffe6\054" +
"\uffe6\055\uffe6\057\uffe6\061\uffe6\062\114\063\uffe6\064\112" +
"\065\uffe6\066\uffe6\001\002\000\104\002\uffe0\004\uffe0\005" +
"\uffe0\011\uffe0\014\uffe0\015\uffe0\017\uffe0\021\uffe0\022\uffe0" +
"\023\uffe0\024\uffe0\026\uffe0\030\uffe0\031\uffe0\033\uffe0\036" +
"\uffe0\037\uffe0\040\uffe0\041\uffe0\043\uffe0\047\uffe0\050\uffe0" +
"\051\113\053\uffe0\054\uffe0\055\uffe0\057\uffe0\061\uffe0\062" +
"\114\063\uffe0\064\112\065\uffe0\066\uffe0\001\002\000\112" +
"\002\uffd5\004\uffd5\005\uffd5\011\uffd5\014\uffd5\015\uffd5\017" +
"\uffd5\021\uffd5\022\uffd5\023\uffd5\024\uffd5\026\uffd5\030\uffd5" +
"\031\uffd5\033\uffd5\036\uffd5\037\uffd5\040\uffd5\041\uffd5\043" +
"\uffd5\046\uffd5\047\uffd5\050\uffd5\051\uffd5\052\065\053\uffd5" +
"\054\uffd5\055\uffd5\057\uffd5\061\uffd5\062\uffd5\063\uffd5\064" +
"\uffd5\065\uffd5\066\uffd5\067\uffd5\001\002\000\122\002\ufffb" +
"\004\ufffb\005\ufffb\011\ufffb\014\ufffb\015\ufffb\017\ufffb\021" +
"\ufffb\022\ufffb\023\ufffb\024\ufffb\026\ufffb\030\ufffb\031\ufffb" +
"\033\ufffb\036\ufffb\037\ufffb\040\ufffb\041\ufffb\042\ufffb\043" +
"\ufffb\046\ufffb\047\ufffb\050\ufffb\051\ufffb\052\ufffb\053\ufffb" +
"\054\ufffb\055\ufffb\057\ufffb\060\ufffb\061\ufffb\062\ufffb\063" +
"\ufffb\064\ufffb\065\ufffb\066\ufffb\067\ufffb\073\ufffb\074\ufffb" +
"\001\002\000\004\030\uff8e\001\002\000\004\033\uff84\001" +
"\002\000\004\030\204\001\002\000\004\033\173\001\002" +
"\000\016\014\044\033\035\071\034\072\050\073\037\074" +
"\045\001\002\000\010\030\uff81\050\uff81\052\202\001\002" +
"\000\024\002\ufff1\005\ufff1\011\ufff1\030\ufff1\033\ufff1\042" +
"\ufff1\050\ufff1\052\ufff1\066\ufff1\001\002\000\006\030\uff83" +
"\050\200\001\002\000\004\030\uff86\001\002\000\016\014" +
"\044\033\035\071\034\072\050\073\037\074\045\001\002" +
"\000\004\030\uff82\001\002\000\016\014\044\033\035\071" +
"\034\072\050\073\037\074\045\001\002\000\024\002\ufff0" +
"\005\ufff0\011\ufff0\030\ufff0\033\ufff0\042\ufff0\050\ufff0\052" +
"\ufff0\066\ufff0\001\002\000\020\006\207\012\206\013\213" +
"\032\214\034\215\035\205\070\210\001\002\000\006\020" +
"\uff8a\050\uff8a\001\002\000\006\020\uff89\050\uff89\001\002" +
"\000\004\060\216\001\002\000\006\020\uff88\050\uff88\001" +
"\002\000\006\020\uff93\050\uff93\001\002\000\006\020\uff92" +
"\050\uff92\001\002\000\006\020\uff8d\050\uff8d\001\002\000" +
"\006\020\uff8b\050\uff8b\001\002\000\006\020\uff8c\050\uff8c" +
"\001\002\000\004\070\217\001\002\000\004\066\220\001" +
"\002\000\006\020\uff87\050\uff87\001\002\000\042\007\055" +
"\010\033\014\044\026\026\027\061\033\035\056\032\060" +
"\031\062\053\064\022\070\042\071\034\072\050\073\037" +
"\074\045\075\036\001\002\000\006\005\223\047\077\001" +
"\002\000\016\014\044\033\035\071\034\072\050\073\037" +
"\074\045\001\002\000\004\066\225\001\002\000\112\002" +
"\uffcc\004\uffcc\005\uffcc\011\uffcc\014\uffcc\015\uffcc\017\uffcc" +
"\021\uffcc\022\uffcc\023\uffcc\024\uffcc\026\uffcc\030\uffcc\031" +
"\uffcc\033\uffcc\036\uffcc\037\uffcc\040\uffcc\041\uffcc\043\uffcc" +
"\046\uffcc\047\uffcc\050\uffcc\051\uffcc\052\uffcc\053\uffcc\054" +
"\uffcc\055\uffcc\057\uffcc\061\uffcc\062\uffcc\063\uffcc\064\uffcc" +
"\065\uffcc\066\uffcc\067\uffcc\001\002\000\004\065\227\001" +
"\002\000\112\002\uffca\004\uffca\005\uffca\011\uffca\014\uffca" +
"\015\uffca\017\uffca\021\uffca\022\uffca\023\uffca\024\uffca\026" +
"\uffca\030\uffca\031\uffca\033\uffca\036\uffca\037\uffca\040\uffca" +
"\041\uffca\043\uffca\046\uffca\047\uffca\050\uffca\051\uffca\052" +
"\uffca\053\uffca\054\uffca\055\uffca\057\uffca\061\uffca\062\uffca" +
"\063\uffca\064\uffca\065\uffca\066\uffca\067\uffca\001\002\000" +
"\004\066\231\001\002\000\112\002\uffcb\004\uffcb\005\uffcb" +
"\011\uffcb\014\uffcb\015\uffcb\017\uffcb\021\uffcb\022\uffcb\023" +
"\uffcb\024\uffcb\026\uffcb\030\uffcb\031\uffcb\033\uffcb\036\uffcb" +
"\037\uffcb\040\uffcb\041\uffcb\043\uffcb\046\uffcb\047\uffcb\050" +
"\uffcb\051\uffcb\052\uffcb\053\uffcb\054\uffcb\055\uffcb\057\uffcb" +
"\061\uffcb\062\uffcb\063\uffcb\064\uffcb\065\uffcb\066\uffcb\067" +
"\uffcb\001\002\000\052\002\uffe8\004\uffe8\005\uffe8\011\uffe8" +
"\014\uffe8\015\uffe8\017\uffe8\024\uffe8\030\uffe8\031\uffe8\033" +
"\uffe8\036\uffe8\037\uffe8\040\uffe8\041\uffe8\043\uffe8\047\uffe8" +
"\050\uffe8\065\uffe8\066\uffe8\001\002\000\046\007\055\010" +
"\033\014\044\026\026\027\061\033\035\050\uffb6\056\032" +
"\060\031\062\053\064\022\066\uffb5\070\042\071\034\072" +
"\050\073\037\074\045\075\036\001\002\000\004\066\235" +
"\001\002\000\112\002\uffcd\004\uffcd\005\uffcd\011\uffcd\014" +
"\uffcd\015\uffcd\017\uffcd\021\uffcd\022\uffcd\023\uffcd\024\uffcd" +
"\026\uffcd\030\uffcd\031\uffcd\033\uffcd\036\uffcd\037\uffcd\040" +
"\uffcd\041\uffcd\043\uffcd\046\uffcd\047\uffcd\050\uffcd\051\uffcd" +
"\052\uffcd\053\uffcd\054\uffcd\055\uffcd\057\uffcd\061\uffcd\062" +
"\uffcd\063\uffcd\064\uffcd\065\uffcd\066\uffcd\067\uffcd\001\002" +
"\000\112\002\uffd6\004\uffd6\005\uffd6\011\uffd6\014\uffd6\015" +
"\uffd6\017\uffd6\021\uffd6\022\uffd6\023\uffd6\024\uffd6\026\uffd6" +
"\030\uffd6\031\uffd6\033\uffd6\036\uffd6\037\uffd6\040\uffd6\041" +
"\uffd6\043\uffd6\046\uffd6\047\uffd6\050\uffd6\051\uffd6\052\065" +
"\053\uffd6\054\uffd6\055\uffd6\057\uffd6\061\uffd6\062\uffd6\063" +
"\uffd6\064\uffd6\065\uffd6\066\uffd6\067\uffd6\001\002\000\020" +
"\014\044\033\035\060\241\071\034\072\050\073\037\074" +
"\045\001\002\000\016\002\uffef\011\uffef\033\uffef\042\uffef" +
"\052\202\066\uffef\001\002\000\006\036\uffac\044\005\001" +
"\002\000\014\002\uffa6\011\uffa6\033\uffa6\042\245\066\uffa6" +
"\001\002\000\014\002\uffaf\011\uffaf\033\uffaf\042\uffaf\066" +
"\uffaf\001\002\000\014\002\uff80\011\uff80\033\uff80\042\uff80" +
"\066\uff80\001\002\000\042\007\055\010\033\014\044\026" +
"\026\027\061\033\035\056\032\060\031\062\053\064\022" +
"\070\042\071\034\072\050\073\037\074\045\075\036\001" +
"\002\000\012\002\uffa4\011\252\033\uff7d\066\uffa4\001\002" +
"\000\006\002\uffa3\066\uffa3\001\002\000\004\033\253\001" +
"\002\000\006\002\uffad\066\uffad\001\002\000\004\033\uff7c" +
"\001\002\000\016\014\044\033\035\071\034\072\050\073" +
"\037\074\045\001\002\000\012\002\uff79\050\uff79\052\202" +
"\066\uff79\001\002\000\006\002\uff7e\066\uff7e\001\002\000" +
"\010\002\uff7b\050\257\066\uff7b\001\002\000\016\014\044" +
"\033\035\071\034\072\050\073\037\074\045\001\002\000" +
"\006\002\uff7a\066\uff7a\001\002\000\012\002\uffa5\011\uffa5" +
"\033\uffa5\066\uffa5\001\002\000\014\002\uff7f\011\uff7f\033" +
"\uff7f\047\077\066\uff7f\001\002\000\004\066\264\001\002" +
"\000\014\002\uffae\011\uffae\033\uffae\042\uffae\066\uffae\001" +
"\002\000\010\002\uffb0\031\101\043\102\001\002\000\004" +
"\002\001\001\002\000\004\036\uffab\001\002\000\010\024" +
"\uffa0\036\uffa0\037\uffa0\001\002\000\010\024\274\036\uffa2" +
"\037\272\001\002\000\016\014\044\033\035\071\034\072" +
"\050\073\037\074\045\001\002\000\010\024\uff9f\036\uff9f" +
"\037\uff9f\001\002\000\016\014\044\033\035\071\034\072" +
"\050\073\037\074\045\001\002\000\004\005\277\001\002" +
"\000\006\005\uff98\052\202\001\002\000\044\007\055\010" +
"\033\014\044\026\026\027\061\033\035\056\032\060\031" +
"\062\053\064\022\070\042\071\034\072\050\073\037\074" +
"\045\075\036\076\301\001\002\000\016\024\uff9c\031\101" +
"\036\uff9c\037\uff9c\043\102\050\302\001\002\000\012\024" +
"\uff9c\036\uff9c\037\uff9c\050\302\001\002\000\016\014\044" +
"\033\035\071\034\072\050\073\037\074\045\001\002\000" +
"\010\024\uff9e\036\uff9e\037\uff9e\001\002\000\010\024\uff9b" +
"\036\uff9b\037\uff9b\001\002\000\012\024\uff9a\036\uff9a\037" +
"\uff9a\050\311\001\002\000\004\053\307\001\002\000\042" +
"\007\055\010\033\014\044\026\026\027\061\033\035\056" +
"\032\060\031\062\053\064\022\070\042\071\034\072\050" +
"\073\037\074\045\075\036\001\002\000\016\024\uff97\031" +
"\101\036\uff97\037\uff97\043\102\050\uff97\001\002\000\016" +
"\014\044\033\035\071\034\072\050\073\037\074\045\001" +
"\002\000\010\024\uff99\036\uff99\037\uff99\001\002\000\010" +
"\024\uff9d\036\uff9d\037\uff9d\001\002\000\004\005\316\001" +
"\002\000\006\005\uff94\052\202\001\002\000\044\007\055" +
"\010\033\014\044\026\026\027\061\033\035\056\032\060" +
"\031\062\053\064\022\070\042\071\034\072\050\073\037" +
"\074\045\075\036\076\317\001\002\000\010\024\uff96\036" +
"\uff96\037\uff96\001\002\000\012\024\uff95\036\uff95\037\uff95" +
"\047\077\001\002\000\004\036\uffa1\001\002" });
/** Access to parse-action table. */
public short[][] action_table() {return _action_table;}
/** <code>reduce_goto</code> table. */
protected static final short[][] _reduce_table =
unpackFromStrings(new String[] {
"\000\317\000\010\024\003\026\005\076\007\001\001\000" +
"\002\001\001\000\012\025\270\050\267\051\272\071\266" +
"\001\001\000\002\001\001\000\046\004\023\011\042\013" +
"\045\014\055\015\053\016\051\017\050\020\264\022\056" +
"\037\061\040\022\041\027\042\063\043\062\044\026\045" +
"\057\046\024\047\046\001\001\000\002\001\001\000\012" +
"\003\013\057\012\060\015\061\011\001\001\000\002\001" +
"\001\000\050\004\023\007\037\011\042\013\045\014\055" +
"\015\053\016\051\017\050\020\040\022\056\037\061\040" +
"\022\041\027\042\063\043\062\044\026\045\057\046\024" +
"\047\046\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\010\003\013\057\012" +
"\060\020\001\001\000\002\001\001\000\030\004\023\022" +
"\235\037\061\040\022\041\027\042\063\043\062\044\026" +
"\045\057\046\024\047\046\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\042\004\023\011\042" +
"\013\045\014\055\015\053\016\231\022\056\037\061\040" +
"\022\041\027\042\063\043\062\044\026\045\057\046\024" +
"\047\046\001\001\000\002\001\001\000\002\001\001\000" +
"\054\004\023\007\075\010\073\011\042\013\045\014\055" +
"\015\053\016\051\017\050\020\040\022\056\037\061\040" +
"\022\041\027\042\063\043\062\044\026\045\057\046\024" +
"\047\046\067\227\001\001\000\056\004\023\007\075\010" +
"\073\011\042\013\045\014\055\015\053\016\051\017\050" +
"\020\040\022\056\037\061\040\022\041\027\042\063\043" +
"\062\044\026\045\057\046\024\047\046\067\074\070\225" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
"\001\000\002\001\001\000\002\001\001\000\010\054\171" +
"\065\166\066\170\001\001\000\002\001\001\000\002\001" +
"\001\000\002\001\001\000\002\001\001\000\002\001\001" +
"\000\002\001\001\000\010\044\165\045\057\046\024\001" +
"\001\000\002\001\001\000\002\001\001\000\002\001\001" +
"\000\030\004\023\022\164\037\061\040\022\041\027\042" +
"\063\043\062\044\026\045\057\046\024\047\046\001\001" +
"\000\004\036\140\001\001\000\050\004\023\011\042\013" +
"\045\014\055\015\053\016\051\017\050\020\123\021\124" +
"\022\056\037\061\040\022\041\027\042\063\043\062\044" +
"\026\045\057\046\024\047\046\001\001\000\002\001\001" +
"\000\002\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\024" +
"\037\061\040\065\041\070\042\067\043\066\044\026\045" +
"\057\046\024\047\046\001\001\000\002\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001\000\056\004" +
"\023\007\075\010\073\011\042\013\045\014\055\015\053" +
"\016\051\017\050\020\040\022\056\037\061\040\022\041" +
"\027\042\063\043\062\044\026\045\057\046\024\047\046" +
"\067\074\070\072\001\001\000\002\001\001\000\002\001" +
"\001\000\002\001\001\000\002\001\001\000\046\004\023" +
"\011\042\013\045\014\055\015\053\016\051\017\050\020" +
"\077\022\056\037\061\040\022\041\027\042\063\043\062" +
"\044\026\045\057\046\024\047\046\001\001\000\002\001" +
"\001\000\044\004\023\011\042\013\045\014\055\015\053" +
"\016\051\017\105\022\056\037\061\040\022\041\027\042" +
"\063\043\062\044\026\045\057\046\024\047\046\001\001" +
"\000\044\004\023\011\042\013\045\014\055\015\053\016" +
"\051\017\102\022\056\037\061\040\022\041\027\042\063" +
"\043\062\044\026\045\057\046\024\047\046\001\001\000" +
"\002\001\001\000\042\004\023\011\042\013\045\014\055" +
"\015\053\016\104\022\056\037\061\040\022\041\027\042" +
"\063\043\062\044\026\045\057\046\024\047\046\001\001" +
"\000\002\001\001\000\002\001\001\000\054\004\023\007" +
"\075\010\073\011\042\013\045\014\055\015\053\016\051" +
"\017\050\020\040\022\056\037\061\040\022\041\027\042" +
"\063\043\062\044\026\045\057\046\024\047\046\067\107" +
"\001\001\000\002\001\001\000\002\001\001\000\034\004" +
"\023\011\042\013\122\022\056\037\061\040\022\041\027" +
"\042\063\043\062\044\026\045\057\046\024\047\046\001" +
"\001\000\034\004\023\011\042\013\121\022\056\037\061" +
"\040\022\041\027\042\063\043\062\044\026\045\057\046" +
"\024\047\046\001\001\000\034\004\023\011\042\013\114" +
"\022\056\037\061\040\022\041\027\042\063\043\062\044" +
"\026\045\057\046\024\047\046\001\001\000\002\001\001" +
"\000\032\004\023\011\120\022\056\037\061\040\022\041" +
"\027\042\063\043\062\044\026\045\057\046\024\047\046" +
"\001\001\000\032\004\023\011\117\022\056\037\061\040" +
"\022\041\027\042\063\043\062\044\026\045\057\046\024" +
"\047\046\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\004" +
"\075\125\001\001\000\006\006\126\077\131\001\001\000" +
"\002\001\001\000\046\004\023\011\042\013\045\014\055" +
"\015\053\016\051\017\050\020\135\022\056\037\061\040" +
"\022\041\027\042\063\043\062\044\026\045\057\046\024" +
"\047\046\001\001\000\046\004\023\011\042\013\045\014" +
"\055\015\053\016\051\017\050\020\132\022\056\037\061" +
"\040\022\041\027\042\063\043\062\044\026\045\057\046" +
"\024\047\046\001\001\000\002\001\001\000\002\001\001" +
"\000\046\004\023\011\042\013\045\014\055\015\053\016" +
"\051\017\050\020\134\022\056\037\061\040\022\041\027" +
"\042\063\043\062\044\026\045\057\046\024\047\046\001" +
"\001\000\002\001\001\000\002\001\001\000\002\001\001" +
"\000\036\004\023\011\042\013\045\014\163\022\056\037" +
"\061\040\022\041\027\042\063\043\062\044\026\045\057" +
"\046\024\047\046\001\001\000\036\004\023\011\042\013" +
"\045\014\162\022\056\037\061\040\022\041\027\042\063" +
"\043\062\044\026\045\057\046\024\047\046\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001\000\036\004" +
"\023\011\042\013\045\014\155\022\056\037\061\040\022" +
"\041\027\042\063\043\062\044\026\045\057\046\024\047" +
"\046\001\001\000\002\001\001\000\036\004\023\011\042" +
"\013\045\014\152\022\056\037\061\040\022\041\027\042" +
"\063\043\062\044\026\045\057\046\024\047\046\001\001" +
"\000\002\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\036\004\023\011\042\013\045\014\161" +
"\022\056\037\061\040\022\041\027\042\063\043\062\044" +
"\026\045\057\046\024\047\046\001\001\000\036\004\023" +
"\011\042\013\045\014\160\022\056\037\061\040\022\041" +
"\027\042\063\043\062\044\026\045\057\046\024\047\046" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
"\001\000\002\001\001\000\002\001\001\000\002\001\001" +
"\000\002\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\032\030\173\037\061\040\174\041\027" +
"\042\063\043\062\044\026\045\057\046\024\047\046\055" +
"\175\073\176\001\001\000\002\001\001\000\002\001\001" +
"\000\002\001\001\000\002\001\001\000\032\030\173\037" +
"\061\040\174\041\027\042\063\043\062\044\026\045\057" +
"\046\024\047\046\055\175\073\200\001\001\000\002\001" +
"\001\000\024\037\061\040\202\041\027\042\063\043\062" +
"\044\026\045\057\046\024\047\046\001\001\000\002\001" +
"\001\000\006\035\210\100\211\001\001\000\002\001\001" +
"\000\002\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
"\001\000\002\001\001\000\050\004\023\007\221\011\042" +
"\013\045\014\055\015\053\016\051\017\050\020\040\022" +
"\056\037\061\040\022\041\027\042\063\043\062\044\026" +
"\045\057\046\024\047\046\001\001\000\002\001\001\000" +
"\024\037\061\040\223\041\027\042\063\043\062\044\026" +
"\045\057\046\024\047\046\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001\000\056\004" +
"\023\007\075\010\073\011\042\013\045\014\055\015\053" +
"\016\051\017\050\020\040\022\056\037\061\040\022\041" +
"\027\042\063\043\062\044\026\045\057\046\024\047\046" +
"\067\074\070\233\001\001\000\002\001\001\000\002\001" +
"\001\000\002\001\001\000\034\005\241\030\237\031\243" +
"\032\242\037\061\040\174\041\027\042\063\043\062\044" +
"\026\045\057\046\024\047\046\001\001\000\002\001\001" +
"\000\006\024\262\076\007\001\001\000\004\023\245\001" +
"\001\000\002\001\001\000\002\001\001\000\052\004\023" +
"\007\261\011\042\012\260\013\045\014\055\015\053\016" +
"\051\017\050\020\040\022\056\037\061\040\022\041\027" +
"\042\063\043\062\044\026\045\057\046\024\047\046\001" +
"\001\000\010\053\247\062\246\063\250\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
"\001\000\032\027\255\030\253\037\061\040\174\041\027" +
"\042\063\043\062\044\026\045\057\046\024\047\046\074" +
"\254\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\032\027\255\030\253\037\061\040\174\041" +
"\027\042\063\043\062\044\026\045\057\046\024\047\046" +
"\074\257\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
"\001\000\012\025\270\050\267\051\272\071\320\001\001" +
"\000\030\030\314\034\313\037\061\040\174\041\027\042" +
"\063\043\062\044\026\045\057\046\024\047\046\001\001" +
"\000\002\001\001\000\030\030\275\033\274\037\061\040" +
"\174\041\027\042\063\043\062\044\026\045\057\046\024" +
"\047\046\001\001\000\002\001\001\000\002\001\001\000" +
"\046\004\023\011\042\013\045\014\055\015\053\016\051" +
"\017\050\020\277\022\056\037\061\040\022\041\027\042" +
"\063\043\062\044\026\045\057\046\024\047\046\001\001" +
"\000\004\064\312\001\001\000\004\064\302\001\001\000" +
"\030\037\061\040\305\041\027\042\063\043\062\044\026" +
"\045\057\046\024\047\046\052\304\072\303\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\046\004\023\011\042\013\045\014\055\015" +
"\053\016\051\017\050\020\307\022\056\037\061\040\022" +
"\041\027\042\063\043\062\044\026\045\057\046\024\047" +
"\046\001\001\000\002\001\001\000\030\037\061\040\305" +
"\041\027\042\063\043\062\044\026\045\057\046\024\047" +
"\046\052\304\072\311\001\001\000\002\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001\000\050\004" +
"\023\007\317\011\042\013\045\014\055\015\053\016\051" +
"\017\050\020\040\022\056\037\061\040\022\041\027\042" +
"\063\043\062\044\026\045\057\046\024\047\046\001\001" +
"\000\002\001\001\000\002\001\001\000\002\001\001" });
/** Access to <code>reduce_goto</code> table. */
public short[][] reduce_table() {return _reduce_table;}
/** Instance of action encapsulation class. */
protected CUP$DefaultMdxParser$actions action_obj;
/** Action encapsulation object initializer. */
protected void init_actions()
{
action_obj = new CUP$DefaultMdxParser$actions(this);
}
/** Invoke a user supplied parse action. */
public java_cup.runtime.Symbol do_action(
int act_num,
java_cup.runtime.lr_parser parser,
java.util.Stack stack,
int top)
throws java.lang.Exception
{
/* call code in generated class */
return action_obj.CUP$DefaultMdxParser$do_action(act_num, parser, stack, top);
}
/** Indicates start state. */
public int start_state() {return 0;}
/** Indicates start production. */
public int start_production() {return 0;}
/** <code>EOF</code> Symbol index. */
public int EOF_sym() {return 0;}
/** <code>error</code> Symbol index. */
public int error_sym() {return 1;}
/** User initialization code. */
public void user_init() throws java.lang.Exception
{
scanner.init();
}
/** Scan to get the next Symbol. */
public java_cup.runtime.Symbol scan()
throws java.lang.Exception
{
return scanner.next_token();
}
// Generated from $Id: DefaultMdxParser.cup 381 2010-12-17 07:49:03Z jhyde $
Scanner scanner;
private String queryString;
private DefaultMdxParserImpl.FunTable funTable;
/**
* Recursively parses an expression.
*/
ParseTreeNode recursivelyParseExp(String s)
{
return new DefaultMdxParser().parseExpression(
s, false, funTable);
}
/**
* Parses a string to create a {@link SelectNode}.
*/
SelectNode parseSelect(
String queryString,
boolean debug,
DefaultMdxParserImpl.FunTable funTable)
{
Symbol parse_tree = null;
this.scanner = new StringScanner(queryString, debug);
this.queryString = queryString;
this.funTable = funTable;
try {
if (debug) {
parse_tree = debug_parse();
} else {
parse_tree = parse();
}
return (SelectNode) parse_tree.value;
} catch (Exception e) {
throw new RuntimeException(
"Error while parsing MDX statement '" + queryString + "'",
e);
} finally {
this.scanner = null;
this.queryString = null;
this.funTable = null;
}
}
/**
* Parses a string to create an expression.
*/
ParseTreeNode parseExpression(
String queryString,
boolean debug,
DefaultMdxParserImpl.FunTable funTable)
{
Symbol parse_tree = null;
this.scanner = new PrefixScanner(
debug,
new StringScanner(queryString, debug),
new int[] {DefaultMdxParserSym._VALUE_EXPRESSION});
this.queryString = queryString;
this.funTable = funTable;
try {
if (debug) {
parse_tree = debug_parse();
} else {
parse_tree = parse();
}
return (ParseTreeNode) parse_tree.value;
} catch (Exception e) {
throw new RuntimeException(
"Syntax error while parsing MDX expression '" + queryString
+ "'",
e);
} finally {
this.scanner = null;
this.queryString = null;
this.funTable = null;
}
}
/**
* Scanner which returns a list of pre-programmed tokens, then switches
* to a parent scanner.
*/
private static class PrefixScanner extends Scanner {
private final Scanner parent;
private final int tokens[];
private int i;
PrefixScanner(boolean debug, Scanner parent, int[] tokens) {
super(debug);
this.parent = parent;
this.tokens = tokens;
}
public void init() throws java.io.IOException {
i = 0;
parent.init();
}
public Symbol next_token() throws java.io.IOException {
if (i < tokens.length) {
return new Symbol(tokens[i++], 0, 0, null);
}
return parent.next_token();
}
ParseRegion createRegion(int left, int right) {
return parent.createRegion(left, right);
}
}
/**
* Creates a {@link SelectNode} object.
* Override this function to make your kind of query.
*/
protected SelectNode newSelect(
ParseRegion region,
List<ParseTreeNode> withList,
List<AxisNode> axisList,
ParseTreeNode from,
ParseTreeNode filter,
List<IdentifierNode> cellProps)
{
final AxisNode filterAxis =
filter == null
? null
: new AxisNode(
filter.getRegion(), false, Axis.FILTER,
Collections.<IdentifierNode>emptyList(), filter);
// sort axes by ordinal
Collections.sort(
axisList,
new Comparator<AxisNode>() {
public int compare(AxisNode o1, AxisNode o2) {
return o1.getAxis().axisOrdinal()
- o2.getAxis().axisOrdinal();
}
});
return new SelectNode(
region, withList, axisList, from, filterAxis, cellProps);
}
// Override lr_parser methods for NLS. With this error handling scheme,
// all errors are fatal.
public void report_fatal_error(
String message,
Object info)
throws java.lang.Exception
{
done_parsing();
try {
report_error(message, info);
} catch (Throwable e) {
throw new RuntimeException(
"MDX parser cannot recover from previous error(s)",
e);
}
}
// override lr_parser method
public void report_error(String message, Object info)
{
// "Error: %1"
throw new RuntimeException("Error: " + message);
}
// override lr_parser method
public void syntax_error(Symbol cur_token)
{
String s = cur_token.value.toString();
if (cur_token.left != -1) {
final ParseRegion region =
scanner.createRegion(cur_token.left, cur_token.right);
throw new MdxParseException(
region,
"Syntax error at " + region
+ ", token '" + s + "'");
} else {
throw new RuntimeException(
"Syntax error at token '" + s + "'");
}
}
public void unrecovered_syntax_error(Symbol cur_token)
throws java.lang.Exception
{
report_fatal_error("Couldn't repair and continue parse", cur_token);
}
/**
* Returns whether the given identifier can possibly the name of an operator
* with property syntax.
*
* <p>For example, <code>isFunCall("ORDINAL")</code>
* returns true because there is a "<Level>.Ordinal" property.</p>
*/
protected boolean isFunCall(String s) {
return funTable.isProperty(s);
}
}
/** Cup generated class to encapsulate user supplied action code.*/
class CUP$DefaultMdxParser$actions {
ParseRegion createRegion(final int... ordinals) {
assert ordinals.length % 2 == 0;
return ParseRegion.sum(
new Iterable<ParseRegion>() {
public Iterator<ParseRegion> iterator() {
return new Iterator<ParseRegion>() {
int i = 0;
public boolean hasNext() {
return i < ordinals.length;
}
public ParseRegion next() {
return parser.scanner.createRegion(
ordinals[i++], ordinals[i++]);
}
public void remove() {
throw new UnsupportedOperationException();
}
};
}
}
);
}
static <T> List<T> emptyList(List<T> list) {
if (list == null) {
return Collections.emptyList();
}
return list;
}
private final DefaultMdxParser parser;
/** Constructor */
CUP$DefaultMdxParser$actions(DefaultMdxParser parser) {
this.parser = parser;
}
/** Method with the actual generated action code. */
public final java_cup.runtime.Symbol CUP$DefaultMdxParser$do_action(
int CUP$DefaultMdxParser$act_num,
java_cup.runtime.lr_parser CUP$DefaultMdxParser$parser,
java.util.Stack CUP$DefaultMdxParser$stack,
int CUP$DefaultMdxParser$top)
throws java.lang.Exception
{
/* Symbol object for return from actions */
java_cup.runtime.Symbol CUP$DefaultMdxParser$result;
/* select the action based on the action number */
switch (CUP$DefaultMdxParser$act_num)
{
/*. . . . . . . . . . . . . . . . . . . .*/
case 136: // cell_property ::= compound_id
{
IdentifierNode RESULT = null;
// Default action for single-symbol production
RESULT = (IdentifierNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(21/*cell_property*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 135: // cell_property_list ::= cell_property COMMA cell_property_list
{
List RESULT = null;
int pleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int pright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
IdentifierNode p = (IdentifierNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int p1left = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int p1right = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
List p1 = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
p1.add(0, p);
RESULT = p1;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(58/*cell_property_list*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 134: // cell_property_list ::= cell_property
{
List RESULT = null;
int pleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int pright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
IdentifierNode p = (IdentifierNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
RESULT = new LinkedList();
RESULT.add(p);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(58/*cell_property_list*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 133: // cell_opt ::= CELL
{
Object RESULT = null;
// Default action for single-symbol production
RESULT = (Object)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(41/*cell_opt*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 132: // cell_opt ::=
{
Object RESULT = null;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(41/*cell_opt*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 131: // cell_props ::= cell_opt PROPERTIES cell_property_list
{
List RESULT = null;
int p1left = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int p1right = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
List p1 = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
RESULT = p1;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(48/*cell_props*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 130: // filter_specification ::= expression
{
ParseTreeNode RESULT = null;
// Default action for single-symbol production
RESULT = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(8/*filter_specification*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 129: // cube_specification ::= cube_name
{
IdentifierNode RESULT = null;
// Default action for single-symbol production
RESULT = (IdentifierNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(24/*cube_specification*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 128: // property ::= compound_id
{
Object RESULT = null;
// Default action for single-symbol production
RESULT = (IdentifierNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(43/*property*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 127: // property_list ::= property COMMA property_list
{
List RESULT = null;
int pleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int pright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
Object p = (Object)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int plleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int plright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
List pl = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
pl.add(0, p);
RESULT = pl;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(57/*property_list*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 126: // property_list ::= property
{
List RESULT = null;
int pleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int pright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
Object p = (Object)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
RESULT = new LinkedList();
RESULT.add(p);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(57/*property_list*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 125: // dimension_opt ::= DIMENSION
{
Object RESULT = null;
// Default action for single-symbol production
RESULT = (Object)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(42/*dimension_opt*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 124: // dimension_opt ::=
{
Object RESULT = null;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(42/*dimension_opt*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 123: // dim_props ::= dimension_opt PROPERTIES property_list
{
List RESULT = null;
int plleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int plright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
List pl = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
RESULT = pl;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(51/*dim_props*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 122: // axis_number ::= AXIS LPAREN NUMBER RPAREN
{
BigDecimal RESULT = null;
int nleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left;
int nright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).right;
BigDecimal n = (BigDecimal)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).value;
RESULT = n;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(62/*axis_number*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 121: // axis_number ::= NUMBER
{
BigDecimal RESULT = null;
// Default action for single-symbol production
RESULT = (BigDecimal)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(62/*axis_number*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 120: // axis_name ::= CHAPTERS
{
Axis.Standard RESULT = null;
RESULT = Axis.CHAPTERS;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(27/*axis_name*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 119: // axis_name ::= SECTIONS
{
Axis.Standard RESULT = null;
RESULT = Axis.SECTIONS;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(27/*axis_name*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 118: // axis_name ::= PAGES
{
Axis.Standard RESULT = null;
RESULT = Axis.PAGES;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(27/*axis_name*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 117: // axis_name ::= ROWS
{
Axis.Standard RESULT = null;
RESULT = Axis.ROWS;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(27/*axis_name*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 116: // axis_name ::= COLUMNS
{
Axis.Standard RESULT = null;
RESULT = Axis.COLUMNS;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(27/*axis_name*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 115: // dim_props_opt ::= dim_props
{
List RESULT = null;
// Default action for single-symbol production
RESULT = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(52/*dim_props_opt*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 114: // dim_props_opt ::=
{
List RESULT = null;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(52/*dim_props_opt*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 113: // non_empty_opt ::= NON EMPTY
{
Boolean RESULT = null;
RESULT = Boolean.TRUE;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(45/*non_empty_opt*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 112: // non_empty_opt ::=
{
Boolean RESULT = null;
RESULT = Boolean.FALSE;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(45/*non_empty_opt*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 111: // axis_specification ::= non_empty_opt expression dim_props_opt ON axis_number
{
AxisNode RESULT = null;
int bleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-4)).left;
int bright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-4)).right;
Boolean b = (Boolean)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-4)).value;
int sleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).left;
int sright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).right;
ParseTreeNode s = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).value;
int dpleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int dpright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
List dp = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int nleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int nright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
BigDecimal n = (BigDecimal)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
double d = n.doubleValue();
int index = (int)d;
// AxisOrdinal values go from -2 to 4 for standard axis, but higher
// ordinals are allowed. The negative values represent
// special cases, so are ignored.
if (index < 0 || index != d) {
throw new MdxParseException(
createRegion(nleft, nright),
"Invalid axis specification. The axis number must be a "
+ "non-negative integer, but it was " + d + ".");
}
Axis axis = Axis.Factory.forOrdinal(index);
ParseRegion region = createRegion(
bleft, bright, sleft, sright, dpleft, dpright, nleft, nright);
RESULT = new AxisNode(region, b, axis, emptyList(dp), s);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(1/*axis_specification*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-4)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 110: // axis_specification ::= non_empty_opt expression dim_props_opt ON axis_name
{
AxisNode RESULT = null;
int bleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-4)).left;
int bright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-4)).right;
Boolean b = (Boolean)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-4)).value;
int sleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).left;
int sright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).right;
ParseTreeNode s = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).value;
int dpleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int dpright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
List dp = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int aleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int aright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
Axis.Standard a = (Axis.Standard)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(
bleft, bright, sleft, sright, dpleft, dpright, aleft, aright);
RESULT = new AxisNode(region, b, a, emptyList(dp), s);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(1/*axis_specification*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-4)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 109: // set_name ::= compound_id
{
IdentifierNode RESULT = null;
// Default action for single-symbol production
RESULT = (IdentifierNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(26/*set_name*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 108: // set_specification ::= SET set_name AS expression
{
WithSetNode RESULT = null;
int setleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).left;
int setright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).right;
Object set = (Object)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).value;
int nleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int nright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
IdentifierNode n = (IdentifierNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int eleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int eright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
ParseTreeNode e = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(setleft, eright);
RESULT = new WithSetNode(region, n, e);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(39/*set_specification*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 107: // set_specification ::= SET set_name AS FORMULA_STRING
{
WithSetNode RESULT = null;
int setleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).left;
int setright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).right;
Object set = (Object)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).value;
int nleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int nright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
IdentifierNode n = (IdentifierNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int sleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int sright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
String s = (String)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseTreeNode e = parser.recursivelyParseExp(s);
ParseRegion region = createRegion(setleft, sright);
RESULT = new WithSetNode(region, n, e);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(39/*set_specification*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 106: // member_property_definition ::= identifier EQ value_expression
{
PropertyValueNode RESULT = null;
int idleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int idright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
IdentifierSegment id = (IdentifierSegment)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int eleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int eright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
ParseTreeNode e = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(idleft, eright);
RESULT = new PropertyValueNode(region, id.getName(), e);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(40/*member_property_definition*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 105: // member_name ::= compound_id
{
IdentifierNode RESULT = null;
// Default action for single-symbol production
RESULT = (IdentifierNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(25/*member_name*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 104: // member_property_def_list ::= member_property_definition COMMA member_property_def_list
{
List RESULT = null;
int hdleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int hdright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
PropertyValueNode hd = (PropertyValueNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int tlleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int tlright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
List tl = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
RESULT = tl;
RESULT.add(0, hd);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(56/*member_property_def_list*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 103: // member_property_def_list ::= member_property_definition
{
List RESULT = null;
int mleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int mright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
PropertyValueNode m = (PropertyValueNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
RESULT = new LinkedList();
RESULT.add(m);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(56/*member_property_def_list*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 102: // comma_member_property_def_list_opt ::= COMMA member_property_def_list
{
List RESULT = null;
int lleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int lright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
List l = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
RESULT = l;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(50/*comma_member_property_def_list_opt*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 101: // comma_member_property_def_list_opt ::=
{
List RESULT = null;
RESULT = new LinkedList();
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(50/*comma_member_property_def_list_opt*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 100: // member_specification ::= MEMBER member_name AS value_expression comma_member_property_def_list_opt
{
WithMemberNode RESULT = null;
int memberleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-4)).left;
int memberright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-4)).right;
Object member = (Object)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-4)).value;
int mleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).left;
int mright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).right;
IdentifierNode m = (IdentifierNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).value;
int eleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left;
int eright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).right;
ParseTreeNode e = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).value;
int lleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int lright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
List l = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(memberleft, eright);
RESULT = new WithMemberNode(region, m, e, l);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(38/*member_specification*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-4)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 99: // member_specification ::= MEMBER member_name AS FORMULA_STRING comma_member_property_def_list_opt
{
WithMemberNode RESULT = null;
int memberleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-4)).left;
int memberright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-4)).right;
Object member = (Object)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-4)).value;
int mleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).left;
int mright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).right;
IdentifierNode m = (IdentifierNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).value;
int sleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left;
int sright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).right;
String s = (String)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).value;
int lleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int lright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
List l = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseTreeNode e = parser.recursivelyParseExp(s);
ParseRegion region = createRegion(memberleft, sright);
RESULT = new WithMemberNode(region, m, e, l);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(38/*member_specification*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-4)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 98: // single_formula_specification ::= set_specification
{
ParseTreeNode RESULT = null;
// Default action for single-symbol production
RESULT = (WithSetNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(19/*single_formula_specification*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 97: // single_formula_specification ::= member_specification
{
ParseTreeNode RESULT = null;
// Default action for single-symbol production
RESULT = (WithMemberNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(19/*single_formula_specification*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 96: // formula_specification ::= single_formula_specification formula_specification
{
List RESULT = null;
int hdleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left;
int hdright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).right;
ParseTreeNode hd = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).value;
int tlleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int tlright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
List tl = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
tl.add(0, hd);
RESULT = tl;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(55/*formula_specification*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 95: // formula_specification ::= single_formula_specification
{
List RESULT = null;
int eleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int eright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
ParseTreeNode e = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
RESULT = new LinkedList();
RESULT.add(e);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(55/*formula_specification*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 94: // cell_props_opt ::= cell_props
{
List RESULT = null;
// Default action for single-symbol production
RESULT = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(49/*cell_props_opt*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 93: // cell_props_opt ::=
{
List RESULT = null;
RESULT = new LinkedList();
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(49/*cell_props_opt*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 92: // where_clause_opt ::= WHERE filter_specification
{
ParseTreeNode RESULT = null;
int sleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int sright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
ParseTreeNode s = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
RESULT = s;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(17/*where_clause_opt*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 91: // where_clause_opt ::=
{
ParseTreeNode RESULT = null;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(17/*where_clause_opt*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 90: // axis_specification_list ::= axis_specification COMMA axis_specification_list
{
List RESULT = null;
int eleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int eright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
AxisNode e = (AxisNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int listleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int listright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
List list = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
list.add(0, e);
RESULT = list;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(46/*axis_specification_list*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 89: // axis_specification_list ::= axis_specification
{
List RESULT = null;
int ileft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int iright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
AxisNode i = (AxisNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
RESULT = new LinkedList();
RESULT.add(i);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(46/*axis_specification_list*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 88: // axis_specification_list_opt ::= axis_specification_list
{
List RESULT = null;
// Default action for single-symbol production
RESULT = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(47/*axis_specification_list_opt*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 87: // axis_specification_list_opt ::=
{
List RESULT = null;
RESULT = new LinkedList();
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(47/*axis_specification_list_opt*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 86: // with_formula_specification_opt ::= WITH formula_specification
{
List RESULT = null;
int fleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int fright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
List f = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
RESULT = f;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(60/*with_formula_specification_opt*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 85: // with_formula_specification_opt ::=
{
List RESULT = null;
RESULT = new LinkedList();
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(60/*with_formula_specification_opt*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 84: // select_statement ::= with_formula_specification_opt SELECT axis_specification_list_opt FROM cube_specification_or_select_statement where_clause_opt cell_props_opt
{
ParseTreeNode RESULT = null;
int fleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-6)).left;
int fright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-6)).right;
List f = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-6)).value;
int selectleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-5)).left;
int selectright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-5)).right;
Object select = (Object)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-5)).value;
int aleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-4)).left;
int aright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-4)).right;
List a = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-4)).value;
int cleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int cright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
ParseTreeNode c = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int wleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left;
int wright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).right;
ParseTreeNode w = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).value;
int cpleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int cpright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
List cp = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(selectleft, selectright);
RESULT = parser.newSelect(region, f, a, c, w, cp);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(18/*select_statement*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-6)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 83: // cube_specification_or_select_statement ::= LPAREN select_statement RPAREN
{
ParseTreeNode RESULT = null;
int sleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left;
int sright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).right;
ParseTreeNode s = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).value;
RESULT = s;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(3/*cube_specification_or_select_statement*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 82: // cube_specification_or_select_statement ::= cube_specification
{
ParseTreeNode RESULT = null;
// Default action for single-symbol production
RESULT = (IdentifierNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(3/*cube_specification_or_select_statement*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 81: // statement ::= _VALUE_EXPRESSION value_expression
{
ParseTreeNode RESULT = null;
int eleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int eright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
ParseTreeNode e = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
RESULT = (ParseTreeNode) e;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(20/*statement*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 80: // statement ::= select_statement
{
ParseTreeNode RESULT = null;
// Default action for single-symbol production
RESULT = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(20/*statement*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 79: // exp_list ::= expression_or_empty COMMA exp_list
{
List RESULT = null;
int eleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int eright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
ParseTreeNode e = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int listleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int listright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
List list = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
list.add(0, e); RESULT = list;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(53/*exp_list*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 78: // exp_list ::= expression
{
List RESULT = null;
int eleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int eright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
ParseTreeNode e = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
RESULT = new LinkedList();
RESULT.add(e);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(53/*exp_list*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 77: // exp_list_opt ::= exp_list
{
List RESULT = null;
// Default action for single-symbol production
RESULT = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(54/*exp_list_opt*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 76: // exp_list_opt ::=
{
List RESULT = null;
RESULT = new LinkedList();
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(54/*exp_list_opt*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 75: // expression_or_empty ::=
{
ParseTreeNode RESULT = null;
final ParseRegion region = createRegion(0, 0);
RESULT = new CallNode(region, "", Syntax.Empty);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(6/*expression_or_empty*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 74: // expression_or_empty ::= expression
{
ParseTreeNode RESULT = null;
// Default action for single-symbol production
RESULT = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(6/*expression_or_empty*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 73: // expression ::= value_expression
{
ParseTreeNode RESULT = null;
// Default action for single-symbol production
RESULT = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(5/*expression*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 72: // expression ::= expression COLON value_expression
{
ParseTreeNode RESULT = null;
int xleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int xright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
ParseTreeNode x = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int yleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int yright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
ParseTreeNode y = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
// range yields set
ParseRegion region = createRegion(xleft, yright);
RESULT = new CallNode(region, ":", Syntax.Infix, x, y);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(5/*expression*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 71: // comp_op ::= GE
{
String RESULT = null;
RESULT = ">=";
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(28/*comp_op*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 70: // comp_op ::= LE
{
String RESULT = null;
RESULT = "<=";
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(28/*comp_op*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 69: // comp_op ::= GT
{
String RESULT = null;
RESULT = ">";
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(28/*comp_op*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 68: // comp_op ::= LT
{
String RESULT = null;
RESULT = "<";
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(28/*comp_op*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 67: // comp_op ::= NE
{
String RESULT = null;
RESULT = "<>";
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(28/*comp_op*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 66: // comp_op ::= EQ
{
String RESULT = null;
RESULT = "=";
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(28/*comp_op*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 65: // else_clause_opt ::= ELSE value_expression
{
ParseTreeNode RESULT = null;
int xleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int xright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
ParseTreeNode x = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
RESULT = x;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(4/*else_clause_opt*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 64: // else_clause_opt ::=
{
ParseTreeNode RESULT = null;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(4/*else_clause_opt*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 63: // when_clause ::= WHEN value_expression THEN value_expression
{
ParseTreeNode[] RESULT = null;
int xleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int xright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
ParseTreeNode x = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int yleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int yright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
ParseTreeNode y = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
RESULT = new ParseTreeNode[] {x, y};
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(61/*when_clause*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 62: // when_list ::= when_list when_clause
{
List RESULT = null;
int xleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left;
int xright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).right;
List x = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).value;
int yleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int yright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
ParseTreeNode[] y = (ParseTreeNode[])((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
RESULT = x;
x.add(y);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(59/*when_list*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 61: // when_list ::=
{
List RESULT = null;
RESULT = new ArrayList();
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(59/*when_list*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 60: // value_expression_opt ::= value_expression
{
ParseTreeNode RESULT = null;
// Default action for single-symbol production
RESULT = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(15/*value_expression_opt*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 59: // value_expression_opt ::=
{
ParseTreeNode RESULT = null;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(15/*value_expression_opt*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 58: // case_expression ::= CASE value_expression_opt when_list else_clause_opt END
{
ParseTreeNode RESULT = null;
int kaseleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-4)).left;
int kaseright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-4)).right;
Object kase = (Object)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-4)).value;
int xleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).left;
int xright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).right;
ParseTreeNode x = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).value;
int yleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int yright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
List y = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int zleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left;
int zright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).right;
ParseTreeNode z = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).value;
List v = new ArrayList();
if (x != null) {
v.add(x);
}
for (int i = 0; i < y.size(); i++) {
ParseTreeNode[] exps = (ParseTreeNode[]) y.get(i);
assert exps.length == 2;
v.add(exps[0]);
v.add(exps[1]);
}
if (z != null) {
v.add(z);
}
ParseRegion region = createRegion(kaseleft, zright);
if (x == null) {
RESULT = new CallNode(region, "_CaseTest", Syntax.Case, v);
} else {
RESULT = new CallNode(region, "_CaseMatch", Syntax.Case, v);
}
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(2/*case_expression*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-4)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 57: // value_expression_primary ::= case_expression
{
ParseTreeNode RESULT = null;
// Default action for single-symbol production
RESULT = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(16/*value_expression_primary*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 56: // value_expression_primary ::= NULL
{
ParseTreeNode RESULT = null;
int nleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int nright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
Object n = (Object)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(nleft, nright);
RESULT = LiteralNode.createNull(region);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(16/*value_expression_primary*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 55: // value_expression_primary ::= LBRACE exp_list_opt RBRACE
{
ParseTreeNode RESULT = null;
int lbraceleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int lbraceright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
Object lbrace = (Object)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int lisleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left;
int lisright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).right;
List lis = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).value;
int rbraceleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int rbraceright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
Object rbrace = (Object)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
// set built from sets/tuples
ParseRegion region = createRegion(lbraceleft, rbraceright);
RESULT = new CallNode(region, "{}", Syntax.Braces, lis);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(16/*value_expression_primary*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 54: // value_expression_primary ::= LPAREN exp_list RPAREN
{
ParseTreeNode RESULT = null;
int lparenleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int lparenright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
Object lparen = (Object)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int lisleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left;
int lisright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).right;
List lis = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).value;
int rparenleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int rparenright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
Object rparen = (Object)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
// Whereas ([Sales],[Time]) and () are tuples, ([Sales]) and (5)
// are just expressions.
ParseRegion region = createRegion(lparenleft, rparenright);
RESULT = new CallNode(region, "()", Syntax.Parentheses, lis);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(16/*value_expression_primary*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 53: // value_expression_primary ::= CAST LPAREN expression AS identifier RPAREN
{
ParseTreeNode RESULT = null;
int castleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-5)).left;
int castright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-5)).right;
Object cast = (Object)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-5)).value;
int eleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).left;
int eright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).right;
ParseTreeNode e = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).value;
int tleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left;
int tright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).right;
IdentifierSegment t = (IdentifierSegment)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).value;
int rparenleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int rparenright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
Object rparen = (Object)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
LiteralNode symbol =
LiteralNode.createSymbol(t.getRegion(), t.getName());
ParseRegion region = createRegion(castleft, rparenright);
RESULT = new CallNode(region, "CAST", Syntax.Cast, e, symbol);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(16/*value_expression_primary*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-5)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 52: // value_expression_primary ::= identifier LPAREN exp_list_opt RPAREN
{
ParseTreeNode RESULT = null;
int ileft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).left;
int iright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).right;
IdentifierSegment i = (IdentifierSegment)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).value;
int lisleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left;
int lisright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).right;
List lis = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).value;
int rparenleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int rparenright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
Object rparen = (Object)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(ileft, rparenright);
RESULT = new CallNode(region, i.getName(), Syntax.Function, lis);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(16/*value_expression_primary*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 51: // value_expression_primary ::= value_expression_primary DOT identifier LPAREN exp_list_opt RPAREN
{
ParseTreeNode RESULT = null;
int ileft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-5)).left;
int iright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-5)).right;
ParseTreeNode i = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-5)).value;
int jleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).left;
int jright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).right;
IdentifierSegment j = (IdentifierSegment)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).value;
int lisleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left;
int lisright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).right;
List lis = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).value;
int rparenleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int rparenright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
Object rparen = (Object)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
lis.add(0, i);
ParseRegion region = createRegion(ileft, rparenright);
RESULT = new CallNode(region, j.getName(), Syntax.Method, lis);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(16/*value_expression_primary*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-5)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 50: // value_expression_primary ::= value_expression_primary DOT key_identifier
{
ParseTreeNode RESULT = null;
int ileft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int iright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
ParseTreeNode i = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int jleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int jright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
IdentifierSegment j = (IdentifierSegment)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
if (i instanceof IdentifierNode) {
RESULT = ((IdentifierNode) i).append(j);
} else {
ParseRegion region = createRegion(ileft, jright);
RESULT = new CallNode(
region, j.getName(), Syntax.AmpersandQuotedProperty, i);
}
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(16/*value_expression_primary*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 49: // value_expression_primary ::= value_expression_primary DOT quoted_identifier
{
ParseTreeNode RESULT = null;
int ileft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int iright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
ParseTreeNode i = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int jleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int jright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
IdentifierSegment j = (IdentifierSegment)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
if (i instanceof IdentifierNode) {
RESULT = ((IdentifierNode) i).append(j);
} else {
ParseRegion region = createRegion(ileft, jright);
RESULT = new CallNode(
region, j.getName(), Syntax.QuotedProperty, i);
}
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(16/*value_expression_primary*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 48: // value_expression_primary ::= value_expression_primary DOT unquoted_identifier
{
ParseTreeNode RESULT = null;
int ileft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int iright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
ParseTreeNode i = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int jleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int jright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
IdentifierSegment j = (IdentifierSegment)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
if (i instanceof IdentifierNode && !parser.isFunCall(j.getName())) {
RESULT = ((IdentifierNode) i).append(j);
} else {
ParseRegion region = createRegion(ileft, jright);
RESULT = new CallNode(region, j.getName(), Syntax.Property, i);
}
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(16/*value_expression_primary*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 47: // value_expression_primary ::= identifier
{
ParseTreeNode RESULT = null;
int ileft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int iright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
IdentifierSegment i = (IdentifierSegment)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
RESULT = new IdentifierNode(i);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(16/*value_expression_primary*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 46: // value_expression_primary ::= NUMBER
{
ParseTreeNode RESULT = null;
int dleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int dright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
BigDecimal d = (BigDecimal)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(dleft, dright);
RESULT = LiteralNode.createNumeric(region, d, false);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(16/*value_expression_primary*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 45: // value_expression_primary ::= STRING
{
ParseTreeNode RESULT = null;
int sleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int sright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
String s = (String)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(sleft, sright);
RESULT = LiteralNode.createString(region, s);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(16/*value_expression_primary*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 44: // factor ::= MINUS value_expression_primary
{
ParseTreeNode RESULT = null;
int minusleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left;
int minusright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).right;
Object minus = (Object)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).value;
int pleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int pright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
ParseTreeNode p = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(minusleft, pright);
RESULT = new CallNode(region, "-", Syntax.Prefix, p);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(7/*factor*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 43: // factor ::= PLUS value_expression_primary
{
ParseTreeNode RESULT = null;
int pleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int pright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
ParseTreeNode p = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
RESULT = p;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(7/*factor*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 42: // factor ::= value_expression_primary
{
ParseTreeNode RESULT = null;
// Default action for single-symbol production
RESULT = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(7/*factor*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 41: // term ::= term SOLIDUS factor
{
ParseTreeNode RESULT = null;
int xleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int xright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
ParseTreeNode x = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int yleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int yright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
ParseTreeNode y = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(xleft, yright);
RESULT = new CallNode(region, "/", Syntax.Infix, x, y);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(9/*term*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 40: // term ::= term ASTERISK factor
{
ParseTreeNode RESULT = null;
int xleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int xright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
ParseTreeNode x = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int yleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int yright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
ParseTreeNode y = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(xleft, yright);
RESULT = new CallNode(region, "*", Syntax.Infix, x, y);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(9/*term*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 39: // term ::= factor
{
ParseTreeNode RESULT = null;
// Default action for single-symbol production
RESULT = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(9/*term*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 38: // term2 ::= term2 CONCAT term
{
ParseTreeNode RESULT = null;
int xleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int xright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
ParseTreeNode x = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int yleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int yright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
ParseTreeNode y = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(xleft, yright);
RESULT = new CallNode(region, "||", Syntax.Infix, x, y);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(10/*term2*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 37: // term2 ::= term2 MINUS term
{
ParseTreeNode RESULT = null;
int xleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int xright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
ParseTreeNode x = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int yleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int yright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
ParseTreeNode y = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(xleft, yright);
RESULT = new CallNode(region, "-", Syntax.Infix, x, y);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(10/*term2*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 36: // term2 ::= term2 PLUS term
{
ParseTreeNode RESULT = null;
int xleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int xright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
ParseTreeNode x = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int yleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int yright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
ParseTreeNode y = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(xleft, yright);
RESULT = new CallNode(region, "+", Syntax.Infix, x, y);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(10/*term2*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 35: // term2 ::= term
{
ParseTreeNode RESULT = null;
// Default action for single-symbol production
RESULT = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(10/*term2*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 34: // term3 ::= term3 NOT IN term2
{
ParseTreeNode RESULT = null;
int xleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).left;
int xright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).right;
ParseTreeNode x = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).value;
int yleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int yright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
ParseTreeNode y = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(xleft, yright);
RESULT =
new CallNode(
region, "NOT", Syntax.Prefix,
new CallNode(region, "IN", Syntax.Infix, x, y));
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(11/*term3*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 33: // term3 ::= term3 IN term2
{
ParseTreeNode RESULT = null;
int xleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int xright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
ParseTreeNode x = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int yleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int yright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
ParseTreeNode y = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(xleft, yright);
RESULT = new CallNode(region, "IN", Syntax.Infix, x, y);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(11/*term3*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 32: // term3 ::= term3 NOT MATCHES term2
{
ParseTreeNode RESULT = null;
int xleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).left;
int xright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).right;
ParseTreeNode x = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).value;
int yleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int yright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
ParseTreeNode y = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(xleft, yright);
RESULT =
new CallNode(
region, "NOT", Syntax.Prefix,
new CallNode(region, "MATCHES", Syntax.Infix, x, y));
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(11/*term3*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 31: // term3 ::= term3 MATCHES term2
{
ParseTreeNode RESULT = null;
int xleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int xright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
ParseTreeNode x = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int yleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int yright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
ParseTreeNode y = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(xleft, yright);
RESULT = new CallNode(region, "MATCHES", Syntax.Infix, x, y);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(11/*term3*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 30: // term3 ::= term3 IS EMPTY
{
ParseTreeNode RESULT = null;
int xleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int xright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
ParseTreeNode x = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int emptyleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int emptyright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
Object empty = (Object)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(xleft, emptyright);
RESULT = new CallNode(region, "IS EMPTY", Syntax.Postfix, x);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(11/*term3*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 29: // term3 ::= term3 IS term2
{
ParseTreeNode RESULT = null;
int xleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int xright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
ParseTreeNode x = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int yleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int yright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
ParseTreeNode y = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
// e.g. "x IS y"; but "x IS NULL" is handled elsewhere
ParseRegion region = createRegion(xleft, yright);
RESULT = new CallNode(region, "IS", Syntax.Infix, x, y);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(11/*term3*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 28: // term3 ::= term3 IS NULL
{
ParseTreeNode RESULT = null;
int xleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int xright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
ParseTreeNode x = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int nleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int nright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
Object n = (Object)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(xleft, nright);
RESULT = new CallNode(region, "IS NULL", Syntax.Postfix, x);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(11/*term3*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 27: // term3 ::= term3 comp_op term2
{
ParseTreeNode RESULT = null;
int xleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int xright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
ParseTreeNode x = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int opleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left;
int opright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).right;
String op = (String)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).value;
int yleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int yright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
ParseTreeNode y = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
// e.g. "1 < 5"
ParseRegion region = createRegion(xleft, yright);
RESULT = new CallNode(region, op, Syntax.Infix, x, y);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(11/*term3*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 26: // term3 ::= term2
{
ParseTreeNode RESULT = null;
// Default action for single-symbol production
RESULT = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(11/*term3*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 25: // term4 ::= NOT term4
{
ParseTreeNode RESULT = null;
int notleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left;
int notright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).right;
Object not = (Object)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).value;
int pleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int pright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
ParseTreeNode p = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(notleft, pright);
RESULT = new CallNode(region, "NOT", Syntax.Prefix, p);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(12/*term4*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 24: // term4 ::= term3
{
ParseTreeNode RESULT = null;
// Default action for single-symbol production
RESULT = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(12/*term4*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 23: // term5 ::= term5 AND term4
{
ParseTreeNode RESULT = null;
int xleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int xright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
ParseTreeNode x = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int yleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int yright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
ParseTreeNode y = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(xleft, yright);
RESULT = new CallNode(region, "AND", Syntax.Infix, x, y);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(13/*term5*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 22: // term5 ::= term4
{
ParseTreeNode RESULT = null;
// Default action for single-symbol production
RESULT = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(13/*term5*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 21: // value_expression ::= value_expression XOR term5
{
ParseTreeNode RESULT = null;
int xleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int xright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
ParseTreeNode x = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int yleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int yright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
ParseTreeNode y = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(xleft, yright);
RESULT = new CallNode(region, "XOR", Syntax.Infix, x, y);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(14/*value_expression*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 20: // value_expression ::= value_expression OR term5
{
ParseTreeNode RESULT = null;
int xleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int xright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
ParseTreeNode x = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int yleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int yright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
ParseTreeNode y = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(xleft, yright);
RESULT = new CallNode(region, "OR", Syntax.Infix, x, y);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(14/*value_expression*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 19: // value_expression ::= term5
{
ParseTreeNode RESULT = null;
// Default action for single-symbol production
RESULT = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(14/*value_expression*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 18: // cube_name ::= compound_id
{
IdentifierNode RESULT = null;
// Default action for single-symbol production
RESULT = (IdentifierNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(23/*cube_name*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 17: // compound_id ::= compound_id DOT identifier
{
IdentifierNode RESULT = null;
int hdleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left;
int hdright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).right;
IdentifierNode hd = (IdentifierNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).value;
int tlleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int tlright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
IdentifierSegment tl = (IdentifierSegment)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
RESULT = hd.append(tl);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(22/*compound_id*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 16: // compound_id ::= identifier
{
IdentifierNode RESULT = null;
int ileft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int iright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
IdentifierSegment i = (IdentifierSegment)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
RESULT = new IdentifierNode(i);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(22/*compound_id*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 15: // keyword ::= PROPERTIES
{
String RESULT = null;
RESULT = "Properties";
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(29/*keyword*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 14: // keyword ::= DIMENSION
{
String RESULT = null;
RESULT = "Dimension";
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(29/*keyword*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 13: // identifier ::= key_identifier
{
IdentifierSegment RESULT = null;
// Default action for single-symbol production
RESULT = (IdentifierSegment)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(30/*identifier*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 12: // identifier ::= quoted_identifier
{
IdentifierSegment RESULT = null;
// Default action for single-symbol production
RESULT = (IdentifierSegment)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(30/*identifier*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 11: // identifier ::= unquoted_identifier
{
IdentifierSegment RESULT = null;
// Default action for single-symbol production
RESULT = (IdentifierSegment)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(30/*identifier*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 10: // amp_unquoted_identifier ::= AMP_UNQUOTED_ID
{
IdentifierSegment RESULT = null;
int ileft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int iright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
String i = (String)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(ileft, iright);
RESULT = new NameSegment(region, i, Quoting.UNQUOTED);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(36/*amp_unquoted_identifier*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 9: // amp_quoted_identifier ::= AMP_QUOTED_ID
{
IdentifierSegment RESULT = null;
int ileft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int iright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
String i = (String)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(ileft, iright);
RESULT = new NameSegment(region, i, Quoting.QUOTED);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(35/*amp_quoted_identifier*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 8: // amp_identifier ::= amp_unquoted_identifier
{
IdentifierSegment RESULT = null;
// Default action for single-symbol production
RESULT = (IdentifierSegment)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(34/*amp_identifier*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 7: // amp_identifier ::= amp_quoted_identifier
{
IdentifierSegment RESULT = null;
// Default action for single-symbol production
RESULT = (IdentifierSegment)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top)).value;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(34/*amp_identifier*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 6: // amp_identifier_list ::= amp_identifier_list amp_identifier
{
List RESULT = null;
int listleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left;
int listright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).right;
List list = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).value;
int ileft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int iright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
IdentifierSegment i = (IdentifierSegment)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
list.add(i);
RESULT = list;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(37/*amp_identifier_list*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 5: // amp_identifier_list ::= amp_identifier
{
List RESULT = null;
int ileft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int iright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
IdentifierSegment i = (IdentifierSegment)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
RESULT = new ArrayList<NameSegment>();
RESULT.add(i);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(37/*amp_identifier_list*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 4: // key_identifier ::= amp_identifier_list
{
IdentifierSegment RESULT = null;
int listleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int listright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
List list = (List)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
RESULT = new KeySegment(list);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(31/*key_identifier*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 3: // unquoted_identifier ::= keyword
{
IdentifierSegment RESULT = null;
int ileft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int iright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
String i = (String)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(ileft, iright);
RESULT = new NameSegment(region, i, Quoting.UNQUOTED);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(33/*unquoted_identifier*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 2: // unquoted_identifier ::= ID
{
IdentifierSegment RESULT = null;
int ileft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int iright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
String i = (String)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(ileft, iright);
RESULT = new NameSegment(region, i, Quoting.UNQUOTED);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(33/*unquoted_identifier*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 1: // quoted_identifier ::= QUOTED_ID
{
IdentifierSegment RESULT = null;
int ileft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left;
int iright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right;
String i = (String)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).value;
ParseRegion region = createRegion(ileft, iright);
RESULT = new NameSegment(region, i, Quoting.QUOTED);
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(32/*quoted_identifier*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
return CUP$DefaultMdxParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 0: // $START ::= statement EOF
{
Object RESULT = null;
int start_valleft = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left;
int start_valright = ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).right;
ParseTreeNode start_val = (ParseTreeNode)((java_cup.runtime.Symbol) CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).value;
RESULT = start_val;
CUP$DefaultMdxParser$result = new java_cup.runtime.Symbol(0/*$START*/, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$DefaultMdxParser$stack.elementAt(CUP$DefaultMdxParser$top-0)).right, RESULT);
}
/* ACCEPT */
CUP$DefaultMdxParser$parser.done_parsing();
return CUP$DefaultMdxParser$result;
/* . . . . . .*/
default:
throw new Exception(
"Invalid action number found in internal parse table");
}
}
}