首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

编译原理词法分析、语法分析程序

后端 955.89KB 15 需要积分: 1
立即下载

资源介绍:

这个一个C--语言的语法分析器,包括词法分析、语法分析、语义处理等。 zhou.cfg 文法相关如解释文法、计算first、follow集合等 zhou.lex 词法分析相关 zhou.parser >语法分析,同时进行语法制导翻译,按照老师要求,采用递归下降分析方法,Descent.java为分析器。 zhou.view UI组件 实现功能 类型检测、重复定义或未定义、方法调用等 输入输出 输入:c语言测试代码 、文法 输出:词法分析结果、文法推导过程、中间代码或上述遇到的错误。
# c---parser 这个一个C--语言的语法分析器,包括词法分析、语法分析、语义处理等。 ### 文法及其对应的语义动作(@开头的标识符为语义动作) ``` java program -> func funcs funcs -> func funcs | ε func -> type IDN ( args ) @MAKE_FUNC_TABLE func_body type -> int | short | long |char |float |double| void args -> type IDN @ARG_INFO @ARGS arg | ε arg -> , type IDN @ARG_INFO arg | ε func_body -> ; | block block -> { @FUNC_INIT @GEN_FUNC_PROCESS_LABEL define_stmts stmts } define_stmts -> define_stmt define_stmts | ε define_stmt -> type IDN @CHECK_VAR_DEFINE @VAR_INIT init vars ; init -> = expression @CHECK_EXPR_TYPE @GEN_DEFINE_EXPR_CODE | ε vars -> , IDN @CHECK_VAR_DEFINE init vars | ε stmts -> stmt stmts | ε stmt -> assign_stmt @GEN_EXPR_ASSIGN_CODE | jump_stmt | iteration_stmt | branch_stmt assign_stmt -> expression @VAR_INIT @CHECK_EXPR_TYPE ; jump_stmt -> continue ; | break ; | return innull_expr ; iteration_stmt -> while ( @LABEl_OUT_IN logical_expression ) @GEN_IF_CODE @GEN_TRUE_LABEL block_stmt @GEN_ENTER_CODE | for ( isnull_expr ; isnull_expr ; isnull_expr ) block_stmt | do block_stmt while ( logical_expression ) ; branch_stmt -> if (@LABEL_OUT_IN logical_expression ) @GEN_IF_CODE @GEN_TRUE_LABEL block_stmt @GEN_FALSE_LABEL result | switch ( IDN ) { case_stmt case_stmts default_stmt } result -> else block_stmt | ε logical_expression -> ! expression @REVERS_EQ_OPER @GEN_MID_EXPR @CHECK_BOOL_EXPR bool_expression | expression @GEN_MID_EXPR @CHECK_BOOL_EXPR bool_expression bool_expression -> lop @GEN_LABEL_OR_CODE expression @GEN_MID_EXPR bool_expression | ε //下面的or 是 || lop -> && | or case_stmts -> case_stmt case_stmts | ε case_stmt -> case const : stmts default_stmt -> default : stmts block_stmt -> { @MAKE_CHILD_TABLE stmts } expression -> value operation operation -> compare_op value | equal_op value | ε compare_op -> > | >= | < | <= | == | != @EN_EXPRESSION_STACK equal_op -> = @CAL_LEFTID_INFO | += | -= | *= | /= | %= value -> item value' value' -> + item @GEN_EXPR_CODE value' | - item @GEN_EXPR_CODE value' | ε item -> factor item' item' -> * factor @GEN_EXPR_CODE item' | / factor @GEN_EXPR_CODE item' | % factor @GEN_EXPR_CODE item' | ε factor -> ( value ) | IDN @CHECK_UNDEFINE call_func | const call_func -> ( es ) @GEN_CALL_FUNC | ε es -> isnull_expr isnull_es isnull_expr -> expression | ε isnull_es -> , isnull_expr isnull_eas | ε const -> num_const | FLOAT | CHAR | STR num_const -> INT10 @NUM_CONST ``` ### 项目结构 zhou.cfg > 文法相关如解释文法、计算first、follow集合等 zhou.lex > 词法分析相关 zhou.parser > 语法分析,同时进行语法制导翻译,按照老师要求,采用递归下降分析方法,Descent.java为分析器。 zhou.view > UI组件 ### 实现功能 类型检测、重复定义或未定义、方法调用等 ### 输入输出 输入:c语言测试代码 、文法 输出:词法分析结果、文法推导过程、中间代码或上述遇到的错误。

资源文件列表:

c---parser.zip 大约有72个文件
  1. c---parser-main/
  2. c---parser-main/README.md 2.97KB
  3. c---parser-main/source_code/
  4. c---parser-main/source_code/.idea/
  5. c---parser-main/source_code/.idea/misc.xml 278B
  6. c---parser-main/source_code/.idea/modules.xml 255B
  7. c---parser-main/source_code/.idea/uiDesigner.xml 8.71KB
  8. c---parser-main/source_code/.idea/workspace.xml 17.63KB
  9. c---parser-main/source_code/SDT.txt 2.34KB
  10. c---parser-main/source_code/cfg.txt 1.76KB
  11. c---parser-main/source_code/cmpr.iml 433B
  12. c---parser-main/source_code/out/
  13. c---parser-main/source_code/out/production/
  14. c---parser-main/source_code/out/production/cmpr/
  15. c---parser-main/source_code/out/production/cmpr/META-INF/
  16. c---parser-main/source_code/out/production/cmpr/META-INF/cmpr.kotlin_module 16B
  17. c---parser-main/source_code/out/production/cmpr/zhou/
  18. c---parser-main/source_code/out/production/cmpr/zhou/AppMain$OnStart.class 4.11KB
  19. c---parser-main/source_code/out/production/cmpr/zhou/AppMain.class 4.81KB
  20. c---parser-main/source_code/out/production/cmpr/zhou/cfg/
  21. c---parser-main/source_code/out/production/cmpr/zhou/cfg/BaseSymbol.class 843B
  22. c---parser-main/source_code/out/production/cmpr/zhou/cfg/LL1Runner.class 10.48KB
  23. c---parser-main/source_code/out/production/cmpr/zhou/cfg/ProductionItem.class 521B
  24. c---parser-main/source_code/out/production/cmpr/zhou/lex/
  25. c---parser-main/source_code/out/production/cmpr/zhou/lex/Lexer.class 10.77KB
  26. c---parser-main/source_code/out/production/cmpr/zhou/lex/Token.class 1.17KB
  27. c---parser-main/source_code/out/production/cmpr/zhou/lex/TokenError.class 738B
  28. c---parser-main/source_code/out/production/cmpr/zhou/parser/
  29. c---parser-main/source_code/out/production/cmpr/zhou/parser/Descent.class 28.06KB
  30. c---parser-main/source_code/out/production/cmpr/zhou/parser/ParseExpression.class 298B
  31. c---parser-main/source_code/out/production/cmpr/zhou/parser/ProcessInfo.class 548B
  32. c---parser-main/source_code/out/production/cmpr/zhou/parser/Symbol.class 384B
  33. c---parser-main/source_code/out/production/cmpr/zhou/parser/SymbolTable.class 845B
  34. c---parser-main/source_code/out/production/cmpr/zhou/view/
  35. c---parser-main/source_code/out/production/cmpr/zhou/view/FrameCode.class 2.18KB
  36. c---parser-main/source_code/out/production/cmpr/zhou/view/FrameError.class 1.49KB
  37. c---parser-main/source_code/out/production/cmpr/zhou/view/FrameLexerResult.class 2.55KB
  38. c---parser-main/source_code/out/production/cmpr/zhou/view/FrameProcessOfDeduce.class 1.52KB
  39. c---parser-main/source_code/out/production/cmpr/zhou/view/FrameSelect.class 2.84KB
  40. c---parser-main/source_code/src/
  41. c---parser-main/source_code/src/zhou/
  42. c---parser-main/source_code/src/zhou/AppMain.java 5.76KB
  43. c---parser-main/source_code/src/zhou/cfg/
  44. c---parser-main/source_code/src/zhou/cfg/BaseSymbol.java 701B
  45. c---parser-main/source_code/src/zhou/cfg/LL1Runner.java 13.47KB
  46. c---parser-main/source_code/src/zhou/cfg/ProductionItem.java 360B
  47. c---parser-main/source_code/src/zhou/lex/
  48. c---parser-main/source_code/src/zhou/lex/Lexer.java 19.05KB
  49. c---parser-main/source_code/src/zhou/lex/Token.java 1.37KB
  50. c---parser-main/source_code/src/zhou/lex/TokenError.java 318B
  51. c---parser-main/source_code/src/zhou/parser/
  52. c---parser-main/source_code/src/zhou/parser/Descent.java 46.99KB
  53. c---parser-main/source_code/src/zhou/parser/ParseExpression.java 99B
  54. c---parser-main/source_code/src/zhou/parser/ProcessInfo.java 477B
  55. c---parser-main/source_code/src/zhou/parser/Symbol.java 299B
  56. c---parser-main/source_code/src/zhou/parser/SymbolTable.java 608B
  57. c---parser-main/source_code/src/zhou/view/
  58. c---parser-main/source_code/src/zhou/view/FrameCode.java 1.07KB
  59. c---parser-main/source_code/src/zhou/view/FrameError.java 980B
  60. c---parser-main/source_code/src/zhou/view/FrameLexerResult.java 1.3KB
  61. c---parser-main/source_code/src/zhou/view/FrameProcessOfDeduce.java 996B
  62. c---parser-main/source_code/src/zhou/view/FrameSelect.java 1.81KB
  63. c---parser-main/source_code/test_code.txt 331B
  64. c---parser-main/~$分析的算法思想设计方案.docx 162B
  65. c---parser-main/中间代码.png 214.28KB
  66. c---parser-main/程序无误运行结果.png 214.28KB
  67. c---parser-main/表达式类型错误测试结果.png 24.36KB
  68. c---parser-main/语法分析的算法思想设计方案.docx 287.8KB
  69. c---parser-main/语法制导翻译方案.txt 2.34KB
  70. c---parser-main/重复定义_未定义测试结果.png 145.12KB
  71. c---parser-main/非法语句测试结果.png 23.96KB
  72. c---parser-main/非法调用函数测试结果.png 34.66KB
0评论
提交 加载更多评论
其他资源 方便好用的x97下载推荐
1
springboot3+java21+druid+springDoc+MybatisPlus(包含生成器)+redis 完整版
集成了springboot3+java21+druid+springDoc+MybatisPlus(包含生成器)+redis+spring data 的基于接口编程的工程框架
北京五环、四环、三环、二环矢量数据
适用于对北京五环进行空间分析的相关研究,可以通过Arcgis pro 、Qgis、SuperMap等打开。
目标检测目标检测目标检测目标检测
目标检测目标检测目标检测目标检测
wu-et-al-2021-non-line-of-sight-imaging-over-1-43-km(!!免费!!)
原文,word翻译,PDF翻译 非视距成像|光学成像|计算成像|交通|1.43km|徐飞虎
行政区划代码名称csv格式
行政区划代码名称csv格式
Java 四则运算计算器
利用JavaSwing实现的简单四则运算计算器
Perl CentOS7 64位操作系统依赖包
1)适用于CentOS 64位操作系统,所有文件均为 64 位操作系统的文件 2)有些人的资源是 64 + 32 混搭着来的,没法安装;