23 std::unique_ptr<AST::Program>
parse();
57 std::unique_ptr<AST::Statement>
statement();
65 std::unique_ptr<AST::BlockStmt>
block();
69 std::unique_ptr<AST::TypeNode>
parseType();
72 std::unique_ptr<AST::Expression>
logicalOr();
74 std::unique_ptr<AST::Expression>
equality();
76 std::unique_ptr<AST::Expression>
term();
77 std::unique_ptr<AST::Expression>
factor();
78 std::unique_ptr<AST::Expression>
unary();
79 std::unique_ptr<AST::Expression>
call();
80 std::unique_ptr<AST::Expression>
finishCall(std::unique_ptr<AST::Expression> callee);
81 std::unique_ptr<AST::Expression>
primary();
84 std::unique_ptr<AST::Expression>
fieldAccess(std::unique_ptr<AST::Expression>
object);
Parser(const std::vector< Token > &tokens)
std::unique_ptr< AST::Statement > returnStatement()
std::unique_ptr< AST::Expression > equality()
std::unique_ptr< AST::Expression > logicalAnd()
std::filesystem::path sourcePath
std::unique_ptr< AST::Expression > unary()
std::unique_ptr< AST::Expression > factor()
std::unique_ptr< AST::Statement > ifStatement()
Token consume(Phasor::TokenType type, std::string message)
std::unique_ptr< AST::StructDecl > structDecl()
std::unique_ptr< AST::Statement > whileStatement()
std::unique_ptr< AST::Statement > expressionStatement()
std::unique_ptr< AST::Expression > fieldAccess(std::unique_ptr< AST::Expression > object)
std::vector< Token > tokens
std::unique_ptr< AST::TypeNode > parseType()
std::unique_ptr< AST::Expression > expression()
std::unique_ptr< AST::Statement > declaration()
std::unique_ptr< AST::Statement > varDeclaration()
std::unique_ptr< AST::Expression > assignment()
std::string currentFunction
std::unique_ptr< AST::Program > parse()
std::unique_ptr< AST::Statement > importStatement()
std::unique_ptr< AST::BlockStmt > block()
std::unique_ptr< AST::Statement > unsafeStatement()
bool check(Phasor::TokenType type)
std::unique_ptr< AST::Statement > functionDeclaration()
std::unique_ptr< AST::Statement > exportStatement()
std::unique_ptr< AST::Statement > switchStatement()
std::unique_ptr< AST::Expression > comparison()
std::unique_ptr< AST::Expression > finishCall(std::unique_ptr< AST::Expression > callee)
std::unique_ptr< AST::Expression > logicalOr()
std::unique_ptr< AST::Statement > forStatement()
std::unique_ptr< AST::StructInstanceExpr > structInstance()
void setSourcePath(const std::filesystem::path &path)
std::optional< Error > getError() const
std::unique_ptr< AST::Statement > printStatement()
std::unique_ptr< AST::Statement > statement()
bool match(Phasor::TokenType type)
std::unique_ptr< AST::Expression > primary()
std::unique_ptr< AST::Expression > term()
std::optional< Error > lastError
Token expect(Phasor::TokenType type, const std::string &message)
std::unique_ptr< AST::Expression > call()
The Phasor Programming Language and Runtime.
TokenType
Token types for the lexer.