From 0b87ded993d59450ab70ade6e4ce154da65948a3 Mon Sep 17 00:00:00 2001 From: _ov4 Date: Thu, 22 Oct 2026 03:36:06 +0000 Subject: refactor(parser): remove dead token return, precedence check and includes getNextToken() now returns void since no caller reads its result, and GetTokPrecedence() does a single map lookup without the unreachable non-positive precedence check. Unused , and FunctionAST.h includes are dropped. Co-Authored-By: Claude Opus 5.5 --- include/cps/Parser.h | 3 +-- lib/Parser/Parser.cc | 4 +--- lib/Parser/ParserControlFlow.cc | 2 -- lib/Parser/ParserExpression.cc | 7 ++----- lib/Parser/ParserFile.cc | 1 - lib/Parser/ParserFunction.cc | 1 - lib/Parser/ParserType.cc | 1 - 7 files changed, 4 insertions(+), 15 deletions(-) diff --git a/include/cps/Parser.h b/include/cps/Parser.h index f2c0868..39adfd1 100644 --- a/include/cps/Parser.h +++ b/include/cps/Parser.h @@ -12,7 +12,6 @@ #include #include #include -#include namespace cps { @@ -33,7 +32,7 @@ class Parser { "C_INT", "C_CHAR", "C_STRING", "C_DOUBLE" }; - int getNextToken(); + void getNextToken(); int GetTokPrecedence(); std::unique_ptr ParseExpression(); diff --git a/lib/Parser/Parser.cc b/lib/Parser/Parser.cc index b5c842f..8b1c519 100644 --- a/lib/Parser/Parser.cc +++ b/lib/Parser/Parser.cc @@ -1,7 +1,6 @@ #include "cps/Diagnostics.h" #include "cps/Parser.h" #include "cps/FunctionAST.h" -#include using namespace cps; @@ -29,11 +28,10 @@ Parser::Parser(Lexer &L) : Lex(L) { BinopPrecedence[tok_mod] = 40; } -int Parser::getNextToken() { +void Parser::getNextToken() { int PreviousLine = CurTok == tok_eof ? 0 : Lex.getLine(); CurTok = Lex.gettok(); StartsLine = Lex.getLine() != PreviousLine; - return CurTok; } std::vector> Parser::Parse() { diff --git a/lib/Parser/ParserControlFlow.cc b/lib/Parser/ParserControlFlow.cc index 8cb5c4e..ba038d3 100644 --- a/lib/Parser/ParserControlFlow.cc +++ b/lib/Parser/ParserControlFlow.cc @@ -1,7 +1,5 @@ #include "cps/Diagnostics.h" #include "cps/Parser.h" -#include "cps/FunctionAST.h" -#include using namespace cps; diff --git a/lib/Parser/ParserExpression.cc b/lib/Parser/ParserExpression.cc index 754d1f2..25752b8 100644 --- a/lib/Parser/ParserExpression.cc +++ b/lib/Parser/ParserExpression.cc @@ -1,7 +1,6 @@ #include "cps/Diagnostics.h" #include "cps/Parser.h" #include "cps/FunctionAST.h" -#include #include #include @@ -9,10 +8,8 @@ using namespace cps; int Parser::GetTokPrecedence() { if (atCaseBoundary()) return -1; - if (BinopPrecedence.find(CurTok) == BinopPrecedence.end()) return -1; - int TokPrec = BinopPrecedence[CurTok]; - if (TokPrec <= 0) return -1; - return TokPrec; + auto It = BinopPrecedence.find(CurTok); + return It == BinopPrecedence.end() ? -1 : It->second; } diff --git a/lib/Parser/ParserFile.cc b/lib/Parser/ParserFile.cc index c51c7e7..754a524 100644 --- a/lib/Parser/ParserFile.cc +++ b/lib/Parser/ParserFile.cc @@ -1,7 +1,6 @@ #include "cps/Diagnostics.h" #include "cps/Parser.h" #include "cps/FileAST.h" -#include using namespace cps; diff --git a/lib/Parser/ParserFunction.cc b/lib/Parser/ParserFunction.cc index 823e17f..f5ebee1 100644 --- a/lib/Parser/ParserFunction.cc +++ b/lib/Parser/ParserFunction.cc @@ -2,7 +2,6 @@ #include "cps/Parser.h" #include "cps/FunctionAST.h" #include "cps/Operator.h" -#include using namespace cps; diff --git a/lib/Parser/ParserType.cc b/lib/Parser/ParserType.cc index 22cffeb..ae4621c 100644 --- a/lib/Parser/ParserType.cc +++ b/lib/Parser/ParserType.cc @@ -1,7 +1,6 @@ #include "cps/Diagnostics.h" #include "cps/Parser.h" #include "cps/TypeAST.h" -#include using namespace cps; -- cgit v1.3.1-4-g156e