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

  • 大小: 24KB
    文件類型: .rar
    金幣: 2
    下載: 1 次
    發布日期: 2021-06-28
  • 語言: Java
  • 標簽: lr1??java??

資源簡介

編譯原理實驗的語法分析器 lr1 只有一個main.java 差不多900行(加上注釋) 有詳細的注釋 如有問題 可切磋改進 由于老師給的是Pascal的文法 當然也可自行修改 出錯處理不是很完善,$表示空,#表示結束符 注意文法要有適當的空格 ,從output.dat文件輸入,文件中是詞法分析的輸出(部分,不影響)

資源截圖

代碼片段和文件信息

import?java.io.BufferedReader;
import?java.io.File;
import?java.io.FileReader;
import?java.io.IOException;
import?java.util.ArrayList;
import?java.util.HashMap;
import?java.util.Map;

public?class?Main?{

public?static?final?int?LR0?=?1;
public?static?final?int?LR1?=?2;
public?static?final?int?SLR?=?3;
public?static?final?int?OUT?=?1;
public?static?final?int?IN?=?2;
public?static?final?int?ERROR_OUT_OUT?=?9;
public?static?final?int?ERROR_IN_OUR?=?10;

private?String?path?=?“C:\\Users\\Administrator\\Desktop\\LR.txt“;
private?ArrayList?grammar?=?new?ArrayList();
private?ArrayList>?prodution?=?new?ArrayList>();
private?ArrayList>?projects?=?new?ArrayList>();
private?ArrayList?terminal?=?new?ArrayList();
private?ArrayList?nonTerminal?=?new?ArrayList();
private?ArrayListject>>?DFA?=?new?ArrayListject>>();
private?ArrayListject>>>?projectUnions?=?new?ArrayListject>>>();
private?ArrayListject>>?follow?=?new?ArrayListject>>();
private?ArrayListject>>?analyseTableAction?=?new?ArrayListject>>();
private?ArrayListject>>?analyseTableGoto?=?new?ArrayListject>>();
private?Mapject?object>?searchs?=?new?HashMapject?object>();
private?ArrayListject>>?Go?=?new?ArrayListject>>();

public?void?readFile()?throws?IOException?{
File?file?=?new?File(path);
FileReader?fr?=?new?FileReader(file);
BufferedReader?br?=?new?BufferedReader(fr);
String?line;

while?((line?=?br.readLine())?!=?null)
grammar.add(line);
}

public?void?spilt()?{
String?left?right;
String[]?temp;

temp?=?grammar.get(0).split(“?“);
for?(String?s?:?temp)
nonTerminal.add(s);

temp?=?grammar.get(1).split(“?“);
for?(String?s?:?temp)
terminal.add(s);

for?(int?i?=?2;?i? String?line?=?grammar.get(i);
if?(!line.startsWith(“Follow“))?{
temp?=?line.split(“?->?“);
left?=?temp[0];
right?=?temp[1];
temp?=?right.split(“?\\|?“);
for?(String?s?:?temp)?{
Map?map?=?new?HashMap();
map.put(“left“?left);
if?(s.equals(“$“))
s?=?““;
map.put(“right“?s);
prodution.add(map);
}
}?
}
getAllFollow();
}

public?void?productionchangeToProject()?{

for?(Map?map?:?prodution)?{
String?left?=?map.get(“left“);
String?right?=?map.get(“right“);

for?(int?i?=?0;?i? String?newString;
if?(right.equals(“$“))?{
newString?=?“.“;
i?=?2;
}?else?{
String?ltmp?=?right.substring(0?i);
String?rtmp?=?right.substring(i?right.length());

newString?=?ltmp?+?“.“?+

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

?????文件????????301??2014-04-28?00:08??LRAnalyse\.classpath

?????文件????????385??2014-04-28?00:08??LRAnalyse\.project

?????文件????????598??2014-04-28?00:08??LRAnalyse\.settings\org.eclipse.jdt.core.prefs

?????文件??????21784??2014-12-19?20:55??LRAnalyse\bin\Main.class

?????文件??????29590??2014-05-07?14:34??LRAnalyse\java\Main.java

?????文件???????1255??2014-12-10?14:47??LRAnalyse\LR.txt

?????文件???????2126??2014-12-13?13:26??LRAnalyse\LRTest.txt

?????文件????????200??2014-12-10?14:47??LRAnalyse\output.dat

?????文件??????27565??2014-12-19?20:55??LRAnalyse\src\Main.java

?????文件????????280??2014-12-10?13:32??LRAnalyse\新建文本文檔.txt

?????目錄??????????0??2014-12-02?08:18??LRAnalyse\.settings

?????目錄??????????0??2014-12-02?08:18??LRAnalyse\bin

?????目錄??????????0??2014-12-02?08:18??LRAnalyse\java

?????目錄??????????0??2014-12-02?08:18??LRAnalyse\src

?????目錄??????????0??2014-12-19?20:42??LRAnalyse

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

????????????????84084????????????????????15


評論

共有 條評論