2.1.1.1.1.1. racketinterpreter.classes.ast

class AST(token: tp.Optional[t.Token])

Bases: abc.ABC

An abstract syntax tree.

class ASTVisitor

Bases: abc.ABC

visit(node: racketinterpreter.classes.ast.AST) → Any
visit_error(node) → None
class Bool(token: t.Token)

Bases: racketinterpreter.classes.ast.Expr

A boolean.

class CheckExpect(token: t.Token, exprs: tp.List[Expr])

Bases: racketinterpreter.classes.ast.AST

A test.

The first expression is the actual value and the second expression is the expected value.

class Cond(token: t.Token, exprs: tp.List[Expr])

Bases: racketinterpreter.classes.ast.Expr

A cond statement.

class CondBranch(token: t.Token, exprs: tp.List[Expr])

Bases: racketinterpreter.classes.ast.Expr

A cond branch with a condition.

class CondElse(token: t.Token, expr: Expr)

Bases: racketinterpreter.classes.ast.Expr

The else cond branch.

class Cons(token: t.Token, exprs: tp.List[Expr])

Bases: racketinterpreter.classes.ast.List

A non-empty list.

class Dec(token: t.Token)

Bases: racketinterpreter.classes.ast.Expr

A decimal number.

class Empty(token: t.Token)

Bases: racketinterpreter.classes.ast.List

An empty list.

class Expr(token: t.Token, value: tp.Any = None)

Bases: racketinterpreter.classes.ast.AST

An expression.

property value
class FormalParam(ast: AST, param_for: ParamFor)

Bases: racketinterpreter.classes.ast.AST

A formal parameter in a procedure or structure.

class ParamFor(value)

Bases: enum.Enum

An enumeration.

PROC_ASSIGN = 'PROC_ASSIGN'
STRUCT_ASSIGN = 'STRUCT_ASSIGN'
class Id(token: t.Token)

Bases: racketinterpreter.classes.ast.Expr

An name.

class IdAssign(token: t.Token, exprs: tp.List[Expr])

Bases: racketinterpreter.classes.ast.AST

Defining a constant.

class Int(token: t.Token)

Bases: racketinterpreter.classes.ast.Expr

A number.

class List(token: tp.Optional[t.Token])

Bases: racketinterpreter.classes.ast.AST

A list.

class ProcAssign(token: t.Token, name_expr: Expr, formal_params: tp.List[FormalParam], exprs: tp.List[Expr])

Bases: racketinterpreter.classes.ast.AST

Defining a function.

class ProcCall(token: t.Token, exprs: tp.List[Expr])

Bases: racketinterpreter.classes.ast.Expr

A procedure and a list of arguments.

class Program(statements: List[racketinterpreter.classes.ast.AST])

Bases: racketinterpreter.classes.ast.AST

A list of statements.

class Rat(token: t.Token)

Bases: racketinterpreter.classes.ast.Expr

A rational number.

class Str(token: t.Token)

Bases: racketinterpreter.classes.ast.Expr

A string.

class StructAssign(token: t.Token)

Bases: racketinterpreter.classes.ast.AST

Defining a new structure.

class StructGet(token: t.Token, data_type: d.DataType)

Bases: racketinterpreter.classes.ast.StructProc

A [structure-name]-[field] procedure.

class StructHuh(token: t.Token, data_type: d.DataType)

Bases: racketinterpreter.classes.ast.StructProc

A [structure-name]? procedure.

class StructMake(token: t.Token, data_type: d.DataType)

Bases: racketinterpreter.classes.ast.StructProc

A make-[structure-name] procedure.

class StructProc(token: t.Token, data_type: d.DataType)

Bases: racketinterpreter.classes.ast.Expr

A proc related to a struct.

class Sym(token: t.Token)

Bases: racketinterpreter.classes.ast.Expr

A symbol.