parser.java
来自「JAVA的一些源码 JAVA2 STANDARD EDITION DEVELO」· Java 代码 · 共 1,233 行 · 第 1/5 页
JAVA
1,233 行
String RESULT = null; lexer.emit_error("Illegal use of reserved word"); RESULT="ILLEGAL"; CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(36/*nt_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 81: // nt_id ::= ID { String RESULT = null; int the_idleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int the_idright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String the_id = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = the_id; CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(36/*nt_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 80: // new_non_term_id ::= ID { Object RESULT = null; int non_term_idleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int non_term_idright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String non_term_id = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; /* see if this non terminal has been declared before */ if (symbols.get(non_term_id) != null) { /* issue a message */ lexer.emit_error( "com.sun.java_cup.internal.runtime.Symbol \"" + non_term_id + "\" has already been declared"); } else { if (multipart_name.equals("")) { append_multipart("Object"); } /* build the non terminal object */ non_terminal this_nt = new non_terminal(non_term_id, multipart_name); /* put it in the non_terms table */ non_terms.put(non_term_id, this_nt); /* build a production_part and put it in the symbols table */ symbols.put(non_term_id, new symbol_part(this_nt)); } CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(26/*new_non_term_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 79: // new_term_id ::= ID { Object RESULT = null; int term_idleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int term_idright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String term_id = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; /* see if this terminal has been declared before */ if (symbols.get(term_id) != null) { /* issue a message */ lexer.emit_error("com.sun.java_cup.internal.runtime.Symbol \"" + term_id + "\" has already been declared"); } else { /* if no type declared, declare one */ if (multipart_name.equals("")) { append_multipart("Object"); } /* build a production_part and put it in the table */ symbols.put(term_id, new symbol_part(new terminal(term_id, multipart_name))); } CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(25/*new_term_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 78: // type_id ::= type_id LBRACK RBRACK { Object RESULT = null; multipart_name = multipart_name.concat("[]"); CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(19/*type_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 77: // type_id ::= multipart_id { Object RESULT = null; CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(19/*type_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 76: // import_id ::= multipart_id { Object RESULT = null; CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(15/*import_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 75: // import_id ::= multipart_id DOT STAR { Object RESULT = null; append_multipart("*"); CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(15/*import_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 74: // multipart_id ::= robust_id { Object RESULT = null; int an_idleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int an_idright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String an_id = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; append_multipart(an_id); CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(13/*multipart_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 73: // multipart_id ::= multipart_id DOT robust_id { Object RESULT = null; int another_idleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int another_idright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String another_id = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; append_multipart(another_id); CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(13/*multipart_id*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 72: // opt_label ::= empty { String RESULT = null; RESULT = null; CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(39/*opt_label*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 71: // opt_label ::= COLON label_id { String RESULT = null; int labidleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int labidright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String labid = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; RESULT = labid; CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(39/*opt_label*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 70: // prod_part ::= CODE_STRING { Object RESULT = null; int code_strleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int code_strright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String code_str = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; /* add a new production part */ add_rhs_part(new action_part(code_str)); CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(24/*prod_part*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 69: // prod_part ::= symbol_id opt_label { Object RESULT = null; int symidleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left; int symidright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right; String symid = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value; int labidleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left; int labidright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right; String labid = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value; /* try to look up the id */ production_part symb = (production_part)symbols.get(symid); /* if that fails, symbol is undeclared */ if (symb == null) { if (lexer.error_count == 0) lexer.emit_error("com.sun.java_cup.internal.runtime.Symbol \"" + symid + "\" has not been declared"); } else { /* add a labeled production part */ add_rhs_part(add_lab(symb, labid)); } CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(24/*prod_part*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 68: // prod_part_list ::= empty { Object RESULT = null; CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(23/*prod_part_list*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 67: // prod_part_list ::= prod_part_list prod_part { Object RESULT = null; CUP$parser$result = new com.sun.java_cup.internal.runtime.Symbol(23/*prod_part_list*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT); } return CUP$parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 66: // rhs ::= prod_part_list { Object RESULT = null; if (lhs_nt != null) { /* build the production */ production p = new production(lhs_nt, rhs_parts, rhs_pos); /* if we have no start non-terminal declared and this is the first production, make its lhs nt the start_nt and build a special start production for it. */ if (start_nt == null) { start_nt = lhs_nt;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?