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

📄 wordana.java

📁 这个是采用java编写的for语句的LR分析法的翻译程序
💻 JAVA
字号:

public class WordAna {
	WordAna()
	{
	}
	
	public boolean has(String  aaa[],String operator[],int num)
	 //判断条件表达式中是否有非法字符。其中的参数分别代表要判断的字符串,要参照的符号表,和字符的长度
	 { 
		 int b,d;
		 boolean isOperator=true,isfu=true; 
		 for( b=0;b<num;b++)
		 { 
			 for( d=0;d<operator.length;d++)
			 {
				 if(aaa[b].equals(operator[d]))
				 {
					 isOperator=true;
					 isfu=true;
					 break;
					 }
				 else
				 {
					 isfu=false;
					 continue;
					 }
				 }//for
			 if (!bianliangpan(aaa[b])&&!isfu)//如果不是合法变量并且不是字符则出错 
				 {
				 isOperator=false;
				 System.out.print("错了"+aaa[b]);
				 break;
				 }
			 else if(bianliangpan(aaa[b])&&!isfu)//如果是合法变量
				 {
				 continue;
				 }	
			 }//for
		 
		 if(isOperator==false)
		 {
			// out.append("输入了非法标志符!");
			 return false;
			 }
		 else 
			 return true;
		 }

	 //判断是不是合法的变量
	  public boolean bianliangpan(String a)
	  { 
		  int c;
	      char zhjian[];
	      boolean istrue=false;
	      String ss=a; 
	      int f=a.toCharArray().length;
	      zhjian=new char[f];
	      zhjian=ss.toCharArray();//将当前字符串转化为字符数组来分析
	      
	      for( c=0;c<f;c++)
	      {
	    	  if(c==0)
	    	  { 
	    		  if(Character.isDigit(zhjian[0]))
	    		  {
	    			  if(f==1)
	    			  {
	    				  istrue=true;
	    				  break;
	    				  }
	    			  for(int ii=1;ii<f;ii++)
	    			  {
	    				  if(Character.isLetter(zhjian[ii]))
	    				  {
	    					  istrue=false;//开头有数字,后面的有一个是字母则就是非法的变量
	    					  break;
	    					  }
	    				  else istrue=true;
	    				  }//for
	    			  }//if
	    		  else if(Character.isLetter(zhjian[0])||zhjian[0]=='_')
	    		  {
	    			  istrue=true;//开头是下划线或者字母则是合法变量
	    			  break;
	    			  }
	    		  else
	    		  {
	    			  istrue=false;
	    			  break;
	    			  }   		   			
	    		  }//if
	    	  }//for
	      if(istrue)
	    	  return true;
	      else return false;
	      }
	  
	  public boolean isZiFu(String a)
	  {
	  	if(a.equals("+")||a.equals("-")||a.equals("*")||a.equals("/"))
	  		return true;
	  	else 
	  		return false; 
	  }
}

⌨️ 快捷键说明

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