⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yufa.java

📁 java语言写的词法分析器
💻 JAVA
字号:
public class Yufa extends Cifa{
	String ss;
	Yufa(String s){
		super(s);
		ss="";
	}
	public String getString(){
		scaner();		
		Irparser();
		return ss;
	}
	void Irparser(){
		if(syn==1){
		//	do{
				scaner();
		//	}
		//	while(syn==30);
			
			yucu();
			if(syn==6){
				scaner();
				if(syn==0&&!iserror)
					ss="Success!";
			}
			else{
				if(!iserror){
					ss+="Line "+line+" 缺end,错误";
							
					iserror=true;
				}
			}
		}
		else{
			ss+="Line "+line+" 缺begin,错误!";
			iserror=true;
		}
	}
	void yucu(){
		statement();
		while(syn==26){
		//	do{
				scaner();
		//	}while(syn==30);
			statement();
		}
	}
	void statement(){
		if(syn==10){//string
			scaner();
			if(syn==18){//:=
				scaner();
				expression();
			}
			else{
				ss+="Line "+line+" 赋值号错误(应该为:=)!\n";
				iserror=true;
			}
		}
		else{
			ss+="Line "+line+" 语句错误!\n";
			iserror=true;
		}
		
	}
	void expression(){
		term();
		while(syn==13||syn==14){
			scaner();
			term();
		}
		
	}
	void term(){
		factor();
		while(syn==15||syn==16){
			scaner();
			factor();
			
		}
	}
	void factor(){
		if(syn==10||syn==11)
			scaner();
		else if(syn==27){
			scaner();
			expression();
			if(syn==28)
				scaner();
			else{
				ss+="Line "+line+" \')错误\n";
				iserror=true;
			}
		}
		else{
			ss+="Line "+line+" 表达式错误\n";
			iserror=true;
		}
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -