У меня есть правила грамматики 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 заголовка и ячейки.