• 大小: 1MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-01
  • 语言: Java
  • 标签: java  编译原理  

资源简介

nput.txt是输入的测试文件。 produce.txt是输入的LR1产生式,能力不大,能if,while,赋值,加,乘,不能处理任何嵌套,没有数组,(这个你可以自己加文法进去进行处理) Grammar.txt是某个博客上的文法,看着很靠谱,但是我没有再做测试的心思了。。。 这个程序没啥bug,但是文法如果有左递归,那肯定是会出现stack overflow的(书上算法就是这么设计的) 另外LR文法不能有二义性,你得在文法里面把算术优先级给解决了。 另外如果加入嵌套,那必然复杂度指数上升,得跑很久。。。。十分钟似乎都不算多。。 运行指南: gui.JtableParse3.java 显示LR1分析表,同时对input里面的文件进行分析。输出词法分析结果到output.txt 输出规约过程,很小一段语句可能就会很长的规约过程。 letex.LexResult.java 显示词法分析结果。输出全部识别出来的单词。 LR1识别实现完全在Parse3包里,自己看名字去读代码。 几乎每一个主要的类我都写了main()方法,可以自己输入一些产生式去试下, 比如书上给的: S' -> S S -> C C C -> c C|d 得到的集合和LR1的结果和书上完全一致 和一些网址上的 S' -> S S -> L = R S -> R L -> * R L -> id R -> L 你可以通过跑ItemTable.java 得到全部的集合和goto集合, 通过跑gotoTable.java 得到goto表 通过跑ActionTable.java 得到action表(cmd形式) 通过跑parse.java 得到两张表的合集和规约过程。 gui.JtableParse3.java 把上面的两张表合在一起图形化了。 我鼓励你发现我的bug *0*虽然我仔细检察过并没有bug 但你可以发布修复bug的最新版本。注意标明原转载网址奥。 更加详细的思路和其他的说明,见下面的网址: https://blog.csdn.net/qinglingLS 和: https://blog.csdn.net/qinglingLS/article/details/89814398 【HIT哈工大编译原理实验】词法分析程序java 【编译原理】求first集合的代码实现java 【编译原理】求GOTO图的代码实现java 【编译原理】LL(1)分析法代码 其他的更新版本可以自己去博客里找一下噢。 写于2019/5/8

资源截图

代码片段和文件信息

include  ; 
void id (int id)
{
int[digit] id;
 while(id > id)
  do{
  if(id != id)
 {
 id=id*id;
 }
  id=id*id;
  }; 
 if(id != id)
 {
 while(id > id)
  do{
  if(id != id)
 {
 id=id*id;
 }
  id=id*id;
  }; 
 id=id*id;
 }
}
 
 void id (int id)
{
 while(id < id)
  do{
  id[id]=(digit)-id* id+id;
  }; 
 if(id != id)
 {
 id=id*id;
 }
 }
$

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        232  2019-05-02 10:47  Compiler_mean3\.classpath

     文件        390  2019-05-08 23:03  Compiler_mean3\.project

     文件       4776  2019-05-11 14:51  Compiler_mean3\bin\gui\JTableParse3.class

     文件       2486  2019-05-11 14:51  Compiler_mean3\bin\letex\KeyWord.class

     文件      10128  2019-05-11 14:51  Compiler_mean3\bin\letex\LexAnalyse.class

     文件       5331  2019-05-11 14:51  Compiler_mean3\bin\letex\LexResult.class

     文件       2637  2019-05-11 14:51  Compiler_mean3\bin\letex\Tag.class

     文件        517  2019-05-11 14:51  Compiler_mean3\bin\letex\Token.class

     文件       1217  2019-05-11 14:51  Compiler_mean3\bin\letex\Word.class

     文件       6923  2019-05-11 14:51  Compiler_mean3\bin\parse3\ActionTable.class

     文件       5267  2019-05-11 14:51  Compiler_mean3\bin\parse3\FirstFollow.class

     文件       1644  2019-05-11 14:51  Compiler_mean3\bin\parse3\GoTo.class

     文件       5303  2019-05-11 14:51  Compiler_mean3\bin\parse3\GoToTable.class

     文件       9941  2019-05-11 14:51  Compiler_mean3\bin\parse3\Item.class

     文件       2944  2019-05-11 14:51  Compiler_mean3\bin\parse3\ItemSet.class

     文件       4658  2019-05-11 14:51  Compiler_mean3\bin\parse3\ItemTable.class

     文件       5951  2019-05-11 14:51  Compiler_mean3\bin\parse3\LRClosure.class

     文件       5846  2019-05-11 14:51  Compiler_mean3\bin\parse3\Parse.class

     文件       1939  2019-05-11 14:51  Compiler_mean3\bin\parse3\Production.class

     文件       4129  2019-05-11 14:51  Compiler_mean3\bin\parse3\ProductionList.class

     文件       1761  2019-05-11 14:51  Compiler_mean3\bin\parse3\WordStack.class

     文件       2503  2019-05-11 14:51  Compiler_mean3\bin\utils\FileOpt.class

     文件       2799  2019-05-08 22:48  Compiler_mean3\Grammar.txt

     文件        395  2019-05-09 00:44  Compiler_mean3\input.c

     文件     597042  2019-05-12 22:58  Compiler_mean3\OUTPUT.c

     文件        994  2019-05-09 00:15  Compiler_mean3\produce.txt

     文件       4646  2019-05-09 00:26  Compiler_mean3\src\gui\JTableParse3.java

     文件       1844  2019-05-02 11:05  Compiler_mean3\src\letex\KeyWord.java

     文件      18757  2019-05-08 22:16  Compiler_mean3\src\letex\LexAnalyse.java

     文件       3861  2019-05-08 16:30  Compiler_mean3\src\letex\LexResult.java

............此处省略33个文件信息

评论

共有 条评论