Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

SNL(Small Nested Language) Compiler. Maven jUnit Tokenizer Lexer Syntax Parser. 编译原理 词法分析 语法分析

NotificationsYou must be signed in to change notification settings

youthlin/SNL-Compiler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SNL(Small Nested Language) Compiler. Maven jUnit Tokenizer Lexer Syntax Parser.
编译原理 词法分析 语法分析

进展

  • 2016-05-24 开始构思
  • 2016-05-27 查资料
  • 2016-05-28 1.开始编码
  • 2016-05-28 2.初步完成词法分析,开始写语法分析
  • 2016-05-29 开始递归下降
  • 2016-05-30 递归下降基本完成
  • 2016-05-31 1.完成递归下降
  • 2016-05-31 2.语法树的输出(竖版)
  • 2016-05-31 3.添加主程序,使用 Commons-Cli 解析命令行参数
  • 2016-05-31 4.添加几个发现的错误如下
  • 2016-06-01 开始 LL1
  • 2016-06-02 1.初步完成 LL1
  • 2016-06-02 2.增加自动识别文件编码。修复标识符结点值错误的 Bug.
  • 2016-06-02 3.查错,基本上完成了.
  • 2016-06-16 修复词法分析点号处理的 Bug (如end.+ 应该报语法错误,在这里当作词法错误处理).

参考书籍

《编译程序的设计与实现》刘磊 金英 张晶 张荷花 单郸;高等教育出版社,ISBN 978-7-04-014620-7.

勘误

其中《编译程序的设计与实现》:

  1. 第 10 页,产生式 (43) 应为:ProcDecMore -> ProcDec. (而不是 ProcDeclare)
  2. 第 63 页,产生式 (67) Predict 集应为[ (左中括号),. (句点),:= (赋值号).
  3. 第 64 页,产生式 (93) Predict 集应包含] (右中括号).
  4. 第 55 页,例子中v2:='a'; 只能通过词法分析,而不能通过语法分析,因为按照给定的产生式(Exp)不能推出字符型。
  5. 第 10 页,产生式 (42), (43) 完全多余。可以去掉,并且把产生式 (41) 右部的ProcDecMore 改为ProcDecpart.
  6. 第 10 页,产生式 (48), 预测符集应为) (右括号),而不是左括号。(第 62 页)

About

SNL(Small Nested Language) Compiler. Maven jUnit Tokenizer Lexer Syntax Parser. 编译原理 词法分析 语法分析

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp