使用Javascript编写解析器的教程

exu*_*ero 33 javascript parsing

我见过几种基于Javascript构建的语言(即CoffeeScriptLessCSS).

有没有教程可以用Javascript编写语言/解析器?

Ira*_*ter 13

为什么你认为"在JavaScript上"实现语言的基本概念从根本上依赖于JavaScript?大多数情况下,它只是一种编程语言和标准的类似编译器的方法; 一个"仅仅"编译为JavaScript而不是机器指令.

这是一个使用非常简单的元编译方法编写编译器的教程.碰巧将JavaScript作为起点,但它也没有提交给JavaScript.本教程基于Val Schorre撰写的关于"MetaII"的文章,这是一种1964年的元编译程序(是的,你读的是正确的).我从本文学习了如何构建我的第一个编译器(但不是用JavaScript :),它仍然是一个有价值的技术:

面向JavaScript的Meta II编译器教程

如果你想要更直接的东西,可以考虑手工编写递归下降解析器..在你写完其中的一些之后,你会非常欣赏MetaII的天才.

  • Downvoter:建议性的反馈将是首选,而不是你的"旗帜".我不明白这个响应是什么,并没有直接解决OP对使用JavaScript"构建语言"的方法的要求,因为这正是引用的教程所做的. (4认同)

dan*_*nja 13

Jison以GNU Bison解析器生成器为模型.它采用类似Bison或JSON格式的语言语法,并为该语言输出Javascript解析器.如果你想要建立一个基于另一种着名语言的翻译,可能会有一个Bison语法在你可以为Jison调整的地方.我发现开始使用从头开始的DSL是非常简单的.