diff options
author | HombreLaser <sebastian-440@live.com> | 2022-04-10 10:21:12 -0500 |
---|---|---|
committer | HombreLaser <sebastian-440@live.com> | 2022-04-10 10:21:12 -0500 |
commit | 531f8f2f1adc1c6777920f0a8c68caaee30b0fc4 (patch) | |
tree | c3d8ac22f3ecc118cd2b5056e7ac556371efaca7 /expressions.cpp | |
parent | ae25e110ca9d65c4e2cfffef21abc16f26ac3739 (diff) |
Corregidos errores de las expresiones.
Diffstat (limited to 'expressions.cpp')
-rw-r--r-- | expressions.cpp | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/expressions.cpp b/expressions.cpp index 722794f..08520f7 100644 --- a/expressions.cpp +++ b/expressions.cpp @@ -1,5 +1,4 @@ #include <cstddef> -#include <math.h> #include <string> #include <cmath> #include "include/lexer.hpp" @@ -7,7 +6,7 @@ using std::string, std::to_string; -// Literal +// Literal o constante. Literal::Literal(int value) : Expression(NULL, NULL, number) { this->value = value; } @@ -18,11 +17,15 @@ void Literal::setRepr() { repr = to_string(value); } -float Literal::eval(int arg) { +int Literal::getValue() { return value; } -// Function. +float Literal::eval(int arg) { + return getValue(); +} + +// Función. Function::Function(Expression *arg, trig_functions name) : Expression(NULL, NULL, function) { this->arg = arg; function_name = name; @@ -32,6 +35,10 @@ Function::~Function() { delTree(); } +const Expression *Function::getArg() { + return arg; +} + trig_functions Function::getFunctionName() { return function_name; } @@ -54,7 +61,7 @@ float Function::eval(int arg) { return std::asin(function_arg); case i_sec: return std::acos(function_arg); - case i_ctg: + default: // Cotangente. return std::atan(function_arg); } } @@ -101,14 +108,14 @@ Variable::Variable(char name) : Expression(NULL, NULL, variable) { Variable::~Variable() {} void Variable::setRepr() { - repr += name; + repr = string{name}; } float Variable::eval(int arg) { return arg; } -// Sum. +// Suma. AddExpression::AddExpression(Expression *left, Expression *right) : Expression(left, right, sum) {} @@ -123,7 +130,7 @@ float AddExpression::eval(int arg) { return right_val + left_val; } -// Substraction. +// Substracción. SubExpression::SubExpression(Expression *left, Expression *right) : Expression(left, right, substraction) {} @@ -138,7 +145,7 @@ float SubExpression::eval(int arg) { return right_val - left_val; } -// Negation. +// Negación. NegationExpression::NegationExpression(Expression *right) : Expression(NULL, right, substraction) {} @@ -172,7 +179,7 @@ float DivisionExpression::eval(int arg) { return left_val / right_val; } -// Multiplication. +// Multiplicación. MultiplicationExpression::MultiplicationExpression(Expression *left, Expression *right) : Expression(left, right, multiplication) {} @@ -188,7 +195,7 @@ float MultiplicationExpression::eval(int arg) { return left_val * right_val; } -// Power. +// Potencia. PowerExpression::PowerExpression(Expression *left, Expression *right) : Expression(left, right, power) {} |