QuicMaf/QuicMaf/maths/terms/Brackets.h

42 lines
671 B
C
Raw Normal View History

2019-02-15 12:57:09 +00:00
#ifndef BRACKET_H
#define BRACKET_H
#pragma once
#include "Term.h"
#include "Variable.h"
#include "../defines.h"
#include "Constant.h"
using namespace std;
class Bracket : public Term {
public:
2019-03-15 04:12:33 +00:00
Bracket() : Term() {
2019-02-15 12:57:09 +00:00
mType = TermTypes::Brack;
2019-03-10 12:43:33 +00:00
}
2019-03-15 04:12:33 +00:00
Bracket(vector<Term*> ts) : Term() {
2019-03-10 12:43:33 +00:00
mType = TermTypes::Brack;
mTerms = ts;
2019-02-15 12:57:09 +00:00
}
vector<Term*> mTerms;
2019-03-17 14:06:34 +00:00
Term *mConstant = nullptr; // Nullptr == 1
2019-02-15 12:57:09 +00:00
2019-03-15 04:12:33 +00:00
string to_str() override {
string str;
if (mConstant != nullptr)
str.append(mConstant->to_str());
2019-03-17 14:06:34 +00:00
str.append("(");
2019-03-15 04:12:33 +00:00
for (int i = 0; i < mTerms.size(); i++)
str.append(mTerms[i]->to_str());
2019-03-17 14:06:34 +00:00
str.append(")");
2019-03-15 04:12:33 +00:00
return str;
}
2019-02-15 12:57:09 +00:00
};
#endif // !BRACKET_H