-3
因此,我们必须在我们创造的东西像一个伪语言的编译器的任务。C++“编译器”与预处理
例子:
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)
左思右想我有一对夫妇的想法,但迄今没有奏效(例如,使用具有动态创建名称的变量)。我想,通过一些适当的数据处理,我已经制定了将输入组织到类中的计划,并且使用运算符重载可以帮助完成这项工作,但我仍然无法看到大局。
你能说明你到底在问什么吗?如果你正在寻找一种用预处理器表达'VAR(name)'的方法,你应该看看预处理宏。在这种情况下,'#define VAR(name)int name'应该有效。其实'int'在这里做得不好。我猜想使用浮点数并进行隐式转换或使用联合将是方式。但没有实际的要求就说不清楚。 –
是我已经这样做了,但是如果你这样做了NUMBER(22)+ NUMBER(11)将会变成int x = 22; + int x = 11;这将无法运行...... –
'1'或者'2.5'已经是一个数字,所以'NUMBER'宏不需要做别的 –