首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Javascript编写的Lexer?

用Javascript编写的Lexer?
EN

Stack Overflow用户
提问于 2009-12-01 10:16:25
回答 9查看 21.8K关注 0票数 31

我有一个项目,在这个项目中,用户需要为完全用javascript编写的ui定义一组指令。我需要有能力解析一串指令,然后将它们转换成指令。有没有100%是javascript的解析库?或者是在javascript中生成的生成器?谢谢!

EN

回答 9

Stack Overflow用户

发布于 2009-12-01 14:29:21

如果您想构建Javascript解析器和代码生成器,请查看JavaScript中的MetaII实现。

MetaII编译器教程将指导您构建一个完全自包含的编译器系统,该系统可以翻译自身和其他语言:

MetaII Compiler Tutorial

这一切都是基于Val Schorre的一篇令人惊叹的10页技术论文: META II: a Syntax-Oriented Compiler Writing Language from honest-to-god 1964。这个MetaII编译器完整的自我描述大约是30行!早在1970年,我就从这里学习了如何构建编译器。当你最终摸索编译器如何重新生成自己时,会有一个令人兴奋的时刻……

本教程解释了MetaII及其工作原理,并实现了将MetaII编译成JavaScript的MetaII。您可以很容易地修改此编译器来解析其他语言,并生成不同的Javascript。

我在大学时代就认识这个网站的作者,但和这个网站没有任何关系。

票数 14
EN

Stack Overflow用户

发布于 2013-04-28 07:27:38

Jison可能是Javascript最好、最活跃的词法分析器和解析器生成器。它模仿Bison和Yacc。

Jison:http://zaach.github.io/jison/

如果你只想要一个轻量级的词法分析器(大约100SLOC),你可以看看Lexed.js:https://github.com/tantaman/lexed.js

票数 8
EN

Stack Overflow用户

发布于 2009-12-01 10:23:01

对于简单的解析任务,我非常喜欢使用Pratt的Top Down Operator Precedence parser的变体。虽然Pratt使用一种古老的Lisp方言撰写原始论文,但相同的概念可以很容易地在几乎任何语言中使用。事实上,Douglas Crockford在Top Down Operator Precedence parsing in JavaScript上写了一篇很好的文章,这可能正是您所需要的。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1823612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档