From 8fdba80d0039d5182c78bebafb90c76c71a5ad34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Grodzi=C5=84ski?= Date: Thu, 3 Jul 2025 18:24:54 +0900 Subject: [PATCH] Removed statement invalid --- src/Parser/Parser.cpp | 12 ++++-------- src/Parser/Parser.h | 1 - src/Parser/Statement/Statement.cpp | 4 ---- src/Parser/Statement/Statement.h | 4 +--- src/Parser/Statement/StatementInvalid.cpp | 10 ---------- src/Parser/Statement/StatementInvalid.h | 13 ------------- 6 files changed, 5 insertions(+), 39 deletions(-) delete mode 100644 src/Parser/Statement/StatementInvalid.cpp delete mode 100644 src/Parser/Statement/StatementInvalid.h diff --git a/src/Parser/Parser.cpp b/src/Parser/Parser.cpp index 83ab7b3..5f406b2 100644 --- a/src/Parser/Parser.cpp +++ b/src/Parser/Parser.cpp @@ -20,7 +20,6 @@ #include "Parser/Statement/StatementMetaExternFunction.h" #include "Parser/Statement/StatementBlock.h" #include "Parser/Statement/StatementRepeat.h" -#include "Parser/Statement/StatementInvalid.h" Parser::Parser(vector> tokens): tokens(tokens) { } @@ -246,7 +245,6 @@ shared_ptr Parser::matchStatementFunction() { markError(TokenKind::SEMICOLON, {}); return nullptr; } - //return matchStatementInvalid("Expected a \";\" after a function declaration"); return make_shared(name, arguments, returnType, dynamic_pointer_cast(statementBlock)); } @@ -311,8 +309,6 @@ shared_ptr Parser::matchStatementRepeat() { // initial initStatement = matchStatementVariable() ?: matchStatementAssignment(); - if (initStatement != nullptr && !initStatement->isValid()) - initStatement = nullptr; if (!tryMatchingTokenKinds({TokenKind::COLON}, false, true)) { // got initial, expect comma @@ -369,8 +365,6 @@ shared_ptr Parser::matchStatementExpression() { if (expression == nullptr) return nullptr; - else if (!expression->isValid()) - return make_shared(tokens.at(currentIndex), "");// expression->toString(0)); return make_shared(expression); } @@ -601,8 +595,10 @@ shared_ptr Parser::matchExpressionBlock(vector terminalTo while (!tryMatchingTokenKinds(terminalTokenKinds, false, false)) { shared_ptr statement = nextInBlockStatement(); - if (statement == nullptr || !statement->isValid()) - return matchExpressionInvalid("Expected statement"); + if (statement == nullptr) { + markError({}, "Expected statement"); + return nullptr; + } statements.push_back(statement); if (tryMatchingTokenKinds(terminalTokenKinds, false, false)) diff --git a/src/Parser/Parser.h b/src/Parser/Parser.h index cd14e44..21234b2 100644 --- a/src/Parser/Parser.h +++ b/src/Parser/Parser.h @@ -12,7 +12,6 @@ class Expression; class ExpressionInvalid; class Statement; -class StatementInvalid; using namespace std; diff --git a/src/Parser/Statement/Statement.cpp b/src/Parser/Statement/Statement.cpp index b26aeef..eb807db 100644 --- a/src/Parser/Statement/Statement.cpp +++ b/src/Parser/Statement/Statement.cpp @@ -6,7 +6,3 @@ kind(kind) { } StatementKind Statement::getKind() { return kind; } - -bool Statement::isValid() { - return kind != StatementKind::INVALID; -} diff --git a/src/Parser/Statement/Statement.h b/src/Parser/Statement/Statement.h index ccdcfdd..f1e9b29 100644 --- a/src/Parser/Statement/Statement.h +++ b/src/Parser/Statement/Statement.h @@ -15,8 +15,7 @@ enum class StatementKind { VARIABLE, ASSIGNMENT, REPEAT, - META_EXTERN_FUNCTION, - INVALID + META_EXTERN_FUNCTION }; class Statement { @@ -27,7 +26,6 @@ public: Statement(StatementKind kind); virtual ~Statement() { } StatementKind getKind(); - bool isValid(); }; #endif \ No newline at end of file diff --git a/src/Parser/Statement/StatementInvalid.cpp b/src/Parser/Statement/StatementInvalid.cpp deleted file mode 100644 index f0d8781..0000000 --- a/src/Parser/Statement/StatementInvalid.cpp +++ /dev/null @@ -1,10 +0,0 @@ -#include "Parser/Statement/StatementInvalid.h" - -#include "Lexer/Token.h" - -StatementInvalid::StatementInvalid(shared_ptr token, string message): -Statement(StatementKind::INVALID), token(token), message(message) { } - -string StatementInvalid::getMessage() { - return message; -} \ No newline at end of file diff --git a/src/Parser/Statement/StatementInvalid.h b/src/Parser/Statement/StatementInvalid.h deleted file mode 100644 index 6c39eb7..0000000 --- a/src/Parser/Statement/StatementInvalid.h +++ /dev/null @@ -1,13 +0,0 @@ -#include "Parser/Statement/Statement.h" - -class Token; - -class StatementInvalid: public Statement { -private: - shared_ptr token; - string message; - -public: - StatementInvalid(shared_ptr token, string message); - string getMessage(); -};