資源簡介
遞歸下降語法分析器用Java語言編寫,編譯原理第四章第二題答案

代碼片段和文件信息
package?chaper1;
import?java.util.*;
public?class?Grammar?{
/**
?*?@param?args
?*/
public?Grammar()?{
}
public?static?void?main(String[]?args)?{
//?TODO?Auto-generated?method?stub
Grammar?grammar?=?new?Grammar();
System.out.println(“please?write?a?string“);
Scanner?string?=?new?Scanner(System.in);
String?input?=?string.next();
for?(int?i?=?0;?i? grammar.a[i]?=?input.charAt(i);
}
grammar.sym?=?grammar.a[0];
grammar.E();
if?(grammar.sym?==?‘#‘)
System.out.println(“匹配成功“);
else
System.out.println(“匹配失敗“);
}
char?sym;
char[]?a?=?new?char[50];
int?count?=?0;
void?E1()?{
if?(sym?==?‘a‘)?{
getsymbol();
E();
}?else?if?(sym?!=?‘)‘?&&?sym?!=?‘#‘)?{
error();
}
}
void?E()?{
if?(sym?==?‘a‘?||?sym?==?‘(‘?||?sym?==?‘b‘?||?sym?==?‘^‘)?{
T();
E1();
}?else
error();
}
void?T()?{
if?(sym?==?‘a‘?||?sym?==?‘(‘?||?sym?==?‘b‘?||?sym?==?‘^‘)?{
F();
T1();
}?else
error();
}
void?T1()?{
if?(sym?==?‘a‘?||?sym?==?‘(‘?||?sym?==?‘b‘?||?sym?==?‘^‘)?{
T();
}?else?if?(sym?==?‘*‘)?{
error();
}
}
void?F()?{
if?(sym?==?‘a‘?||?sym?==?‘(‘?||?sym?==?‘b‘?||?sym?==?‘^‘)?{
P();
F1();
}?else
error();
}
void?F1()?{
if?(sym?==?‘*‘)?{
if?(sym?==?‘*‘)?{
getsymbol();
F1();
}
}
}
void?P()?{
if?(sym?==?‘a‘?||?sym?==?‘b‘?||?sym?==?‘^‘)?{
getsymbol();}
else?if?(sym?==?‘(‘)?{
getsymbol();
E();
if(sym==‘)‘){
getsymbol();
}else
error();
}else
error();
}
void?error()?{
System.out.println(“匹配失敗“);
System.exit(0);
}
void?getsymbol()?{
sym?=?a[count++];
}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????48128??2009-11-06?15:20??語法的分析.doc
?????文件????????383??2009-10-29?16:29??Grammar\.project
?????文件????????226??2009-10-29?16:29??Grammar\.classpath
?????文件???????1766??2009-11-03?10:40??Grammar\chaper1\Grammar.java
?????文件???????2510??2009-11-06?14:25??Grammar\chaper1\Grammar.class
?????目錄??????????0??2009-11-06?15:20??Grammar\chaper1
?????目錄??????????0??2009-11-06?15:20??Grammar
-----------?---------??----------?-----??----
????????????????53013????????????????????7
評論
共有 條評論