如何将#include 函数实现到自己的编程语言中
How to implement a #include function into own programming language
我在构建自己的编程语言时遇到了一个问题。我发现所有编程语言都有 # include, import, # import
函数。我正在尝试用我自己的编程语言实现相同的功能,但我不确定如何实现。
您能解释一下导入函数的运作方式、编译器如何解释它们,以及我如何用自己的编程语言做同样的事情吗?
在C语言中是预处理器完成的。看看this wikipedia page.
#include
其实很简单,如果你想自己实现的话。
我通常实现它的方式(当不使用“适当的”预处理器时)是将源文件视为 堆栈。
当你遇到 #include
指令时,获取整行,解析它并找出要“包含”的源文件。然后压入栈中。
词法分析器将使用堆栈顶部的文件进行读取。当它到达文件末尾时,词法分析器弹出堆栈并继续从新的顶部读取。
当堆栈为空时,您已完成对原始文件的处理。
我在构建自己的编程语言时遇到了一个问题。我发现所有编程语言都有 # include, import, # import
函数。我正在尝试用我自己的编程语言实现相同的功能,但我不确定如何实现。
您能解释一下导入函数的运作方式、编译器如何解释它们,以及我如何用自己的编程语言做同样的事情吗?
在C语言中是预处理器完成的。看看this wikipedia page.
#include
其实很简单,如果你想自己实现的话。
我通常实现它的方式(当不使用“适当的”预处理器时)是将源文件视为 堆栈。
当你遇到 #include
指令时,获取整行,解析它并找出要“包含”的源文件。然后压入栈中。
词法分析器将使用堆栈顶部的文件进行读取。当它到达文件末尾时,词法分析器弹出堆栈并继续从新的顶部读取。
当堆栈为空时,您已完成对原始文件的处理。