# advancedCalculator **Repository Path**: GaussianPrince/advanced-calculator ## Basic Information - **Project Name**: advancedCalculator - **Description**: 使用BNF范式定义支持条件语句、循环语句、函数定义、变量定的高级计算器。前端通过FLEX生成纯C++词法分析器、BISON生成纯C++语法分析器,语法分析的同时生成语法树。使用递归下降遍历语法树,计算节点的综合属性和继承属性。 - **Primary Language**: C++ - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-08-08 - **Last Updated**: 2023-08-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: Bison, flex, BNF, BFS, 语法分析树 ## README # Advanced calculator #### 介绍 - 使用BNF范式定义支持条件语句、循环语句、函数定义、变量定的高级计算器。 - 前端通过FLEX生成纯C++词法分析器、BISON生成纯C++语法分析器 - 语法分析的同时生成语法树。 - 使用递归下降遍历语法树,计算节点的综合属性和继承属性 #### 软件架构 - BISON和FLEX生成纯C++代码 - 交互式编程,以回车结束。 - 变量生命周期为整个程序的声明周期 - 变量默认类型为double,暂时不支持自定义 - 多个语句,依次执行,返回值以最后一个语句为准 - 所有语法节点继承自Ast - 欢迎讨论和交流 #### 安装教程 1. make #### 使用说明 ![使用方法](cal.gif)