【发布时间】:2026-02-02 06:40:01
【问题描述】:
我正在制作解释器,我从 ast 类开始。 该代码在 C++ 中是面向对象的。 每个动作都是一个“语句”,一个块本身就是一个语句,它包含一个语句列表。 块还定义了不同的范围,记录在该范围内分配了哪些变量,并在其末尾删除它们。 执行包含在主块中为它包含的每个语句调用“执行”,其中每个语句可以包含在另一个块中,一个简单的指令或一个函数调用。 有了这个结构,我可以想到如何实现大多数构造,(同时,如果-else)但我不明白我怎么能做一个 goto。尽管事实上 goto 几乎没有被使用,但我需要 goto 作为实现 break 和 continue for 循环的起始基础。
有人有概念上的建议吗? (从概念上讲,不需要实际的代码)。
注意:代码在解析时不是逐行执行,而是先完全解析成一个ast,然后再执行。
【问题讨论】:
-
问题非常广泛,并导致主观意见。缩小到具体问题。
标签: oop abstract-syntax-tree interpreter