20170226C++项目班08_修复bug/函数添加
来源:互联网 发布:资源管理系统源码 编辑:程序博客网 时间:2024/05/17 18:25
修复bug:
1:当输入:1=5的时候应该抛出异常,表明其左值不可赋值,可以在AssignNode的构造函数里面加上判断,左值是否是一个变量,从而解决。
2:Parser里面所有的Node应该判断是否为空指针,否则可能会抛出空指针异常,这时候,测试用例就非常重要了!!
注意:在些项目的时候,需要把测试用例做成多个版本,把他们记录好。在程序测试的时候也可以使用一个专门的类来做程序的测试,使用for循环遍历。
3:抛出异常的时候注意包装,可以把工程常用的几种异常定义出来,需要抛出异常的时候就可以直接抛出,避免直接生成对象以及出现魔数等。
4:表达式未完全解析的情况可以通过最后返回树后,判断扫描器的下一个状态是不是为结束,如果不是,就代表表达式未读取完,应该抛出异常。
函数添加:
1:添加FuncTable类,并传递进SymbolTable的对象,这个类会将一些函数名称添加进这个SymbolTable的对象。
2:调用对应的math库函数:使用结构体将函数名和函数指针连接起来,使用函数指针数组将所有的函数连接起来,从而是ian调用。
3:部分代码:
struct FunctionInfo {FuncPtr pFunc_;char* pFuncName_;};FunctionInfo funcs[] ={log, "log", sin, "sin", cos, "cos", tan, "tan", abs, "abs"};FunctionTable::FunctionTable(SymbolTable &symbolTbl) :size_(sizeof(funcs) / sizeof(FunctionInfo)){pFuncs_ = new FuncPtr[size_];for (size_t i = 0; i < size_; ++i){//我们希望添加的函数名的ID和我们的下标是一样的,只要保证第一次初始化就初始化这个就可以解决了。pFuncs_[i] = funcs[i].pFunc_;if (i != symbolTbl.AddSymbol(funcs[i].pFuncName_))throw MyExcept("初始化失败!");}}
0 0
- 20170226C++项目班08_修复bug/函数添加
- 框架 day49 BOS项目练习3(修复window控件BUG,添加/修改/作废取派员,datagrid使用,分页查询(DetachedCriteria离线),formatter函数)
- BOS项目练习3(修复window控件BUG,添加/修改/作废取派员,datagrid使用,分页查询(DetachedCriteria离线),formatter函数)
- 项目修复bug集锦1
- 练手小项目(5)安全卫士_程序锁bug修复一
- <转>Alibaba-AndFix Bug 热修复 以及添加到自己项目中
- [BUG修复]“"_OBJC_CLASS_$_***文件名", referenced from:”问题的修复
- 修复RHEL5添加/删除软件包管理BUG
- 修复添加system/app应用crash bug
- 如何维护大项目-修复bug
- 项目:文件压缩与解压(修复bug)
- 高效修复ip2long函数的BUG
- 修复Objective-C异常类Bug
- 修复Objective-C异常类Bug
- JAVA-C-课程设计-20161228-BUG修复
- BUG修复
- Bug 修复
- Bug修复
- hadoop第二坑 fs
- C语言程序现代设计方法---第12章:指针和数组
- 【纯新手】虚拟机安装kali教程
- JS自动识别移动端和PC端,分配二级域名
- nodejs实现表单数据的提交
- 20170226C++项目班08_修复bug/函数添加
- 寻找错误结点练习
- C++实现斐波那契数列 时间复杂度 空间复杂度
- 国码切换流程总结
- linux下线程的两种封装方式
- Android studio使用真机不打印Logcat
- shell 数组详解
- 欢迎使用CSDN-markdown编辑器
- Win7安装Cent OS 虚拟机