statements

package
v0.0.0-...-e98e1b7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 9, 2021 License: MIT Imports: 1 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BlockStatement

type BlockStatement struct {
	Statements []Statement
}

func (BlockStatement) Accept

func (s BlockStatement) Accept(visitor StatementVisitor) error

type ClassStatement

type ClassStatement struct {
	Name       expressions.Token
	Methods    []FunctionStatement
	Superclass expressions.Variable
}

func (ClassStatement) Accept

func (c ClassStatement) Accept(visitor StatementVisitor) error

type ExperssionStatement

type ExperssionStatement struct {
	Statement
	Expr expressions.Experssion
}

func (ExperssionStatement) Accept

func (e ExperssionStatement) Accept(visitor StatementVisitor) error

type FunctionStatement

type FunctionStatement struct {
	Name expressions.Token
	Args []expressions.Token
	Body []Statement
}

func (FunctionStatement) Accept

func (f FunctionStatement) Accept(visitor StatementVisitor) error

type IfStatement

type IfStatement struct {
	Condition  expressions.Experssion
	ThenBranch Statement
	ElseBranch Statement
}

func (IfStatement) Accept

func (i IfStatement) Accept(visitor StatementVisitor) error

type PrintStatement

type PrintStatement struct {
	Statement
	Expr expressions.Experssion
}

func (PrintStatement) Accept

func (p PrintStatement) Accept(visitor StatementVisitor) error

type ReturnStatement

type ReturnStatement struct {
	Keyword expressions.Token
	Value   expressions.Experssion
}

It stores the return keyword token for error reporting if needed, and the value being returned

func (ReturnStatement) Accept

func (r ReturnStatement) Accept(visitor StatementVisitor) error

type Statement

type Statement interface {
	Accept(StatementVisitor) error
}

type StatementVisitor

type StatementVisitor interface {
	VisitPrintStmt(PrintStatement) error
	VisitExprStmt(ExperssionStatement) error
	VisitVarDecStmt(VarDecStatement) error
	VisitBlockStmt(BlockStatement) error
	VisitIfStmt(IfStatement) error
	VisitWhileStmt(WhileStatement) error
	VisitFunctionStmt(FunctionStatement) error
	VisitReturnStmt(ReturnStatement) error
	VisitClassStmt(ClassStatement) error
}

type VarDecStatement

type VarDecStatement struct {
	Token       expressions.Token
	Initializer expressions.Experssion
}

func (VarDecStatement) Accept

func (v VarDecStatement) Accept(visitor StatementVisitor) error

type WhileStatement

type WhileStatement struct {
	Condition expressions.Experssion
	Body      Statement
}

func (WhileStatement) Accept

func (w WhileStatement) Accept(visitor StatementVisitor) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL