C 解析器导入模块

C++ Parser import module

本文关键字:导入 模块      更新时间:2023-10-16

我正在为我的编程语言编写解释器。我在Java上看到了口译员的良好意识,但每个人都知道Java的工作非常缓慢。因此,我正在开发C ,但是我有一个问题。确切地说:Java具有美丽的Java反射。而且,当解析器看到"导入"语句时,它以"模块"的名称(已经存在于解释器程序中的类(并使用反射为类逐个名称。很容易,但不在C 中。C 没有窍门按名称进行课程。我们可以帮我吗?(

所以这是我到目前为止对您的情况的理解,正如我从疑问和评论中理解的那样:

  1. 您有模块,这些模块被用作Java类,而不是用您自己的语言编写的文件。
  2. 解析导入语句时,您会使用反射在模块软件包中找到具有给定名称的类它代表的模块(
  3. 然后,大概是您通过在实例化对象上调用方法来调用导入模块的功能,再次使用反射。

所以你是对的,你不能在c 中这样做。

您可以做的是将一个从模块名称到模块对象的地图,然后每个模块都应具有其自己功能的映射。