Расщепление и слияние AST, генерируемых ANTLR - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть правила грамматики ANTLR для разбора таких выражений, как:

1+2*3 = 100 или age+2*3 = 100

Мой пользовательский интерфейс табличный, как показано ниже:

age + 2


* 3 = 100


<500 </p>


Суть в том, что полное выражение разбито между заголовком и строкой (например, age + 2* 3 = 100, где age + 2 в заголовке и * 3 = 100 в первой строке).

Я хочу сохранить частичную AST в базе данных, чтобы можно было легко отображать содержимое заголовка и строки в пользовательском интерфейсе.

При таком подходе есть две проблемы:

1) Анализ неполного выражения в заголовках (например, age + 2) -> Одним из решений для этого является введение поддельной переменнойузлы, которые могут завершать выражения (например, age + 2 = var)

2) Как объединить частичные AST в заголовке и ячейке для потребления.Основная проблема здесь заключается в том, что из-за разного приоритета операторов конечный AST может полностью отличаться от оригинальных AST заголовка и ячейки.

...