#ifndef PARSER_H #define PARSER_H #include "lexer/token.h" #include "parser/ast_node.h" #include class Parser { public: explicit Parser(const std::vector& tokens); std::unique_ptr parse(); private: std::vector tokens_; int position_; std::unique_ptr parseStatement(); std::unique_ptr parseExpression(); std::unique_ptr parseAddSub(); std::unique_ptr parseMulDiv(); std::unique_ptr parsePrimary(); std::unique_ptr parseDeclaration(); std::unique_ptr parseAssignment(); Token advance(); Token peek(); bool isAtEnd(); void error(std::string s); }; #endif