编译原理-语法分析?(java完美运行?---副本 - 百度文库 ϵͷ

ʱ : 编译原理-语法分析?(java完美运行?---副本 - 百度文库ϿʼĶ

{

biaozhi=1; } else

{

a[flag]=first[j][k]; flag++; } } }

if(biaozhi==1)//Ҳзսfirstе#ȥ {

i++;biaozhi=0;continue; } else {

biaozhi=0;break; } } else

if(b.charAt(i)>='A'&&b.charAt(i)<='Z'&&i+1>=b.length())//Ƿսûһַ {

int j;

for(j=0;Vn[i]!=null;j++) {

if(Vn[j].equals(String.valueOf(b.charAt(i)))) {

break; } }

for(int k=0;first[j][k]!='\\0';k++) {

if(puanduanChar(a,first[j][k])) {

if(first[j][k]=='#') {

biaozhi=1;//ʽҲƳգ } else

{

a[flag]=first[j][k];//Ƴգֱӽfirstselect

flag++; }

} }

if(biaozhi==1)//ʽҲƳ {

for(j=0;Vn[i]!=null;j++) {

if(Vn[j].equals(b.substring(0,1)))

{

break; } }

for(int k=0;follow[j][k]!='\\0';k++) {

if(puanduanChar(a,follow[j][k])) {

a[flag]=follow[j][k];//ʽķսfollowselect

flag++; } }

break; } else {

biaozhi=0;break; } } } }

//bVt[]λ

private int puanduanXulie(char Vt[],char b) {

int i;

for(i=0;Vt[i]!='\\0';i++) {

if(Vt[i]==b)break; }

return i; }

//жbǷaУڷfalseڷtrue

private boolean puanduanChar(char a[],char b) {

for(int i=0;a[i]!='\\0';i++) {

if(a[i]==b)return false; }

return true; }

//жbǷaУڷfalseڷtrue

private boolean puanduanString(String a[],char b) {

for(int i=0;a[i]!=null;i++) {

if(a[i].equals(String.valueOf(b)))return false; }

return true; }

//bַfirstVn[]

private void addString(String firstVn[],String b) {

int i;

for(i=0;firstVn[i]!=null;i++) { }

firstVn[i]=b; }

//жbǷfirstж

private int firstComplete(char b) {

int i;

for(i=0;Vn[i]!=null;i++) {

if(Vn[i].equals(String.valueOf(b))) {

if(firstComplete[i]==1)return i; else return -1; } }

return -1; }

//жbǷfollowж

private int followComplete(char b) {

for(int i=0;Vn[i]!=null;i++) {

if(Vn[i].equals(String.valueOf(b))) {

if(followComplete[i]==1)return i; else return -1; } }

return -1; }

//Ӧսӵfirst**

private int addElementFirst(char a[],int p,int flag) {

for(int i=0;first[p][i]!='\\0';i++) {

if(puanduanChar(a,first[p][i])&&first[p][i]!='#') {

a[flag]=first[p][i]; flag++; } }

return flag; }

//Ӧսӵfollow**

private int addElementFollow(char a[],int p,int flag) {

for(int i=0;follow[p][i]!='\\0';i++) {

if(puanduanChar(a,follow[p][i])) {

a[flag]=follow[p][i];