/* PIA - Lenguajes Modernos de Programación * FACULTAD DE CIENCIAS FÍSICO MATEMÁTICAS * Luis Sebastián Martínez Vega - LCC */ #include #include "include/expressions.hpp" #include "include/lexer.hpp" using std::string; Expression::Expression(Expression *left, Expression *right, token_type type) : left(left), right(right), type(type) {} const Expression *Expression::getLeft() { return left; } const Expression *Expression::getRight() { return right; } string Expression::getRepr() { if(repr.empty()) setRepr(); return repr; } void Expression::setRepr() { repr += '('; if(getLeft() != NULL) repr += left->getRepr(); switch(type) { case sum: repr += '+'; break; case substraction: repr += '-'; break; case multiplication: repr += '*'; break; case division: repr += '/'; break; case power: repr += '^'; break; } if(getRight() != NULL) repr += right->getRepr(); repr += ')'; } void Expression::delTree() { if(getLeft() != NULL) delete left; if(getRight() != NULL) delete right; }