2.1.1.3.1.3. racketinterpreter.processes.parsing

class Parser(lexer: Lexer)

Bases: object

assignment_statement() → Union[racketinterpreter.classes.ast.IdAssign, racketinterpreter.classes.ast.ProcAssign, racketinterpreter.classes.ast.StructAssign]
assignment_statement: constant_assignment
function_assignment
structure_assignment
check_expect()racketinterpreter.classes.ast.CheckExpect
cond()racketinterpreter.classes.ast.Cond

cond: LPAREN COND (cond-branch|data|ID|cond)* cond-else? RPAREN

cond_branch()racketinterpreter.classes.ast.CondBranch

cond-branch: p-expr

cons()racketinterpreter.classes.ast.Cons

LPAREN CONS expr{0,1} expr* RPAREN

constant_assignment()racketinterpreter.classes.ast.IdAssign

constant_assignment: LPAREN DEFINE expr* RPAREN

data() → Union[racketinterpreter.classes.ast.Bool, racketinterpreter.classes.ast.Dec, racketinterpreter.classes.ast.Int, racketinterpreter.classes.ast.Rat, racketinterpreter.classes.ast.Str, racketinterpreter.classes.ast.Sym]
data: INTEGER
BOOLEAN
STRING
eat(token_type: racketinterpreter.classes.tokens.TokenType)racketinterpreter.classes.tokens.Token

Eat the current token and advance to the next one.

Compare the current token to the passed type. If they match then ‘eat’ the current token and assign the next token to self.current_token, otherwise raise an exception.

error_unexpected_token(token) → None
expr() → Union[racketinterpreter.classes.ast.Bool, racketinterpreter.classes.ast.Cond, racketinterpreter.classes.ast.Cons, racketinterpreter.classes.ast.Dec, racketinterpreter.classes.ast.Empty, racketinterpreter.classes.ast.Int, racketinterpreter.classes.ast.Id, racketinterpreter.classes.ast.ProcCall, racketinterpreter.classes.ast.Rat, racketinterpreter.classes.ast.Str, racketinterpreter.classes.ast.Sym]
expr: data
p-expr
ID
cond
list
list_abrv()racketinterpreter.classes.ast.ProcCall
p_expr()racketinterpreter.classes.ast.ProcCall

p-expr: LPAREN expr* RPAREN

parse()racketinterpreter.classes.ast.Program
procedure_assignment()racketinterpreter.classes.ast.ProcAssign

procedure_assignment: LPAREN DEFINE LPAREN expr* RPAREN expr* RPAREN

program()racketinterpreter.classes.ast.Program
programstatement
statement compound_statement
statement()racketinterpreter.classes.ast.AST
statement: assignment_statement
expr
structure_assignment()racketinterpreter.classes.ast.StructAssign

structure_assignment: LPAREN DEFINE_STRUCT LPAREN expr* RPAREN RPAREN