/* PIA - Lenguajes Modernos de Programación * FACULTAD DE CIENCIAS FÍSICO MATEMÁTICAS * Luis Sebastián Martínez Vega - LCC */ #ifndef DIFFERENTIATOR_H #define DIFFERENTIATOR_H #include "expressions.hpp" class Differentiator { private: Expression *differential; Expression *ptr; public: Differentiator(); Expression *visit(Literal *expr) const; Expression *visit(Variable *expr) const; Expression *visit(Function *expr) const; Expression *visit(NegationExpression *expr) const; Expression *visit(AddExpression *expr) const; Expression *visit(SubExpression *expr) const; Expression *visit(DivisionExpression *expr) const; Expression *visit(MultiplicationExpression *expr) const; Expression *visit(PowerExpression *expr) const; }; Expression *deriv(Expression *to_deriv); #endif /* DIFFERENTIATOR_H */