26 explicit Parser(std::vector<Token> tokens);
29 _tokens = std::move(tokens);
45 void printAST(
const std::unique_ptr<ModuleNode> &node,
int indent = 0);
48 const Token &peek()
const;
49 const Token &peekAhead(std::size_t offset)
const;
52 const Token &advance();
95 std::vector<Token> _tokens;
Parser()
Constructs a Parser without tokens.
Definition parser.cpp:14
Result< std::unique_ptr< ModuleNode > > parse()
Parses the tokens into an AST.
Definition parser.cpp:18
void printAST(const std::unique_ptr< ModuleNode > &node, int indent=0)
Prints the AST in a human-readable format.
Definition parser.cpp:37
void setTokens(std::vector< Token > tokens)
Definition parser.h:28
Lexer for the picceler programming language.
std::expected< T, CompileError > Result
A type alias for the result of a compilation operation.
Definition error.h:59
Represents a token produced by the lexer.
Definition lexer.h:26
Type
The type of the token.
Definition lexer.h:28