首先,阅读有关解析和构建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