10using namespace Phasor;
17 std::unique_ptr<Program>
parse();
46 std::unique_ptr<BlockStmt>
block();
55 std::unique_ptr<Expression>
term();
56 std::unique_ptr<Expression>
factor();
57 std::unique_ptr<Expression>
unary();
58 std::unique_ptr<Expression>
call();
59 std::unique_ptr<Expression>
finishCall(std::unique_ptr<Expression> callee);
std::unique_ptr< AST::Expression > finishCall(std::unique_ptr< AST::Expression > callee)
std::string currentFunction
Parser(const std::vector< Token > &tokens)
std::unique_ptr< Statement > returnStatement()
std::unique_ptr< Expression > equality()
std::unique_ptr< Expression > logicalAnd()
std::unique_ptr< Expression > unary()
std::unique_ptr< Expression > factor()
std::unique_ptr< Statement > ifStatement()
Token consume(Phasor::TokenType type, std::string message)
bool match(Phasor::TokenType type, std::string lexeme)
std::unique_ptr< Statement > whileStatement()
std::unique_ptr< Statement > expressionStatement()
std::unique_ptr< TypeNode > parseType()
std::unique_ptr< Expression > expression()
std::unique_ptr< Statement > declaration()
std::unique_ptr< Statement > varDeclaration()
std::unique_ptr< Expression > assignment()
Token consume(Phasor::TokenType type, std::string lexeme, std::string message)
std::unique_ptr< Program > parse()
std::unique_ptr< BlockStmt > block()
bool check(Phasor::TokenType type)
std::unique_ptr< Statement > functionDeclaration()
std::unique_ptr< Statement > switchStatement()
std::unique_ptr< Expression > comparison()
std::vector< Token > tokens
std::unique_ptr< Expression > logicalOr()
std::unique_ptr< Statement > forStatement()
std::unique_ptr< Statement > printStatement()
std::unique_ptr< Statement > statement()
bool match(Phasor::TokenType type)
std::unique_ptr< Expression > primary()
std::unique_ptr< Expression > term()
Token expect(Phasor::TokenType type, const std::string &message)
std::unique_ptr< Expression > call()
Abstract Syntax Tree (AST) namespace.
TokenType
Token types for the lexer.
The Pulsar Scripting Language.