diff --git a/parser.cpp b/parser.cpp index dc4f98a..937388b 100644 --- a/parser.cpp +++ b/parser.cpp @@ -1 +1,31 @@ #include "global.h" + +// base class +class ExprAST { + public: + virtual ~ExprAST() {} +}; + +// class for double +class DoubleExprAST : public ExprAST { + double Val; + + public: + DoubleExprAST(double Val) : Val(Val) {} +}; + +// class for integer +class IntegerExprAST : public ExprAST { + long Val; + + public: + IntegerExprAST(long Val) : Val(Val) {} +}; + +// class for variable +class VariableExprAST : public ExprAST { + std::string Name; + + public: + VariableExprAST(const std::string &Name) : Name(Name) {} +}; \ No newline at end of file