23 std::unique_ptr<AST::Program>
parse();
31 [[nodiscard]] std::optional<Error>
getError()
const
58 std::unique_ptr<AST::Statement>
statement();
66 std::unique_ptr<AST::BlockStmt>
block();
70 std::unique_ptr<AST::TypeNode>
parseType();
73 std::unique_ptr<AST::Expression>
logicalOr();
75 std::unique_ptr<AST::Expression>
equality();
77 std::unique_ptr<AST::Expression>
term();
78 std::unique_ptr<AST::Expression>
factor();
79 std::unique_ptr<AST::Expression>
unary();
80 std::unique_ptr<AST::Expression>
call();
81 std::unique_ptr<AST::Expression>
finishCall(std::unique_ptr<AST::Expression> callee);
82 std::unique_ptr<AST::Expression>
primary();
85 std::unique_ptr<AST::Expression>
fieldAccess(std::unique_ptr<AST::Expression>
object);
std::unique_ptr< AST::Expression > finishCall(std::unique_ptr< AST::Expression > callee)
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()
std::unique_ptr< AST::StructDecl > structDecl()
std::unique_ptr< AST::Statement > whileStatement()
std::unique_ptr< AST::Statement > expressionStatement()
Token consume(Phasor::TokenType type, const std::string &message)
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 > 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.