带预处理器C++ "Compiler"

C++ "Compiler" with preprocessor

本文关键字:Compiler C++ 处理器 预处理      更新时间:2023-10-16

因此,我们有一个分配,在其中创建类似伪语言的编译器。

示例:

PROGRAM_BEGIN
...             //code
VAR(name) = NUMBER(2.3)
PROGRAM_END

我们必须使用预处理器处理并将其转换为C 代码。

示例:

#define PROGRAM_BEGIN int main(){
#define PROGRAM_END return 1;}

我遇到的麻烦是我们必须支持:

VAR(name) = NUMBER(1)+NUMBER(2.5)  

经过很多想法,我有了几个想法,但是到目前为止什么都没有起作用(例如,使用具有动态创建名称的变量)。我猜想,通过一些适当的数据处理,我已经制定了计划,将输入组织到课程中,并且使用操作员超负荷可以帮助您完成此工作,但我仍然看不到大局。

尝试这个(cout仅用于调试):

#include <iostream>
using namespace std;
#define PROGRAM_BEGIN   int main(){
#define PROGRAM_END     return 1;}
#define VAR(x)          auto x
#define NUMBER(x)       x
PROGRAM_BEGIN
VAR(name) = NUMBER(1) + NUMBER(2.5);
cout << name << endl;
PROGRAM_END

通过使用auto,您不必担心VARintfloat

相关文章: