我目前正在做一个解析器,目的是能够在程序中输入数据。
使用的语法很大程度上受到了C语言的启发。
我很乐意在其中复制一种预处理器内联替换。
例如
#define HELLO ((variable1 + variable2 + variable3))
int variable1 = 37;
int variable2 = 82;
int variable3 = 928;
事情是。。。实际上我使用的是C语言,我还使用了stdio.h中的标准函数来解析我的文件。
所以。。。我可以使用什么技术来正确有效地工作?
标准编译器是否通过重新复制流缓冲区并在重新复制时在那里进行替换来替换文本?有更有效的方法吗?
我想我们说预处理器是因为它首先替换所有内容,直到没有预处理器指令(可能是递归方法?),然后,它开始做真正的编译工作?
原谅我缺乏知识!
谢谢!
最佳答案
不,现代的C编译器并没有将预处理器作为文本处理器来实现,但是它们有不同的编译阶段(预处理是其中之一)。这对于编译器本身的效率和能够将错误跟踪回原始源代码特别重要。
另外,自己实现预处理器也是一项乏味的任务。在你开始这样一个项目之前三思而后行。
关于c - 类似于预处理器的替换器进入解析器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17907251/