js解析器

解释解释,什么是他妈的编译原理

编译原理

黄四郎:三天之后,一定给县长讲明白编译原理
张麻子:汤师爷,你给翻译翻译,什么叫编译原理?翻译翻译,什么叫编译原理?
汤师爷:这还用翻译,都说了。
张麻子:我让你翻译给我听,什么叫编译原理?
汤师爷:不用翻译,这就是编译原理啊。
黄四郎:难道你听不懂什么叫编译原理?
张麻子:我就想让你翻译翻译,什么叫编译原理!
汤师爷:编译原理嘛
张麻子:翻译出来给我听,什么他妈的叫编译原理!什么他妈的叫他妈的编译原理!
汤师爷:什么他妈的叫编译原理啊?(对黄四郎)
黄四郎:编译原理就是三天之后,我写串js脚本,扔进解析器里,词法分析、语法分析再执行,明白了吗?
汤师爷:这就是编译原理啊
张麻子:翻译翻译 翻译翻译!
汤师爷:编译原理就是三天之后,他写串js脚本,扔进解析器里,词法分析、语法分析再执行,!
张麻子:哈,大哥这他妈的编译原理啊,小弟我愿意等你三天
黄四郎:好

词法分析

汤师爷: 词法分析阶段是编译过程的第一个阶段。这个阶段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构词规则识别单词(也称单词符号或符号)。词法分析程序实现这个任务。词法分析程序可以使用lex等工具自动生成。

黄四郎:说人话!

从 Lex 说起

Lex是 LEXical compiler的缩写,是Unix环境下非常著名的工具,主要功能是生成一个词法分析器(scanner)的C源码,描述规则采用正则表达式(regular expression)。

Lex in Javascript

jison(鸡森?) 库

# npm install jison -g
# cd jison/example
# jison calculator.jison

在当前目录生成了 calculator.js 文件,这个文件是根据 calculator.jison 生成的
https://github.com/zaach/jison
看了看jison文件,根本不是人看的,