拆分和合并由ANTLR

时间:2018-12-06 12:40:26

标签: merge tree antlr abstract-syntax-tree

我有ANTLR语法规则来解析像这样的表达式:

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

我的UI如下表所示:

年龄+2


* 3 = 100


<500


重点是将完整的表达式分为标题和行(例如age + 2 * 3 = 100,其中age + 2在标题中,* 3 = 100在第一行中)。

我想将部分AST保留在数据库中,以便可以轻松地在UI中显示标题和行的内容。

使用这种方法存在两个问题:

1)解析标头中的不完整表达式(例如age + 2)->一种解决方案是引入可以完成表达式的虚假变量节点(例如age + 2 = var)

2)如何合并标头和单元中的部分AST以进行消费。这里的主要问题是,由于运算符的优先级不同,最终的AST可能与标头和单元的原始AST完全不同。

0 个答案:

没有答案