資源簡介
使用javacc自動生成cmm語法分析器,使用jjt文件生成語法樹,支持錯誤處理。

代碼片段和文件信息
/*?Generated?By:JJTree&JavaCC:?Do?not?edit?this?line.?EG1.java?*/
public?class?EG1/*@bgen(jjtree)*/implements?EG1TreeConstants?EG1Constants?{/*@bgen(jjtree)*/
??protected?static?JJTEG1State?jjtree?=?new?JJTEG1State();public?static?void?main(String?args?[])?throws?ParseException
??{
????????EG1?parser?=?new?EG1(System.in);
????while(true)
????{
??????try
??????{
????????System.out.println(“Enter?some?cmm?sentences:“);
????????SimpleNode?n?=?EG1.one_line();
????????n.dump(““);
????????System.out.println(“Thank?you.“);
??????}
??????catch?(Exception?e)
??????{
????????System.out.println(“error.“);
????????System.out.println(e.getMessage());
????????EG1.ReInit(System.in);
??????}
??????catch?(Error?e)
??????{
????????System.out.println(“Oops.“);
????????System.out.println(e.getMessage());
????????break;
??????}
????}
??}
/*Entrance*/
??static?final?public?SimpleNode?one_line()?throws?ParseException?{
?/*@bgen(jjtree)?one_line?*/
??SimpleNode?jjtn000?=?new?SimpleNode(JJTONE_LINE);
??boolean?jjtc000?=?true;
??jjtree.openNodeScope(jjtn000);
????try?{
??????Procedure();
??????jj_consume_token(SEMICOLON);
????jjtree.closeNodeScope(jjtn000?true);
????jjtc000?=?false;
???{if?(true)?return?jjtn000;}
????}?catch?(Throwable?jjte000)?{
????if?(jjtc000)?{
??????jjtree.clearNodeScope(jjtn000);
??????jjtc000?=?false;
????}?else?{
??????jjtree.popNode();
????}
????if?(jjte000?instanceof?RuntimeException)?{
??????{if?(true)?throw?(RuntimeException)jjte000;}
????}
????if?(jjte000?instanceof?ParseException)?{
??????{if?(true)?throw?(ParseException)jjte000;}
????}
????{if?(true)?throw?(Error)jjte000;}
????}?finally?{
????if?(jjtc000)?{
??????jjtree.closeNodeScope(jjtn000?true);
????}
????}
????throw?new?Error(“Missing?return?statement?in?function“);
??}
/*Main?Program*/
??static?final?public?void?Procedure()?throws?ParseException?{
?/*@bgen(jjtree)?Procedure?*/
??SimpleNode?jjtn000?=?new?SimpleNode(JJTPROCEDURE);
??boolean?jjtc000?=?true;
??jjtree.openNodeScope(jjtn000);
????try?{
??????label_1:
??????while?(true)?{
????????switch?((jj_ntk==-1)?jj_ntk():jj_ntk)?{
????????case?IF:
????????case?WHILE:
????????case?READ:
????????case?WRITE:
????????case?INT:
????????case?REAL:
????????case?IDENTIFIER:
??????????Statement();
??????????break;
????????case?LBRACE:
??????????Block();
??????????break;
????????default:
??????????jj_la1[0]?=?jj_gen;
??????????jj_consume_token(-1);
??????????throw?new?ParseException();
????????}
????????switch?((jj_ntk==-1)?jj_ntk():jj_ntk)?{
????????case?IF:
????????case?WHILE:
????????case?READ:
????????case?WRITE:
????????case?INT:
????????case?REAL:
????????case?LBRACE:
????????case?IDENTIFIER:
??????????;
??????????break;
????????default:
??????????jj_la1[1]?=?jj_gen;
??????????break?label_1;
????????}
??????}
????}?catch?(Throwable?jjte000)?{
???if?(jjtc000)?{
?????jjtree.clearNodeScope(jjtn000);
?????jjtc000?=?false;
???}?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????301??2014-10-14?00:29??javacc_exercise2(2)\.classpath
?????文件????????578??2014-10-14?00:29??javacc_exercise2(2)\.project
?????文件????????598??2014-10-14?00:29??javacc_exercise2(2)\.settings\org.eclipse.jdt.core.prefs
?????文件????????507??2014-10-14?00:29??javacc_exercise2(2)\.settings\sf.eclipse.javacc.prefs
?????文件??????20823??2014-11-22?13:43??javacc_exercise2(2)\bin\cmm2.jj
?????文件???????4296??2014-10-14?00:30??javacc_exercise2(2)\bin\cmm2.jjt
?????文件??????17862??2014-11-22?13:43??javacc_exercise2(2)\bin\EG1.class
?????文件???????2320??2014-11-22?13:43??javacc_exercise2(2)\bin\EG1Constants.class
?????文件??????11051??2014-11-22?13:43??javacc_exercise2(2)\bin\EG1TokenManager.class
?????文件???????2332??2014-11-22?13:43??javacc_exercise2(2)\bin\EG1TreeConstants.class
?????文件???????2585??2014-11-22?13:43??javacc_exercise2(2)\bin\JJTEG1State.class
?????文件????????304??2014-11-22?13:43??javacc_exercise2(2)\bin\Node.class
?????文件???????3592??2014-11-22?13:43??javacc_exercise2(2)\bin\ParseException.class
?????文件???????8162??2014-11-22?13:43??javacc_exercise2(2)\bin\SimpleCharStream.class
?????文件???????2549??2014-11-22?13:43??javacc_exercise2(2)\bin\SimpleNode.class
?????文件???????1153??2014-11-22?13:43??javacc_exercise2(2)\bin\Token.class
?????文件???????2809??2014-11-22?13:43??javacc_exercise2(2)\bin\TokenMgrError.class
?????文件??????20823??2014-11-22?13:43??javacc_exercise2(2)\src\cmm2.jj
?????文件???????4296??2014-10-14?00:30??javacc_exercise2(2)\src\cmm2.jjt
?????文件??????30920??2014-11-22?13:43??javacc_exercise2(2)\src\EG1.java
?????文件???????2869??2014-11-22?13:43??javacc_exercise2(2)\src\EG1Constants.java
?????文件??????21159??2014-11-22?13:43??javacc_exercise2(2)\src\EG1TokenManager.java
?????文件???????1904??2014-11-22?13:43??javacc_exercise2(2)\src\EG1TreeConstants.java
?????文件???????3320??2014-11-22?13:43??javacc_exercise2(2)\src\JJTEG1State.java
?????文件???????1316??2014-11-22?13:43??javacc_exercise2(2)\src\Node.java
?????文件???????6332??2014-11-22?13:43??javacc_exercise2(2)\src\ParseException.java
?????文件??????12645??2014-11-22?13:43??javacc_exercise2(2)\src\SimpleCharStream.java
?????文件???????2251??2014-11-22?13:43??javacc_exercise2(2)\src\SimpleNode.java
?????文件???????4184??2014-11-22?13:43??javacc_exercise2(2)\src\Token.java
?????文件???????4544??2014-11-22?13:43??javacc_exercise2(2)\src\TokenMgrError.java
............此處省略7個文件信息
評論
共有 條評論