我看到了这篇关于 Scala 延续的不错的博客文章,它“模拟”了GOTO
Scala 语言中的语句。(在这里阅读更多关于延续的信息)
我想在编程语言 Groovy 中也有同样的效果。我认为在Groovy 编译器阶段转换中是可能的。
我正在研究领域特定语言 (DSL),并且首选嵌入到 Groovy 中。我想要这个GOTO
声明,因为 DSL 是一种非结构化语言(并且是从工作流程图生成的)。我需要一个“标记”的 goto 语句,而不是行号。
DSL 是一种用于工作流定义的语言,因为节点之间的箭头没有限制,所以goto
需要 a。(或不可读的代码while
等)
作为 Groovy 和 Scala 的初学者,我不知道是否可以将 Scala 解决方案翻译成 Groovy,但我认为 Groovy 中还有延续。
我正在寻找一种在 Groovy 中模拟标记 goto 的算法/代码。我想到的一种算法是eval
重复使用;eval
当你在时做goto
。DSL 已被评估eval
。
我不是在寻找“while”循环之类的东西,而是在翻译这段代码以便它工作(其他一些语法没问题)
label1:
a();
b();
goto label1;
PS:如果我真的应该使用/想要 GOTO 语句,我不喜欢讨论。DSL 是一种规范语言,可能无法处理变量、效率等问题。
GOTO
PS2:然后可以使用其他一些关键字。