Github链接地址:https://github.com/aiyojun/GrammarParser
感兴趣的给个star,支持一下吧~
这个小型开源项目是我自己维护的,里面提供了一些语法解析的解决方案。目前,项目包括:
1. 用于解析SQL-Where子句,基于antlr的java语言工具,提供字符串语句到AST(抽象语法树),AST到字符串,AST到mongodb查询语法之间的转换。
2. 简单的lex&yacc工具的用法介绍,用于解析条件表达式的,和SQL-Where子句类似。
3. 自己实现的typescript版的词法语法解析工具,帮助在前端领域解析各种复杂的句法,语法。提供了一个简单的实例。另外,基于echarts提供了一个能够查看AST抽象语法树结构的可视化页面(比较简陋,凑合看吧~)。
语法解析涉及的知识领域还算比较广的,主要包含编译原理(自动机,lr等),正则表达式,常规算法等。如果你用来解析SQL,还需要对不同领域的SQL,DSL有所了解。
Github项目链接在本文最上面,觉得不错的希望能够给个星支持下~O_O。