Для начала как вооще строятся AST (абстрактное синтаксическое дерево) деревья? Что почитать?
Как создать парсер для языка, например SQL, который генерирует AST дерево и прощает синтаксические ошибки?
Пример: "3+4*5":
+
/ \
3 *
/ \
4 5
Но если пользователь допустил ошибку "3+4*+", парсер пытается все равно понять что имел ввиду пользователь:
+
/ \
3 *
/ \
4 +
/ \
? ?
С чего начать? Спасибо!
SQL:
---SELECT_________________
/ \ \
. FROM JOIN
/ \ | / \
a city_name people address ON
|
=______________
/ \
.____ .
/ \ / \
p address_id a id