diff options
Diffstat (limited to 'c_compiler/include/primitives.hpp')
-rw-r--r-- | c_compiler/include/primitives.hpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/c_compiler/include/primitives.hpp b/c_compiler/include/primitives.hpp new file mode 100644 index 0000000..2eeaa19 --- /dev/null +++ b/c_compiler/include/primitives.hpp @@ -0,0 +1,40 @@ +#ifndef AST_PRIMITIVES_HPP +#define AST_PRIMITIVES_HPP + +#include "ast.hpp" + +#include <string> + +class Variable : public Base { +private: + std::string id; +public: + Variable(const std::string& _id) : id(_id) {} + + virtual void print() const { + std::cout << "<Variable id=\"" << id << "\" />" << std::endl; + } + + virtual void push(const Base* var) const { + std::cerr << "Error: Can't call this function on this class" << std::endl; + (void)var; + } +}; + +class Parameter : public Base { +private: + std::string id; +public: + Parameter(const std::string& _id) : id(_id) {} + + virtual void print() const { + std::cout << "<Parameter id=\"" << id << "\" />" << std::endl; + } + + virtual void push(const Base* var) const { + std::cerr << "Error: Can't call this function on this class" << std::endl; + (void)var; + } +}; + +#endif |