#pragma once #include "cps/Lexer.h" #include "cps/AST.h" #include #include namespace cps { class Parser { Lexer &Lex; int CurTok; int getNextToken(); std::unique_ptr ParseExpression(); std::unique_ptr ParseNumberExpr(); std::unique_ptr ParseParenExpr(); // 预留 std::unique_ptr ParseIdentifierExpr(); public: Parser(Lexer &L) : Lex(L) { getNextToken(); } std::vector> Parse(); }; } // namespace cps