Skip to content

Meha555/CalculatorOfCompiling

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

基于编译原理递归下降的公式计算器

基于C++17的公式计算器,采用递归下降法识别公式。

(1)设计及实现计算表达式的公式计算器,表达式中包含+、-、×、/、(、)、%运算符, sin、cos、tan、pow、sqrt、log、ln 函数。

(2)对于一个给定的表达式,能够检查有无词法错误和语法错误,若有错误能指定出错位置 和错误类型。

(3)给出该表达式的中间表示形式(三地址码),前缀和后缀表达式。

(4)输出运算结果,达到公式计算的目的。

(5)准备多组测试样例,对测试样例进行测试和验证,并对输出结果进行分析。

功能

  1. 计算功能:
  • 具有+、-、*、/、%取模共5种运算符

  • 具有sin、cos、tan、pow(平方)、sqrt、log(以10为底)、ln(以e为底)共7种函数

  1. 错误提示:对词法错误和语法错误给出报错提示,伴有错误信息和提示音。

  2. 分析显示:给出算式的前缀表达式、后缀表达式和三地址码。

  3. 使用体验:

  • 支持读写公式文件,数据持久化
  • 计算器部分和分析展示部件分离,可以自由调整布局。
  • 支持键盘快捷键。

上下文文法表示

注:为了简便起见,0~9的数字统一用num表示,各种函数统一用fun表示

文法G[E]:
E->TE'                    (0)
E'->+TE'|-TE'|ε           (1/2/3)
T->FT'                    (4)
T'->*FT'|/FT'|%FT'|ε      (5/6/7/8)
F->(E)|fun(E)|num|PI|e|ε  (9/10/11/12/13/14)

About

基于编译原理递归下降的公式计算器

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published