随笔分类 -  编译原理

摘要:原文地址:https://blog.fanscore.cn/p/26/ 友情提示:本文排版不太好,但内容简单,请耐心观看,总会搞懂的。 1. 定点数 对于一个无符号二进制小数,例如101.111,如果我们要用2个字节即16位来存储它,我们可以约定用高8位存储小数点前的数字,用低8位存储小数点后的数字 阅读全文
posted @ 2020-12-02 20:16 orlion 阅读(4727) 评论(0) 推荐(3)
摘要:语法的二义性 JavaCC不能分析所有EBNF描述的语法,因为EBNF描述的语法本质上具有二义性的情况。C语言中if语句用JavaCC的EBNF可以是如下描述: 作为符合上述规则的具体代码,可以由如下例子: 根据上面的规则分析下这段代码,直观的看上述代码表述的应该是这样的: 但是依据规则仔细分析下, 阅读全文
posted @ 2017-07-12 22:03 orlion 阅读(1372) 评论(0) 推荐(1)
摘要:基于JavaCC的语法描述 使用JavaCC从token序列中识别出"语句" “表达式” “函数调用” 等语法单位的方法。 只要为JavaCC描述“语句” “表达式” “函数调用” 这样的语法单位各自是由怎样的token序列构成的,就能够对该语法进行分析(parse)。 例如:最简单的赋值表达式可以 阅读全文
posted @ 2017-07-05 21:10 orlion 阅读(5571) 评论(0) 推荐(0)
摘要:欢迎访问我的最新博客:https://blog.fanscore.cn 一、JavaCC JavaCC是java的compiler compiler。JavaCC是LL解析器生成器,可处理的语法范围比较狭窄,但支持无限长的token超前扫描。 安装过程: 我是从github上down下来的zip压缩 阅读全文
posted @ 2017-06-29 22:30 orlion 阅读(15921) 评论(1) 推荐(1)
摘要:crowbar中第一次申请内存是在生成解析器的时候: 首先看一下MEM_Storage类型,声明: 结构图:(cell是union) 再接着看MEM_open_storage(0): MEM_Controller_tag的定义: 其中Header_tag定义: 可以看到在MEM_open_stora 阅读全文
posted @ 2016-05-24 08:43 orlion 阅读(684) 评论(0) 推荐(0)