Arrays ANTLR和阵列

Arrays ANTLR和阵列,arrays,antlr,dsl,Arrays,Antlr,Dsl,我有一个关于用Java+ANTLR组合实现数组的问题。(我主要谈论的是java/c风格的数组) 所以基本上我是在问你们如何实现这样的特性,是否已经有这样的例子,或者是否有人可以告诉我任何可以解决这个问题的方法 另一方面,我搜索了一些可能的解决方案。我看到的主要问题 用户可能会创建各种维度的数组,如果他或她愿意,甚至会发疯(比如创建5维数组或更糟的数组) 这类东西的语法相当简单,比如 new ID (INT (',' INT)* ) 后端确实有点牵扯进来。正如我所说,用户可以输入任意数量的维度,

我有一个关于用Java+ANTLR组合实现数组的问题。(我主要谈论的是java/c风格的数组)

所以基本上我是在问你们如何实现这样的特性,是否已经有这样的例子,或者是否有人可以告诉我任何可以解决这个问题的方法

另一方面,我搜索了一些可能的解决方案。我看到的主要问题 用户可能会创建各种维度的数组,如果他或她愿意,甚至会发疯(比如创建5维数组或更糟的数组)

这类东西的语法相当简单,比如

new ID (INT (',' INT)* )
后端确实有点牵扯进来。正如我所说,用户可以输入任意数量的维度,所以应该动态创建数组维度。(至少在我看来,也许我把事情复杂化了?)

在搜索之后,我确实发现了一些可以很好地解决这个问题的方法,下面是问题的链接:

当然,我的问题是,这是一个可行的例子,它有点(至少可以说)复杂吗?有更优雅的解决方案吗

考虑到这一点,我在想,也许答案可能是以某种方式改变多维度 变成更线性的结构?这样的东西有用吗?对stackoverflow的简单搜索指出了许多解决方案 对此,例如:

朝那个方向搜索是否值得


现在,最后,考虑到数组在许多语言中都很常见,我必须感到惊讶的是,在搜索了ANTLR邮件列表之后,没有出现类似的问题,正如我之前所说的,这让我相信我可能把事情复杂化了?(除非我在搜索方面真的很差劲?)我非常感谢您的反馈。

如果我没弄错的话,您的语法对应于

新煤焦4,5,6,7

这有点奇怪。我想你的意思是

新字符[4,5,6,7]


但是,从纯语法的角度来看,没有理由不将索引存储在数组中,让语义分析通过。是的,是的,我的意思是[4,5,6,7]。如果可能的话,请详细说明最后一句话好吗?好的,用户键入类似数组[][]=new array[5][5]的内容。用户声明二维数组,我想将所有数组成员放入符号表中。两个嵌套的for循环很好地处理了这一问题,我支持二维数组。(解释器中的e.x.method循环遍历我解析并创建变量的索引)但若用户决定声明n维数组,我不能永远嵌套循环,我也可以选择使用变量参数,如示例中的第一个链接,或者其他。若我问如何实现多维数组或者按照这些思路,或者更简单的解释,若有人从java/c中删除了数组,我必须将其放回去,那个么可能会更好,到目前为止,我看到的唯一解决方案是解析索引,并使用类似于第一个链接的代码创建所有成员变量。我想知道是否有更简单的方法在典型的结构语言中包含对数组的支持?