自己写的版本:问题:1:考虑到由于是嵌套接收,浮点型感觉少麻烦,因为还要判断是否两个小数点等,古没有实现2:对于一些特殊符号,如三元运算符,格式控制符%d等分析不到位3:类别应该分的更细,否则用唯一的symbol(sym)标识的话无法进行后续的语法分析4:没有用文件指针,数据输入要在控制台,不利于交...
分类:
其他好文 时间:
2014-10-09 22:46:21
阅读次数:
285
UglifyJS是一个JavaScript语法分析器/压缩器/美化工具。它可以用来组合和缩小多个JavaScript资源,使它们需要更少的HTTP请求,使你的网站加载速度更快。UglifyCSS是一个CSS压缩器/美化工具,它的作用与UglifyJS类似。windows下的安装方法:1、安装nodejs和npm工具因为nodejs自..
public class SimpleDateFormat extends DateFormatSimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的详细类。 它同意格式化 (date -> text)、语法分析 (text -> date)和标准化。 SimpleDateFor...
分类:
其他好文 时间:
2014-10-05 12:47:38
阅读次数:
208
简单的说,其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程:1.预处理阶段(也就是常说的切token)2.词法与语法分析阶段3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件 (.obj文件)4.连...
分类:
其他好文 时间:
2014-09-29 13:29:30
阅读次数:
236
笔者在该文章中实现了一个类似于Lex & Yacc的编译器前端构造工具,该工具可以构造指定词法文法的编译器前端,并且构造的分析器是线程安全的。...
分类:
其他好文 时间:
2014-09-25 01:15:48
阅读次数:
740
php的语法分析的主要作用是验证词法分析的基础上将token组成的序列,在php这门语言中是否是一个有效的句子,也可以理解为这些token序列是否匹配设计php这门语言时的语法模型,在匹配的情况下构建具体的程序(组建opcode),以供编译后期使用。 比如:在设计php语言时,需要设计一套语法...
分类:
Web程序 时间:
2014-09-24 20:42:17
阅读次数:
397
语法分析器
语法分析器(grammar parser)是编译器的核心部分之一,它的作用是检测词法分析器返回的token序列是否符合文法定义的规则。一个完整的语法分析器除了检测语法正确性外还要包含对出错的处理以及错误恢复等功能。...
分类:
其他好文 时间:
2014-09-24 10:37:26
阅读次数:
283
词法分析器(tokenizer)的作用是按照词法定义规则将输入流分解为token序列,同时记录与每个token匹配的串和出现的位置等信息提供给语法分析器。手工编写一个针对某种语言的词法分析器是比较容易的,事实上很多编译器的词法分析器也是手写的,这种方式的优点是直观容易理解,缺点是开发效率低且易出错。编译技术经过几十年的发展已经形成了一套成熟的理论,应用这些理论可以让我们实现词法分析器的自动构造。在Lex中,每个词法规则由正则表达式定义,我们只需要定义每个token的正则表达式,Lex就可以自动生成对应的分析...
分类:
其他好文 时间:
2014-09-22 10:56:12
阅读次数:
701
在《计算机系统要素》一书的第十一章,我们来到了编译器部分的最后一个章节——代码生成阶段。本章项目主要基于第十章的语法分析进行语义分析,将Jack语言转化为VM语言,完成完整的Jack编译器的构建。...
分类:
其他好文 时间:
2014-09-17 18:48:42
阅读次数:
329
在语法分析 lua_parse 之后,调用 lua_execute 来执行语法分析生成的字节码。 虚拟机的指令是一个枚举型,就是在 opcode.h 中的 OpCode, 通过 lua_execute 中的那个 switch case 来看下指令对应的操作。 > PUSHNI...
分类:
其他好文 时间:
2014-09-14 02:38:16
阅读次数:
250