int main() { Evaluator eval; string input; cout<<"'exit' to quit"<<endl<<endl; while (true) { cout<<"Enter expression: "; std::getline(cin, input, '\n'); if (input == "exit") break; try { Object obj = eval.evaluate(input); cout<<obj.symbol()<<" = "<<obj.value().value()<<endl; } catch (Error error) { cout<<error.message<<endl; } } return 0; }
static void construct(Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2) { DATA_PTR(self.value()) = new T(arg0, arg1, arg2); }
static void construct(Object self, Arg0_T arg0) { DATA_PTR(self.value()) = new T(arg0); }
static void construct(Object self) { DATA_PTR(self.value()) = new T(self); }
static void construct(Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4, Arg5_T arg5, Arg6_T arg6, Arg7_T arg7, Arg8_T arg8, Arg9_T arg9, Arg10_T arg10, Arg11_T arg11, Arg12_T arg12, Arg13_T arg13) { DATA_PTR(self.value()) = new T(self, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13); }
static void construct(Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4, Arg5_T arg5, Arg6_T arg6, Arg7_T arg7) { DATA_PTR(self.value()) = new T(self, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); }
static void construct(Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4) { DATA_PTR(self.value()) = new T(self, arg0, arg1, arg2, arg3, arg4); }
static void construct(Object self, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4, Arg5_T arg5) { DATA_PTR(self.value()) = new T(arg1, arg2, arg3, arg4, arg5); }
static void construct(Object self, Arg1_T arg1) { DATA_PTR(self.value()) = new T(self, arg1); }
static void construct(Object self, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4, Arg5_T arg5, Arg6_T arg6, Arg7_T arg7, Arg8_T arg8, Arg9_T arg9) { DATA_PTR(self.value()) = new T(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); }