From f1fedc36ec54578be4983d2fc6abee999dbc51c2 Mon Sep 17 00:00:00 2001 From: ov-4 Date: Thu, 29 Jan 2026 10:41:27 +0000 Subject: Added binary operations +-*/ --- include/cps/Parser.h | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'include/cps/Parser.h') diff --git a/include/cps/Parser.h b/include/cps/Parser.h index c24184f..1b27a22 100644 --- a/include/cps/Parser.h +++ b/include/cps/Parser.h @@ -3,22 +3,29 @@ #include "cps/AST.h" #include #include +#include namespace cps { class Parser { Lexer &Lex; int CurTok; + + std::map BinopPrecedence; int getNextToken(); + int GetTokPrecedence(); + std::unique_ptr ParseExpression(); + std::unique_ptr ParsePrimary(); + std::unique_ptr ParseBinOpRHS(int ExprPrec, std::unique_ptr LHS); + std::unique_ptr ParseNumberExpr(); - std::unique_ptr ParseParenExpr(); // 预留 std::unique_ptr ParseIdentifierExpr(); + std::unique_ptr ParseParenExpr(); public: - Parser(Lexer &L) : Lex(L) { getNextToken(); } - + Parser(Lexer &L); std::vector> Parse(); }; -- cgit v1.3.1-4-g156e