我目前正在研究Java中的基本解析器,但在涉及循环时遇到了问题。假设我想解析while循环它看起来像:
a = 0
WHILE a < 10
a = a + 1
WEND
此示例包含4个表达式,其中一个表达式只需要解析,其他表达式需要解析10次。第一个是初始a = 0,第二个和第三个在WHILE语句中的条件的每一侧,最后一个在WHILE块内。 当我为此编写解释时,它将表达式类加载到4个不同的变量中作为new,每次运行时重新评估它们。 我的问题是,即使它们最初每次都作为新类加载,但它们之间存在过度流动,所以当我重新解析它们时,它们看起来就像是最后一个: a + 1 关于如何规避这个问题的任何建议?
代码库相当大,所以我不会在这里发布,但可以在http://git.life-hack.org/basic-parser/tree/src/parser找到它 我正在使用的文件是LoopBlock.java