summaryrefslogtreecommitdiff
path: root/include/simplifier.hpp
diff options
context:
space:
mode:
authorHombreLaser <sebastian-440@live.com>2022-04-21 11:05:39 -0500
committerHombreLaser <sebastian-440@live.com>2022-04-21 11:05:39 -0500
commitc88da3e10da5ddac6eca479e3bcac8e3b26d86fa (patch)
treef0b5e451eb0fcab82f23a24963eb64b51692f31e /include/simplifier.hpp
parente72326081fe216b207e8cfa94e8db5c6d6de19dc (diff)
Añadidas reglas de simplificación
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);