亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? heng.java

?? 編譯原理課程設(shè)計(jì)LL(1)for語(yǔ)句設(shè)計(jì)
?? JAVA
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
package by;

import javax.swing.*;
import java.awt.*;
import java.io.*;
import java.awt.Event;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.UIManager.LookAndFeelInfo;
import javax.swing.filechooser.FileFilter;

import java.util.*;

public class heng
{ 
	public static void main(String args[])
    {
    	cfFrame frame=new cfFrame();
    	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	frame.setVisible(true);
    	frame.setResizable(false);
    	
    }
}
class cfFrame extends JFrame 
{
	public cfFrame()
	{
		LookAndFeelInfo[] infos=UIManager.getInstalledLookAndFeels();
		setTitle("for循環(huán)");
		setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
		cfPanel panel=new cfPanel();
		add(panel);
		
		
	}
	public static final int DEFAULT_WIDTH=500;
	public static final int DEFAULT_HEIGHT=550;
}
class cfPanel extends JPanel
{
	JPanel bei,center,nan;
	JButton chose,save,start,qingkong,wenfafenxi,fanyi,jieguo;
	JFileChooser chooser;
	JScrollPane scrollin,scrollout;

	JTextArea in,out;//輸入輸出文本區(qū)
	File file;
	String read,write;//保存輸入輸出
	String tj[],fzhi1[],fzhi2[],fzhi3[];//分別保存源程序中的條件表達(dá)式,和賦值語(yǔ)句
	int i=0,j=0,m=0;
	int k=0;
	 int temzhi1=0;//記錄賦值語(yǔ)句一的后綴表達(dá)式的長(zhǎng)度
	 int temzhi2=0;//記錄賦值語(yǔ)句二的后綴表達(dá)式長(zhǎng)度
	 int temzhi3=0;////記錄賦值語(yǔ)句三的后綴表達(dá)式長(zhǎng)度
	//翻譯時(shí)記錄賦值語(yǔ)句一要翻譯的個(gè)數(shù)
	int tongji1=0;//用于記錄跳轉(zhuǎn)時(shí)候的步驟
	int tongji2=0;
	int tongji3=0;
	final int N=100;
	public int lenth1,fuzhi1,fuzhi2,fuzhi3;
	boolean tjTrue=true,fz1True=true,fz2True=true,fz3True=true;
	//String s1[],s2[],s3[],s4[];
	private final String[] operatorOffz={"+","-","*","/","(",")","=","#"};
	private final String[] operatorOftj={"(",")","=","#","<",">"};
	String matrix1[][]={{"D","","","" },
            {"iRi","","",""},
            {"","<",">","="}
};
String matrix2[][]={{"","","","","","","","","i=A"},
            {"","","","","BC","","","","BC"},
            {"+BC","-BA","","","","0","","0",""},
            {"","","","","FD","","","","FD"},
            {"0","0","*FD","/FD","","0","","0",""},
            {"","","","","(A)","","","","i"}

};
String hei1[]={"E","D","R"};
String len1[]={"i","<",">","="};
String hei2[]={"E","A","C","B","D","F"};
String len2[]={"+","-","*","/","(",")","=","#","i",};

public  cfPanel()//界面設(shè)置
	{
		bei=new JPanel();
	    center=new JPanel();
		nan=new JPanel();
		chooser=new JFileChooser();
		
	    chose =new JButton("選 源 程 序");
		save=new JButton("保 存 結(jié) 果 ");
		qingkong=new JButton("全 部 清 空");
		fanyi=new JButton("察 看 文 法");
		jieguo=new JButton("計(jì) 算 結(jié) 果");
			
		bei.add(save);
		bei.add(chose);
		bei.add(fanyi);
		
		JLabel input=new JLabel("請(qǐng)輸入:                      ");
		JLabel output=new JLabel("分析結(jié)果為:");
		
	    in=new JTextArea(20,20);
		out=new JTextArea(20,20);
		out.setEditable(false);
		in.setEditable(true);
					
		nan.add(input);
	    nan.add(output);
	    
	    scrollin=new JScrollPane(in);
	    scrollout=new JScrollPane(out);
		center.add(scrollin);
		center.add(scrollout);
		
		add(bei,BorderLayout.NORTH);
		add(nan,BorderLayout.SOUTH);
		add(center,BorderLayout.CENTER);
		add(qingkong,BorderLayout.EAST);
		add(jieguo,BorderLayout.EAST);	
		
		
		chose.addActionListener(new 
				ActionListener()
		{
			public void actionPerformed(ActionEvent event)
			{
		    int result=chooser.showOpenDialog(getParent());
			file=chooser.getSelectedFile();
		    in.setText("");
			BufferedReader readin = null;
			if(file != null)
	        {
	            try
	            {
	                readin = new BufferedReader(new FileReader(file));
	            }
	            catch(FileNotFoundException fe)
	            {
	            	System.out.println("File Not Found");
	                return;
			     }
	            try
	            {
	                while( (read=readin.readLine())!=null)
	                {
	                    in.append(read);
	                    in.append("\n");
	                }
	            }   
	                catch(IOException ioe)
	                {
	            	in.append("讀取文件錯(cuò)誤");
	                }
	                finally{
	                    try{
	                        if(readin != null)
	                            readin.close();
	                    }catch(IOException ioe2){}
	                }
		}}});
		
		save.addActionListener(new
				ActionListener()
		{
			public void actionPerformed(ActionEvent event)
			{
				int result=chooser.showSaveDialog(getParent());
				file = chooser.getSelectedFile();
				FileOutputStream fileOutStream = null;
				if(file != null)
	              {
	                  try
	                  {
	                     fileOutStream = new FileOutputStream(file);
	                  }catch(FileNotFoundException fe)
	                  {
	                	  System.out.println("File Not Found");
	                      return;
	                  }
	          write=out.getText();
	         try{
	        	
                 fileOutStream.write(write.getBytes());
             }catch(IOException ioe){
           	  in.append("寫(xiě)入文件錯(cuò)誤");
             }
             finally{
                 try{
                     if(fileOutStream != null)
                         fileOutStream.close();
                 }catch(IOException ioe2){}
             }
			}
		}});
		fanyi.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent q)
			{
				try
				{
				Runtime.getRuntime().exec("cmd /c start keshe\\help.doc");
			    }
				catch(Exception e)
				{
					
				}
				}
			});
		jieguo.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent q)
			{
				tjTrue=true;
				fz1True=true;
				fz2True=true;
				fenxi();
				
			}
		});
		qingkong.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent q)
			{
				in.setText("");//清空兩個(gè)文本框
				out.setText("");
			}
		});
	}

public void fenxi()
    {
	  int pan=0;//pan是用來(lái)表示把當(dāng)前字符放到哪一個(gè)部分中,fen是用來(lái)匹配括號(hào)的
	  int i=0,j=0,m=0,k=0;//分別表示條件,賦值語(yǔ)句一,語(yǔ)句二的長(zhǎng)度
	  fzhi1=new String[N] ;//存放第一個(gè)賦值語(yǔ)句部分
	  fzhi2=new String[N] ;//存放第二個(gè)賦值語(yǔ)句部分
	  fzhi3=new String[N];//存放第三個(gè)賦值語(yǔ)句部分
	  tj=new String[N] ;//存放條件表達(dá)式 
	  String s=in.getText();//獲得輸入源程序
	  StringTokenizer fenxi=new StringTokenizer(s," \n\t\r;+=/-*\"\')(}{[]<>?:!",true);
	  //用來(lái)把輸入串分割為單詞
	  while(fenxi.hasMoreTokens())//將輸入的源程序截取為三個(gè)幾個(gè)部分
	 {   
		 String str=fenxi.nextToken();
		 if (str.equals(" ")||str.equals("\n"))//如果是空格則分析下一個(gè)
			 continue;
		 if(str.equalsIgnoreCase("for"))//將第一個(gè)左括號(hào)放到第一個(gè)賦值表達(dá)式
		 {
			 pan=pan+1;
		 }
		 else if(str.equalsIgnoreCase(";"))
		 { 
			 pan=pan+1;
		 }
		 else if(str.equalsIgnoreCase(";"))
		 { 
		     pan=pan+1;
		 }
		 else if(str.equals("{"))//將{后邊的放到第三個(gè)賦值語(yǔ)句中
				 {
			 pan=pan+1;
				 }
		 else if(pan==2)
			 
		        { 
			       tj[i]=str;  
		    	    i++; 
		        }
		else if(pan==1)
			    {
			    	     fzhi1[m]=str;		
			    	     m=m+1;   	   
			     }
		else if(pan==3)
		     {           
		           fzhi2[j]=str;       
		        	  j=j+1;
		      }
		else if (pan==4)
		{
			fzhi3[k]=str;
			k++;
		}
	    else 
	    	out.append("輸入有誤"+"\n");
		    	 
	 }//while
	     lenth1=i;//條件表達(dá)式的長(zhǎng)度
		 fuzhi1=m;//賦值語(yǔ)句1的長(zhǎng)度
		 fuzhi2=j;//賦值語(yǔ)句2的長(zhǎng)度
		 fuzhi3=k;//賦值語(yǔ)句3的長(zhǎng)度
		 for(int a=0;a<i;a++)
			 out.append(tj[a]);
		    out.append("\n");
		 for(int b=0;b<m;b++)
			out.append(fzhi1[b]);
		     out.append("\n");
		 for(int c=0;c<j;c++)
			 out.append(fzhi2[c]);
		 
		 out.append("\n");
		
		 
		
	
    if (fzhi1[0].equals("(")&&fzhi2[j-1].equals(")")&&fzhi3[k-1].equals("}"))//判斷條件for是否符合要求
     {
    	 if(fzhi1[2].equals("=")&&fzhi2[1].equals("=")&&fzhi3[1].equals("="))//判斷復(fù)制語(yǔ)句是否符合要求
    	 {
    		 for(int b=0;b<m-1;b++)
			 {
				 fzhi1[b]=fzhi1[b+1];
				 System.out.print(fzhi1[b]);
			 }
			 fzhi1[m-1]="";
			 fzhi2[j-1]="";
			 fzhi3[k-1]="";
			 fuzhi1--;
			 fuzhi2--;
			 fuzhi3--;
				 
			
    		 if(has(tj,operatorOftj,i)&&has(fzhi1,operatorOffz,1)&&has(fzhi2,operatorOffz,j-1)&&has(fzhi3,operatorOffz,k-1))
    		 {  
    			
    			 out.append("整個(gè)輸入語(yǔ)句的詞法是正確的"+"\n");
  
    			 vertify(allString (tj),matrix1,hei1,len1,1);
    			 vertify(allString (fzhi1),matrix2,hei2,len2,2);
    			 vertify(allString (fzhi2),matrix2,hei2,len2,3);
    			 vertify(allString (fzhi3),matrix2,hei2,len2,4);
    			 if(tjTrue&&fz1True&&fz2True&&fz3True)
    			 {
    				 out.append("整個(gè)輸入語(yǔ)句的語(yǔ)法是正確的"+"\n"+"下面的是輸出的四元式"+"\n");
    				 siyuanshi();
	    	 
    			 }  
    			 else 
    				 out.append("您的句子語(yǔ)法有錯(cuò)誤,無(wú)法翻譯"+"\n");
    		 }//if  
    		 else 
    		 {
    			 if(!has(tj,operatorOftj,i))
    				 System.out.print("輸入的條件表達(dá)式的詞法有錯(cuò)誤"+"\n");
    			 else if (!has(fzhi1,operatorOffz,fuzhi1-1))
    				 System.out.print("輸入的第一個(gè)賦值表達(dá)式的詞法有錯(cuò)誤"+"\n");
    			 else if (!has(fzhi2,operatorOffz,fuzhi2-1))
    				 System.out.print("輸入的第二個(gè)賦值表達(dá)式的詞法有錯(cuò)誤"+"\n");
    			 else if (!has(fzhi3,operatorOffz,fuzhi3-1))
    				 System.out.print("輸入的第三個(gè)賦值表達(dá)式的詞法有錯(cuò)誤"+"\n");
    		 }//else
    	 	}//if(fzhi1[1].equals("=")&&fzhi2[1].equals("="))
    	 else
    		 out.append("賦值表達(dá)式不符合要求,應(yīng)該有=號(hào)"+"\n");
    	 }//if (tj[0]=="("&&tj[i-1]==")")
     else 
     {
    	 out.append("輸入的條件表達(dá)式的詞法有錯(cuò)誤,應(yīng)該有括號(hào)"+"\n");
     }
    }

 public boolean has(String  aaa[],String operator[],int num)
 //判斷條件表達(dá)式中是否有非法字符。其中的參數(shù)分別代表要判斷的字符串,要參照的符號(hào)表,和字符的長(zhǎng)度
 { 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)//如果不是合法變量并且不是字符則出錯(cuò) 
		  {
			isOperator=false;
			System.out.print("錯(cuò)了"+aaa[b]);
			break;
		  }
		else if(bianliangpan(aaa[b])&&!isfu)//如果是合法變量
		{
			continue;
		}	
	
  }//for
  if(isOperator==false)
  	{
	  out.append("輸入了非法標(biāo)志符!");
	  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();//將當(dāng)前字符串轉(zhuǎn)化為字符數(shù)組來(lái)分析

    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;//開(kāi)頭有數(shù)字,后面的有一個(gè)是字母則就是非法的變量
						   break;
					   }
					   else istrue=true;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精选一二三| 欧美理论片在线| 亚洲色图在线播放| 日韩免费高清视频| 在线免费观看日韩欧美| 国产精华液一区二区三区| 亚洲福利一二三区| 亚洲精品国产a久久久久久| 久久综合av免费| 日韩精品一区二区三区蜜臀| 欧美系列亚洲系列| 9久草视频在线视频精品| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 国产精品高潮呻吟久久| 久久久蜜臀国产一区二区| 欧美日韩精品欧美日韩精品 | 欧美猛男gaygay网站| 日韩视频永久免费| 综合激情成人伊人| 国产一区二区三区免费| 欧美伊人精品成人久久综合97| 日韩一区二区三区av| 国产精品麻豆99久久久久久| 亚洲成人av在线电影| 成人一区二区三区视频在线观看 | 欧美日韩一区二区三区四区五区| 精品久久久久久亚洲综合网| 一区二区三区在线免费观看| 国产精品天天摸av网| 久久精品欧美一区二区三区不卡| 亚洲另类一区二区| 成人18视频在线播放| 精品久久久久久最新网址| 亚洲电影第三页| 91久久国产综合久久| 国产精品美女久久久久久久| 国内偷窥港台综合视频在线播放| 欧美日本乱大交xxxxx| 亚洲精品成人a在线观看| a亚洲天堂av| 国产精品三级av| 成人毛片视频在线观看| 久久精品视频一区二区三区| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美亚洲愉拍一区二区| 亚洲国产欧美另类丝袜| 欧美日韩中字一区| 婷婷六月综合亚洲| 欧美成人一区二区三区片免费| 日韩福利电影在线| 欧美一区二区三区视频在线| 日本欧美一区二区三区乱码| 这里是久久伊人| 国产麻豆9l精品三级站| 欧美经典一区二区| aa级大片欧美| 亚洲v日本v欧美v久久精品| 欧美日韩高清不卡| 久久99精品久久久久久| 国产精品丝袜黑色高跟| 在线视频你懂得一区二区三区| 五月婷婷色综合| 久久精品免费在线观看| 一本久久综合亚洲鲁鲁五月天 | 亚洲视频在线观看三级| av在线这里只有精品| 樱桃视频在线观看一区| 久久久亚洲国产美女国产盗摄| 日本va欧美va精品| 日韩精品一区二区三区视频| 国产精品亚洲午夜一区二区三区 | 一区二区三区欧美日韩| 在线视频你懂得一区| 精品综合免费视频观看| 久久九九影视网| av不卡在线播放| 精品综合久久久久久8888| 日韩毛片一二三区| 欧美精品一区二区三区蜜桃视频| jizzjizzjizz欧美| 久久99热这里只有精品| 一区二区三区在线视频免费| 国产欧美日韩精品a在线观看| 欧美精品乱码久久久久久按摩| 成人av网在线| 国产成人精品免费网站| 日产国产欧美视频一区精品| 国产精品二三区| 国产日产精品1区| 欧美变态口味重另类| 日韩亚洲欧美中文三级| 欧美乱妇一区二区三区不卡视频| www.综合网.com| 成人毛片视频在线观看| 国产不卡视频在线观看| 韩国毛片一区二区三区| 激情欧美一区二区| 国产乱人伦偷精品视频免下载| 免费成人在线网站| 卡一卡二国产精品| 久久激情五月激情| 日韩激情视频在线观看| 日韩专区中文字幕一区二区| 午夜a成v人精品| 偷拍一区二区三区| 精品一区二区三区久久久| 激情av综合网| 99久久久久久| 色久综合一二码| 在线不卡免费欧美| 精品精品国产高清a毛片牛牛 | 久久精品一区二区三区不卡| www久久久久| 国产精品久久久一区麻豆最新章节| 国产蜜臀av在线一区二区三区| 国产精品欧美精品| 国产精品久久综合| 亚洲成在人线在线播放| 蜜臀av亚洲一区中文字幕| 国产成人免费9x9x人网站视频| 99re成人精品视频| 欧美精品第1页| 国产三级久久久| 亚洲香肠在线观看| 成人一区二区三区| 在线成人午夜影院| 亚洲欧洲精品成人久久奇米网| 亚洲人午夜精品天堂一二香蕉| 日韩精品一级中文字幕精品视频免费观看| 无码av中文一区二区三区桃花岛| 国产成a人亚洲精品| 欧美日韩午夜精品| 国产精品初高中害羞小美女文| 亚洲国产精品一区二区久久恐怖片| 久久99久久99精品免视看婷婷| 色呦呦网站一区| 久久精品男人的天堂| 日韩av不卡在线观看| 91麻豆文化传媒在线观看| 久久久久久久久久美女| 美脚の诱脚舐め脚责91 | 久久久久国色av免费看影院| 午夜精品在线看| 91九色02白丝porn| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 五月激情综合网| 欧美区一区二区三区| 一区二区三区蜜桃| 一本色道久久综合亚洲91| 国产精品美女久久久久高潮| 国产91精品一区二区麻豆网站 | 综合久久久久久| 亚洲国产成人高清精品| 国产精品18久久久久| 久久亚洲综合色一区二区三区| 丝袜美腿亚洲一区| 91久久免费观看| 亚洲欧美精品午睡沙发| 色婷婷精品久久二区二区蜜臀av | 国产精品一区在线观看乱码| 精品国产一区二区三区久久久蜜月| 亚洲成人av在线电影| 欧美一级日韩免费不卡| 免费日韩伦理电影| 欧美性极品少妇| 日韩av中文字幕一区二区三区| 欧美一区二区三区四区在线观看| 另类小说图片综合网| 国产区在线观看成人精品 | 久久久精品日韩欧美| 成人精品gif动图一区| 一区二区在线电影| 欧美区一区二区三区| 国产精品18久久久久久vr| 亚洲欧美国产77777| 欧美变态tickling挠脚心| 国产精品一区二区x88av| 亚洲视频一二区| 欧美一级高清片| 在线观看av一区| 国产在线麻豆精品观看| 一个色在线综合| 国产精品美女久久久久久久久| 欧美日韩夫妻久久| 丰满岳乱妇一区二区三区| 午夜精品久久久久久| 中文字幕在线不卡| 久久精品一区八戒影视| 欧美一级黄色大片| 欧美亚洲尤物久久| a级精品国产片在线观看| 美女在线视频一区| 亚洲第一会所有码转帖| 国产精品久久看| 久久久久久久久伊人| 日韩欧美国产wwwww| 欧美日韩黄色一区二区| 色94色欧美sute亚洲线路一久| 国产伦精品一区二区三区视频青涩| 亚洲va国产天堂va久久en|