基于文法分析的表达式计算器的实现.docVIP

  • 5
  • 0
  • 约5.39千字
  • 约 9页
  • 2018-02-21 发布于河南
  • 举报

基于文法分析的表达式计算器的实现.doc

基于文法分析的表达式计算器的实现

基于分析的表达式计算器的实现 2008-11-21 11:11:02 阅读(38) 发表评论   这个基于LL分析器的计算器是大三时上编译原理的一个作业。感觉是自己做过相对比较有深度的一个程序。第一次放出来跟大家分享。希望多多指教。   这个计算器支持带括号的四则运算和乘方运算。具体实现过程如下:   词法分析器:   相关正则定义:       DIGIT   [0-9]       NUMBER {DIGIT}((.{DIGIT}+)|{DIGIT}*)       DELIM  [ t\n]//字符类,空格、制表(\t)、换行(\n)       OPERATOR [+|-|*|/|^|(|)|=]   识别数值的DFA的状态转换图:        词法分析器的构造:   因为要识别表达式中的负数(形如1+ -1),这个工作有两个做法,一个是在词法分析的过程中使得词法分析器可以识别负数。一个是词法分析器只识别正数,让语法分析器去识别负数还是减法运算符。前一种方法不是一个标准的词法分析程序可以完成的,因为它要引用上下文。至少向前看一个字符。这就是LL文法或LR(1)文法的范围了。所以使用第二种方案。这也是大多数情况下所采用的方案。   文法分析器:   计算器的功能:计划包括含括号的实数四则运算和乘方运算。同时还可以识别出负号。   初期文法:        将上述文法消除

文档评论(0)

1亿VIP精品文档

相关文档