C 解析器导入模块
C++ Parser import module
我正在为我的编程语言编写解释器。我在Java上看到了口译员的良好意识,但每个人都知道Java的工作非常缓慢。因此,我正在开发C ,但是我有一个问题。确切地说:Java具有美丽的Java反射。而且,当解析器看到"导入"语句时,它以"模块"的名称(已经存在于解释器程序中的类(并使用反射为类逐个名称。很容易,但不在C 中。C 没有窍门按名称进行课程。我们可以帮我吗?(
所以这是我到目前为止对您的情况的理解,正如我从疑问和评论中理解的那样:
- 您有模块,这些模块被用作Java类,而不是用您自己的语言编写的文件。
- 解析导入语句时,您会使用反射在模块软件包中找到具有给定名称的类它代表的模块(
- 然后,大概是您通过在实例化对象上调用方法来调用导入模块的功能,再次使用反射。
所以你是对的,你不能在c 中这样做。
您可以做的是将一个从模块名称到模块对象的地图,然后每个模块都应具有其自己功能的映射。
相关文章:
- 尝试导入pybind-opencv模块时出现libgtk错误
- 在 python 模块中导入子模块时PyImport_Import失败
- C++20 使用 Visual Studio 编译模块:不编译或导入 ixx 文件
- Python 3.8:运行外部C++代码:无法导入模块
- 从 pybind11 构建导入模块时出现"分段错误(核心转储)"
- 导入模块的标准方法
- 通过 sh 导入模块错误运行.py脚本
- Python 和 C++ (Pybind11):Python 扩展模块导入错误
- 如何在 Ubuntu 上导入使用 pybind11 创建的模块
- 无法导入子模块
- C 解析器导入模块
- Python - 导入 c++ 模块接口 - 无法打开共享对象文件
- 在C++中嵌入Python:在Python脚本中导入模块在一个函数调用过程中有效,但在另一个调用过程中无效
- 如何处理python导入模块中c++断言导致的Celery WorkerLostError
- Boost python/从线程导入模块需要ReleaseLock().为什么
- Boost Python :导入模块时遇到问题
- 带有SWIG的Python C++扩展-通过导入模块调用函数
- 无法使用boost.python导入模块
- 导入C++模块,如果失败:导入 Python 版本
- 取.exe模块的导入表序号并查找导入模块的函数名