summaryrefslogtreecommitdiff
path: root/expressions.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'expressions.cpp')
-rw-r--r--expressions.cpp29
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) {}