summaryrefslogtreecommitdiff
path: root/include/simplifier.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/simplifier.hpp')
-rw-r--r--include/simplifier.hpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/simplifier.hpp b/include/simplifier.hpp
index 948c569..dcc3225 100644
--- a/include/simplifier.hpp
+++ b/include/simplifier.hpp
@@ -1,3 +1,7 @@
+/* PIA - Lenguajes Modernos de Programación
+ * FACULTAD DE CIENCIAS FÍSICO MATEMÁTICAS
+ * Luis Sebastián Martínez Vega - LCC */
+
#ifndef SIMPLIFIER_H
#define SIMPLIFIER_H
#include "expressions.hpp"
@@ -5,12 +9,14 @@
class Simplifier {
private:
void simplifyChildren(Expression *root, Expression *left, Expression *right);
+ Expression *ruleEval(Expression *expr);
Expression *ruleMultiplyByOne(MultiplicationExpression *expr);
Expression *ruleDivideByOne(DivisionExpression *expr);
Expression *ruleMultiplyByZero(MultiplicationExpression *expr);
Expression *ruleZeroDivision(DivisionExpression *expr);
Expression *ruleOnePower(PowerExpression *expr);
Expression *ruleZeroPower(PowerExpression *expr);
+ Expression *addZero(AddExpression *expr);
public:
Expression *visit(Variable *expr);
Expression *visit(Literal *expr);