91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 339KB
    文件類型: .rar
    金幣: 2
    下載: 1 次
    發布日期: 2023-02-08
  • 語言: 其他
  • 標簽:

資源簡介

PL/0編譯程序采用一遍掃描的方法,所以語法分析和代碼生成都有在BLOCK中完成。 包括語法分析器和詞法分析器及實驗報告。

資源截圖

代碼片段和文件信息

package?analysis;

import?java.io.File;
import?java.io.FileInputStream;
import?java.io.FileNotFoundException;
import?java.io.FileOutputStream;
import?java.io.IOException;
import?java.io.OutputStreamWriter;
import?java.util.ArrayList;

import?javax.swing.JFileChooser;
import?javax.swing.JOptionPane;



public?class?Analysis?{

private?frame?lex;
private?String?filename;
private?char?ch;//每行讀入的第一個字符?

private?String?strbuf;//存放字符

private?final?String?[]key?=?{“begin““end““if““then““else““for““do““while““and““or““not“};

int?current?=?0;?

public?Analysis(frame?lex)?{
//?TODO?Auto-generated?constructor?stub
this.lex?=?lex;
}



public?void?openfile(){
JFileChooser?choose?=?new?JFileChooser(filename);
choose.setFileSelectionMode(JFileChooser.FILES_ONLY);
int?result?=?choose.showOpenDialog(lex);
if(result==JFileChooser.CANCEL_OPTION)
return;
File?file=choose.getSelectedFile();
filename=file.getAbsolutePath();
try{
StringBuffer?buffer=new?StringBuffer(““);
FileInputStream?fis=new?FileInputStream(filename);
int?c;
while((c=fis.read())!=-1){
buffer.append((char)c);
}
lex.input.setText(new?StringBuffer(buffer).toString());
lex.output.setText(““);
lex.errorput.setText(““);
}catch(IOException?e){
e.printStackTrace();
}
}






public?void?save()?{
//?TODO?Auto-generated?method?stub
JFileChooser?chooser?=?new?JFileChooser(filename);
chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
int?result?=?chooser.showOpenDialog(lex);
if(result==JFileChooser.CANCEL_OPTION)
return;
File?file=chooser.getSelectedFile();
filename=file.getAbsolutePath();

//存入窗口
if(filename?==?null?||?““.equals(filename)){
JOptionPane.showMessageDialog(chooser?“請填文件名““請填文件名“JOptionPane.INFORMATION_MESSAGE);
}else{
try?{
OutputStreamWriter?osw?=?new?OutputStreamWriter(new?FileOutputStream(filename+“.txt“));
//將token表中的數據取出來放到String中
ArrayList?al?=?lex.Token;
String?outputString=““;
for(int?i?=?0;?i outputString?+=?“【“+al.get(i).getKind()+“???“+al.get(i).getName()+
“???“+al.get(i).getCode()+“】\r\n“;
}
osw.write(“?????????Token字表\r\n“+outputString);
osw.flush();
osw.close();
}?catch?(Exception?e)?{
e.printStackTrace();
}

}

}


public?boolean?isNumber(char?ch)
{
if(ch?>=?‘0‘&&?ch?<=‘9‘)
return?true;
else?
return?false;
}

public?boolean?isAlph(char?ch)
{

if(ch?>=?‘a‘&&?ch?<=?‘z‘||?ch?>=?‘A‘&&?ch?<=?‘Z‘)
{???//System.out.print(“ok“);

return?true;}
else
return?false;

}

private?void?isKey(String?str){
int?code?=?0;//1表示是關鍵字,2表示是標示符
int?i;
for(i?=?0;i? if(str.equals(key[i])){
code?=?1;???//如果在關鍵字表中有一個與str匹配,輸出關鍵字
lex.printMessage(lex.output?“保留字“?str?i+1);
}
}
if(code?!=?

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件??????13777??2010-06-07?08:27??編譯原理實驗\Analysis.java

?????文件????????238??2010-06-07?08:19??編譯原理實驗\code.txt

?????文件???????3726??2010-06-07?08:19??編譯原理實驗\frame.java

?????文件????????258??2010-06-01?09:25??編譯原理實驗\Result.java

?????文件????????419??2010-05-24?13:42??編譯原理實驗\TokenBean.java

?????文件?????????13??2010-05-25?20:24??編譯原理實驗\編譯例題.txt

?????文件?????????11??2010-06-07?08:22??編譯原理實驗\編譯例題1.txt

?????文件?????????14??2010-05-26?10:32??編譯原理實驗\編譯錯誤例題.txt

?????文件?????352713??2010-06-01?12:34??編譯原理實驗\語法分析詞法分析實驗報告.docx

?????目錄??????????0??2010-06-10?10:47??編譯原理實驗

-----------?---------??----------?-----??----

???????????????371169????????????????????10


評論

共有 條評論