- 博客(7)
- 收藏
- 关注
原创 编译器开发(六)看看最终理想的语法树
大家应该注意到之前的代码不完整主要还是判断完指令后没有做处理,那是因为语法树还没定义,这期看看我们准备做个怎样的语法树。首先,目标的语法树是个列表,里面包含了很多项,都是列表。每一项的格式为:[<op>,<参数列表>]很简单吧,比如对于if:[if,<条件表达式,str>,<操作,list>]对于del:[del,<名称,str>]那么还有一个问题就是关于列表的了。处理列表,其实就是链表,链表的新增与删除都很简单,mal
2022-09-11 15:47:49
425
原创 编译器开发(三)语法分析器实现流程
根据前面讲的语法格式,做个语法分析器。首先是看看i开头的语句:if如果该字符为i: 如果下一个为f: 如果跳过空格符后为(: 如果在下面找到)且没出现(: (与)之间是条件 如果跳过空格符为{: 计数=1 字符=false 循环 当计数不为0:
2022-09-07 19:42:19
156
原创 编译器开发(二)关于编码问题
C语言的char型变量只占了1字节,而utf8占了2字节,显然C语言无法直接识别utf8(不要反驳我,我知道宽字符可行,但我不用最新标准),不难发现short型其实是二字节的,那么读取文件时只要写进short数组,识别数字大小就好啦,不过问题是关于字符在文件中的编码是啥呢?我们做个实验,先用文本编辑器输入一个字符,在用2进制编辑器打开看看就知道啦:a-61hz-7ahA-41hZ-5ah以上就是用MT管理器在安卓系统实验的结果,跟多内容需要自己尝试,毕竟各系统还是有区别的。那么,
2022-09-07 19:28:13
213
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅