diff options
| author | mzuenni <michi.zuendorf@gmail.com> | 2022-06-27 17:19:28 +0200 |
|---|---|---|
| committer | mzuenni <michi.zuendorf@gmail.com> | 2022-06-27 17:19:28 +0200 |
| commit | 5ab8a5088b729a9953b8dff1b2a985dc8fb2098b (patch) | |
| tree | ed40d6936c0e9eee40ba62751cbf99ecddbaddc2 /other/parser.cpp | |
| parent | adabbad9c51cf7cd3874bfde8eac1fbcf84fec10 (diff) | |
updated tcr
Diffstat (limited to 'other/parser.cpp')
| -rw-r--r-- | other/parser.cpp | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/other/parser.cpp b/other/parser.cpp deleted file mode 100644 index 94b7829..0000000 --- a/other/parser.cpp +++ /dev/null @@ -1,61 +0,0 @@ -struct Token { // In globalem Vektor, Zugriff über globale Variable. - int type; // Definiere Konstanten. - double value; - Token(int type) : type(type) {} - Token(int type, int value) : type(type), value(value) {} -}; - -struct Expression { // Die folgenden Klassen nur für den AST. - virtual ~Expression() {}; - virtual double getValue() = 0; -}; - -struct Atom : public Expression { - double value; - Atom(int value) : value(value) {}; - double getValue() { return value; } -}; - -struct BinaryExpression : public Expression { - Expression *lhs, *rhs; - BinaryExpression(Expression *lhs, Expression *rhs) : lhs(lhs), rhs(rhs) {} - ~BinaryExpression() { delete lhs; delete rhs; } -}; - -struct Addition : public BinaryExpression { - Addition(Expression *lhs, Expression *rhs) : BinaryExpression(lhs, rhs) {} - double getValue() { return lhs->getValue() + rhs->getValue(); } -}; - -Expression* parseF() { - Expression *lhs; - switch(tokens[token].type) { - case NUMBER: return new Atom(tokens[token++].value); - case LEFT_PAR: - token++; - lhs = parseA(); - token++; - return lhs; - default: - return NULL; -}} - -Expression* parseA_(Expression *lhs) { - Expression *plus, *minus; - if (token >= (int)tokens.size()) return lhs; - switch(tokens[token].type) { - case ADDITION: - token++; - plus = new Addition(lhs, parseS()); - return parseA_(plus); - case SUBTRACTION: - token++; - minus = new Subtraction(lhs, parseS()); - return parseA_(minus); - default: - return lhs; -}} - -Expression* parseA() { - Expression *lhs = parseS(); return parseA_(lhs); -} |
