首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何开发语言语法检查器?

如何开发语言语法检查器?
EN

Stack Overflow用户
提问于 2015-12-13 20:29:19
回答 1查看 98关注 0票数 1

我想为我的网络项目开发一个语法检查工具。目的是分析ECMAScript 6语法。

我知道,有些像BabelJ这样的工具,那里有这样的工具(但在NodeJs环境中开发),但是我想尝试制作这样的工具,因为我获得了新的知识。

我开始读什么呼喊,哪些书和文章?我将强调我想要的,我不需要编译器/解释器,我只想要一个语法检查器。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-13 22:23:17

你需要:

  • 熟悉ECMAScript 6规范;
  • 构建一个lexer
  • 构建解析器

你需要学习经典的词汇和解析,从一个好的理论来源。在这种背景下,您可以考虑为ECMAScript 6构建lexer和解析器,这是基本的语法检查。

请参阅https://en.wikipedia.org/wiki/Parsing,特别是参考资料。理想是Aho/Ullman/Sethi关于编译的书。

不要指望这会很容易(大多数解析器新手都会犯这个错误);解析实际上是一个相当复杂的主题。希望能花费大量的精力来学习如何正确地做到这一点。如果要检查语法和抱怨,您还需要学习如何将语法错误恢复构建到解析器中;这样做的技术没有得到很好的记录/学习。

响亮的提示:如果使用lexer生成器和解析器生成器工具,构建词汇分析器和解析器要容易得多。您仍然需要编译器的基本知识来理解这些操作。

以下是可供选择的lexer (“正则表达式”)和解析器生成器的列表:generators

JavaScript有一些特性(“分号插入”),使得大多数传统方法难以解析。因此,您需要做的是学习理论,以获得正确的基础,然后学习如何弯曲解析器来处理奇怪的情况,如JavaScript。

您还需要特殊的解析器来从构成"web项目“的HTML页面中提取JavaScript。

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

https://stackoverflow.com/questions/34255967

复制
相关文章

相似问题

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