大模拟挑战
10.2
P3695 CYaRon!语
码量和调试难度不算大,不如我以前做过的一道数据结构题。
不过这道题加深了我对语言的理解。
代码的区域:
1.读入缓存区
2.指令缓存区
3.变量存储区(一个大umap)
4.表达式区
5.指令运行区
首先,我将读入的全部代码存入一个读入缓存区,然后按行进行翻译。
翻译:将给定字符串翻译成指令和表达式,表达式是指令的参数,变量/常量/数组是表达式的一部分。
设计4个针对表达式和变量池的函数
表达式一项的求值:输入:一个字符串(不含运算符) 输出:该项的值
变量的地址:输入:一个字符串(对应变量/数组) 输出 变量的地址
算术表达式求值
逻辑表达式求值
指令分为:
输出
赋值
分支
循环
跳转
循环由分支和跳转实现。