25 explicit Parser(std::vector<Token> tokens);
28 _tokens = std::move(tokens);
44 void printAST(
const std::unique_ptr<ModuleNode> &node,
int indent = 0);
47 const Token &peek()
const;
48 const Token &peekAhead(std::size_t offset)
const;
51 const Token &advance();
84 std::vector<Token> _tokens;
Parser()
Constructs a Parser without tokens.
Definition parser.cpp:13
Result< std::unique_ptr< ModuleNode > > parse()
Parses the tokens into an AST.
Definition parser.cpp:17
void printAST(const std::unique_ptr< ModuleNode > &node, int indent=0)
Prints the AST in a human-readable format.
Definition parser.cpp:36
void setTokens(std::vector< Token > tokens)
Definition parser.h:27
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
@ UNKNOWN
Definition lexer.h:57