小编Med*_*dev的帖子

如何创建允许语法错误的AST解析器?

首先,阅读有关解析和构建AST的内容?

如何为将构建AST并允许语法错误的语言(如SQL)创建解析器?

例如,对于"3 + 4*5":

  +
 / \
3   *
   / \
  4   5
Run Code Online (Sandbox Code Playgroud)

对于语法错误的"3 + 4*+",解析器会猜测用户的意思是:

  +
 / \
3   *
   / \
  4   +
     / \
    ?   ?
Run Code Online (Sandbox Code Playgroud)

从哪儿开始?

SQL:

    SELECT_________________
   /           \           \
  .           FROM        JOIN
 / \           |         /    \
a city_name  people   address  ON
                                |
                                =______________
                               /               \
                              .____             .
                             /     \           / \
                            p  address_id     a  id
Run Code Online (Sandbox Code Playgroud)

language-agnostic compiler-construction algorithm abstract-syntax-tree

6
推荐指数
1
解决办法
1551
查看次数