【发布时间】:2011-02-06 05:44:07
【问题描述】:
我已经用 C++ 构建了一个解释器,到目前为止一切正常,但现在我陷入了导入/包含/无论您想如何调用它的函数的设计。
我想到了以下几点:
处理包括在标记化过程中:当在代码中找到
include时,使用指定的文件名递归调用标记化函数。然后将included 文件的标记化代码添加到包含的先前位置。 缺点:没有条件包含(!)在口译过程中处理包括:我不知道如何。我所知道的是 PHP
must这样做是因为条件包含是可能的。
现在我的问题:
- 我应该如何处理包含?
- 现代解释器(Python/Ruby)如何处理这个问题?他们允许有条件的包含吗?
【问题讨论】:
-
“缺点:没有条件包含(!)”我不知道这个条件一定成立。这将取决于您用于解析代码的抽象表示的性质。
标签: c++ language-design interpreter