本次发布的是文法分析器和改进的词法分析器。你可以点击这里下载。
版本描述
1. 文法分析器是第一次发布,属于alpha版本,还需要大家帮忙测试一下
2. 词法分析器是第二次发布,该版本对字母字符串进行了限制,仅允许本计算器使用的字母串运算符获得识别,它们是cos, sin, tg, ctg, ans, ax, bx, cx, dx, ex, sto, clr, asin, acos, atg, actg, pi, e
3. 该科学计算器属于免费软件,隶属于BluePrint库项目,如果在您项目中使用,请保留原始版权声明。
在上次发布的词法分析器版本中你会发现这样的问题,cossin会被识别为cossin一个字母串,现在你会发现新版本会把它识别为cos和sin
测试和使用说明
1. 词法分析器项目(phraseAnalyzer)默认被设置为类库,它编译出来的phraseAnalyzer.dll将被文法分析器项目所引用,如果你想单独以应用程序方式编译运行它,但这样运行的话,需要在批处理中关闭文法分析器项目(GrammerAnalyzer)编译选项
2. 词法分析器的使用说明请见 实现篇之词法分析器
3. 文法分析器界面十分简单,你直接按 分析 按钮就可以进行文法分析。
在表达式中,你可以输入任何该计算器可以识别的符号,你可以查看 设计篇之词法分析器模块设计,了解哪些符号可以被识别,以下是一些表达式范例:
(1) (1.0+2/3.5-4)*cos8
(2) ((1.5-sintg5)/ctg6.0-atg6^3)-9
如果表达式正确,则会在结果框中显示“正确”,否则会显示在XX附近存在语法错误(与mssql的文法检查有点类似)
4. 由于代码还在测试阶段,如果大家发现有错误的文法没有报错,或者正确的文法却报错了,可以向我反映。当然,如果大家在算法效率或者检测方法上有更好的建议可以向我提出。
**************************Update on 2005.6.15**********************************
科学计算器完整测试版已经发布,请到http://www.cnblogs.com/tonyqus/archive/2005/05/31/165552.html下载
**************************Update on 2005.2.20**********************************
科学计算器正式版已经发布,请到http://tonyqus.cnblogs.com/archive/2006/01/04/310481.html下载
分享到:
相关推荐
C#写的一个词法分析器(编译原理)的程序
C#科学计算器 通过Web,词法分析,编译原理理论
ll1文法分析器实现c++
1)参照Windows提供的计算器工具,设计一个与之类似的程序;另外可参考运行效果下载(计算器Demo程序); 2)基本要求:实现“普通运算”功能,支持连续运算,如连续输入“2+3×5”后点击“等号”按钮进行运算其...
利用C#实现的词法语法分析器,能解析运算表达式,有极强的参考价值
1.参照Windows系统提供的计算器功能,制作一个自己的计算器,至少能完成数据的加减乘除的基本功能。 2.控件的焦点以及Tab键的设置和使用 3.多个控件(按钮)事件的共享 4.键盘的事件的应用 创建主体框架:主要是对...
完全仿照windows自带计算器,但加入了一些新功能。 经测试,排除了绝大部分bug 科学计算器部分很多没有实现,你可以完善它。
使用递归下降分析算法分析表达式文法: exp ::= exp addop term | term addop ::= + | - term ::= term mulop factor | factor mulop ::= * | / factor ::= (exp) | number 其中number可以是多位的十进制数字串...
词法分析器\LL(1)文法分析器
LL(1)文法分析器演示程序
LALR(1)类文法判定及其分析器构造 课程设计 内容全面,LALR(1)类文法判定及其分析器构造
C#实现的词法分析器,VS2010版本,比较简单,很容易懂
C++轻量级可配置文法分析器 原文地址: http://www.cppblog.com/vczh/archive/2009/04/06/79122.html
LR(0)文法分析器(LR (0) grammar parser)对于实现整个编译器而言,语法分析器是整个过程的核心部分,同时对构造整个编译器起到了关键作用,对程序的进一步扩展,以后有机会涉及对编译器的编写而言,将会是很容易便...
本程序从底层分析,实现了算符优先文法实现词法分析和语法分析
基于算符优先文法的分析程序 用java实现 只有程序 没有文档 程序中有说明
(2)分析表或分析函数,不同的文法分析表将不同,同一个文法采用的LR分析器不同时,分析表将不同,分析表又可以分为动作表(ACTION)和状态转换(GOTO)表两个部分,它们都可用二维数组表示。 (3)分析栈,包括文法...
(Python实现,注释详细)直接输入:3+4*5,一般的计算器会在输入乘号时,先得到7,输入完成后的结果是35。如果希望能够更方便的使用计算器,我们可以进行一些改进。实验中要求计算器: (1)可以输入+ - * / () (2...
编译原理实验,C#实现, 运行正确,基本没有Bug...