📄 parser.java
字号:
"\001\001\000\002\001\001\000\002\001\001\000\012\016" +
"\173\017\171\020\174\036\172\001\001\000\002\001\001" +
"\000\002\001\001\000\030\021\217\022\057\024\025\025" +
"\045\026\037\027\040\030\041\031\044\032\036\033\035" +
"\037\024\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\010\017\200\020\174" +
"\036\172\001\001\000\002\001\001\000\006\004\203\037" +
"\202\001\001\000\002\001\001\000\004\005\205\001\001" +
"\000\030\021\216\022\057\024\025\025\045\026\037\027" +
"\040\030\041\031\044\032\036\033\035\037\024\001\001" +
"\000\004\006\207\001\001\000\002\001\001\000\002\001" +
"\001\000\006\007\212\037\211\001\001\000\004\053\213" +
"\001\001\000\002\001\001\000\002\001\001\000\006\007" +
"\215\037\211\001\001\000\002\001\001\000\002\001\001" +
"\000\004\051\220\001\001\000\002\001\001\000\002\001" +
"\001\000\010\037\015\047\224\052\223\001\001\000\002" +
"\001\001\000\002\001\001\000\010\037\015\047\224\052" +
"\226\001\001\000\002\001\001\000\006\037\230\040\231" +
"\001\001\000\002\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$parser$actions action_obj;
/** Action encapsulation object initializer. */
protected void init_actions()
{
action_obj = new CUP$parser$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$parser$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;}
static Logger logger = Logger.getLogger(parser.class);
/**
* report_error
*/
public void report_error(String message, Object info) {
logger.warn("Parsing MDX:" +message);
if (info instanceof Symbol) {
if (((Symbol)info).left != -1) {
logger.warn("at character " + ((Symbol)info).left + " of input");
}
}
}
/**
* report_fatal_error
*/
public void report_fatal_error(String message, Object info) throws Exception {
String err;
err = "Fatal error parsing MDX:" +message;
if (info instanceof Symbol) {
if (((Symbol)info).left != -1) {
err += "\n at character " + ((Symbol)info).left + " of input";
} else {
err += "\n invalid symbol \"" + ((Symbol)info).value +"\"";
}
} else
err += "\n" + info.toString();
logger.error("Fatal error parsing MDX:" +err);
throw new Exception(err);
}
}
/** Cup generated class to encapsulate user supplied action code.*/
class CUP$parser$actions {
ParsedQuery pQuery = new ParsedQuery();
private final parser parser;
/** Constructor */
CUP$parser$actions(parser parser) {
this.parser = parser;
}
/** Method with the actual generated action code. */
public final java_cup.runtime.Symbol CUP$parser$do_action(
int CUP$parser$act_num,
java_cup.runtime.lr_parser CUP$parser$parser,
java.util.Stack CUP$parser$stack,
int CUP$parser$top)
throws java.lang.Exception
{
/* Symbol object for return from actions */
java_cup.runtime.Symbol CUP$parser$result;
/* select the action based on the action number */
switch (CUP$parser$act_num)
{
/*. . . . . . . . . . . . . . . . . . . .*/
case 92: // comp_op ::= GE
{
String RESULT = null;
RESULT = ">=";
CUP$parser$result = new java_cup.runtime.Symbol(38/*comp_op*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 91: // comp_op ::= LE
{
String RESULT = null;
RESULT = "<=";
CUP$parser$result = new java_cup.runtime.Symbol(38/*comp_op*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 90: // comp_op ::= GT
{
String RESULT = null;
RESULT = ">";
CUP$parser$result = new java_cup.runtime.Symbol(38/*comp_op*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 89: // comp_op ::= LT
{
String RESULT = null;
RESULT = "<";
CUP$parser$result = new java_cup.runtime.Symbol(38/*comp_op*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 88: // comp_op ::= NE
{
String RESULT = null;
RESULT = "<>";
CUP$parser$result = new java_cup.runtime.Symbol(38/*comp_op*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 87: // comp_op ::= EQ
{
String RESULT = null;
RESULT = "=";
CUP$parser$result = new java_cup.runtime.Symbol(38/*comp_op*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 86: // else_clause_opt ::= ELSE value_expression
{
Exp RESULT = null;
int xleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int xright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
Exp x = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = x;
CUP$parser$result = new java_cup.runtime.Symbol(26/*else_clause_opt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 85: // else_clause_opt ::=
{
Exp RESULT = null;
CUP$parser$result = new java_cup.runtime.Symbol(26/*else_clause_opt*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 84: // when_clause ::= WHEN value_expression THEN value_expression
{
Exp[] RESULT = null;
int xleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;
int xright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;
Exp x = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;
int yleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int yright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
Exp y = (Exp)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = new Exp[] { x, y };
CUP$parser$result = new java_cup.runtime.Symbol(27/*when_clause*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
}
return CUP$parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 83: // when_list ::= when_list when_clause
{
ArrayList RESULT = null;
int xleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;
int xright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;
ArrayList x = (ArrayList)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;
int yleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;
int yright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;
Exp[] y = (Exp[])((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;
RESULT = x; x.add(y);
CUP$parser$result = new java_cup.runtime.Symbol(35/*when_list*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -