From 5ab8a5088b729a9953b8dff1b2a985dc8fb2098b Mon Sep 17 00:00:00 2001 From: mzuenni Date: Mon, 27 Jun 2022 17:19:28 +0200 Subject: updated tcr --- other/parser.cpp | 61 -------------------------------------------------------- 1 file changed, 61 deletions(-) delete mode 100644 other/parser.cpp (limited to 'other/parser.cpp') 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); -} -- cgit v1.2.3