必备工具
flex-2.5.4a-1.exe 和 bison-2.4.1-setup.exe 以及 cygwin2.738 的安装文件,下载地址 http://download.csdn.net/detail/fly_yr/8343573
flex与bison安装
运行flex-2.5.4a-1.exe 和 bison-2.4.1-setup.exe 文件安装至D:\Softw...
分类:
其他好文 时间:
2015-01-22 11:15:08
阅读次数:
148
变量和有类型的标记
下一步扩展计算器来处理具有单个字母名字的变量,因为只有26个字母 (目前只关心小写字母),所以我们能在26个条目的数组(称它为vbltable)中存储变量。
为了使得计算器更加有用,也可以扩展它来处理多个表达式(每行一个)和使用浮点值。
具有变量和实值的计算器词法ch3-03.l
%{
#include "ch3-03.tab.h"
#include
exter...
分类:
其他好文 时间:
2015-01-22 11:11:34
阅读次数:
128
Lex规范的结构
lex程序由三部分组成:定义段、规则段和用户子例程序段
...定义段...
%%
...规则段...
%%
...用户子例程序段...
这些部分由以两个百分号组成的行分隔开。尽管某一部分可以为空,但前两部分是必须的,第三部分和前面的%%行可以忽略。
定义段
定义段包括文字块、定义、内部表声明、起始条件和转换。
以空白开头的行被逐字拷贝到C文件中,通常,这用于包...
分类:
其他好文 时间:
2015-01-21 16:38:03
阅读次数:
255
正则表达式语法
lex模式是由编辑程序和实用程序使用的正则表达式的扩展版本。正则表达式由常规字符(代表它们本身)和元字符(在一种模式中具有特殊含义)组成。
元字符
.
. 匹配除了换行符 \n 之外的任意单个字符
[]
[] 匹配括号中字符的任意一个。用“-”(短划线)指示字符的范围,例如[0-9]指10个数字中的任意一个。如果开括号之后的第一个字符是短划线或者闭括号,那么它就不能被解...
分类:
其他好文 时间:
2015-01-21 16:32:38
阅读次数:
124
符号表
列举单词表的方式虽然简单但是不全面,如果在词法分析程序运行时可以构建一个单词表,那么就可以在添加新的单词时不用修改词法分析程序。
下面示例便利用符号表实现,即在词法分析程序运行时从输入文件中读取声明的单词时允许动态的声明单词。声明以词性的名字开始,后面跟着要声明的单词。
添加符号表可以完全的改变词法分析程序,不必在词法分析程为每个要匹配的单词放置独立的模式,只要有一个匹配任意单词的模...
分类:
其他好文 时间:
2015-01-12 17:40:10
阅读次数:
217
本书讲述了一个真实编译器的开发过程,源语言是以C语言为蓝本,进行适当简化定义的一门新语言,称之为SC语言(即简化的C语言),目标语言是大家熟悉的Intel x86机器语言。在本书中,读者将看到从SC语言定义,到SCC编译器开发的完整过程。本书讲的SCC编译器,没有借助Lex与Yacc这些编译器自动生...
分类:
其他好文 时间:
2015-01-11 20:17:58
阅读次数:
402
Abstract
在开发程序的过程中经常会遇到文本解析的问题,例如:解析 C 语言源程序,编写
脚本引擎等等,解决这种文本解析的方法有很多,一种方法就是自己手动用 C 或者 C++直接编写解析程序,这对于简单格式的文本信息来说,不会是什么问题,但是
对于稍微复杂一点的文本信息的解析来说,手工编写解析器将会是一件漫长痛苦 而容易出错的事情。本系列文档就是专门用来由浅入深的介绍两个有名的...
分类:
其他好文 时间:
2015-01-09 10:44:11
阅读次数:
133
基于简单sql语句的sql解析原理及在大数据中的应用
李万鸿
通常sql语法解析都是以lex、yacc进行分析为基础的,是逐个字符进行分析,性能不高,如果基于没有子查询的sql语句进行解析,则速度会提高许多,在此对其原理加以说明。
一般sql语句十分复杂,包含多层嵌套,但其中有规律可循,其特点是所有的语句基本模式是一样的,即:都是SEL...
分类:
数据库 时间:
2014-10-17 22:04:37
阅读次数:
270
Delphi 要学的东西1. RTL,修改RTL,《Delphi源代码分析》2. COM编程3. Python+Delphi4. FreePascal,Lex/Yacc, GNU Pascal,PaxCompiler5. 网络编程6. WebService编程,三层7. GDI以及界面控件开发8. ...
这个版本的语法分析器是由工具 yacc 生成的,其相应的源文件为 lua.stx。这个不是我关注的重点,略过。 这一节这样结束有点儿寒酸,闲话几句。 yacc 的历史就不说了,yacc 类工具出现,使得程序语言分析相关的工作...
分类:
其他好文 时间:
2014-10-10 16:12:25
阅读次数:
159