template-project-cpp
|
The tpcpp parser. More...
#include <parsing/Parser.hpp>
Classes | |
class | ParseException |
Exception thrown when a parsing error occurs. More... | |
Public Member Functions | |
ListOfExprs | parse () |
Parse input tokens into expressions. | |
Private Member Functions | |
Expr | expression () |
Implement expression -> assignment | |
Expr | assignment () |
Implement assignment -> IDENTIFIER "=" assignment | logic_or | |
Expr | logicOr () |
Implemet logic_or -> logic_and ( "|" logic_and )* | |
Expr | logicAnd () |
Implemet logic_and -> equality ( "&" equality )* | |
Expr | equality () |
Implement equality -> comparison ( ( "!=" | "==" ) comparison )* | |
Expr | comparison () |
Implement comparison -> term ( ( ">" | ">=" | "<" | "<=" ) term )* | |
Expr | term () |
Implemet term -> factor ( ( "+" | "-" ) factor )* | |
Expr | factor () |
Implement factor -> exponent ( ( "*" | "/" ) exponent )* | |
Expr | exponent () |
Implemet exponent -> unary ( "^" unary )? | |
Expr | unary () |
Implement unary -> ( "!" | "-" ) unary | call | |
Expr | call () |
Implement call -> primary ( "(" arguments? ")" )* | |
Expr | finishCall (const Expr &callee) |
Implement arguments -> expression ( "," expression )* | |
Expr | primary () |
The tpcpp parser.
This is a recursive-descendent parser.
Here's the grammar:
Definition at line 54 of file Parser.hpp.
|
private |
Implement:
Definition at line 220 of file Parser.cpp.