Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Accessor ¶ added in v0.0.8
type Accessor interface{}
Accessor is one step in an L-value chain: either [expr] or .field
type ExpressionStmt ¶
type ExpressionStmt struct {
Stmt
Expression expressions.Expr
}
func (ExpressionStmt) Accept ¶
func (e ExpressionStmt) Accept(visitor StmtVisitor) string
func (ExpressionStmt) StmtType ¶ added in v0.0.8
func (e ExpressionStmt) StmtType() StmtType
type FieldAccessor ¶ added in v0.0.8
FieldAccessor holds a parsed field name (foo.bar).
type FunctionDeclarationStmt ¶
type FunctionDeclarationStmt struct {
Stmt
Name tokens.Token
Parameters []interfaces.FuncArg
ReturnType interfaces.ValueType
Body BlockStmt
}
func (FunctionDeclarationStmt) Accept ¶
func (f FunctionDeclarationStmt) Accept(visitor StmtVisitor) string
func (FunctionDeclarationStmt) HasArg ¶
func (f FunctionDeclarationStmt) HasArg(arg string) bool
func (FunctionDeclarationStmt) StmtType ¶ added in v0.0.8
func (f FunctionDeclarationStmt) StmtType() StmtType
type IfStmt ¶
type IfStmt struct {
Stmt
Condition expressions.Expr
ThenBranch BlockStmt
ElseBranch BlockStmt
}
func (IfStmt) Accept ¶
func (i IfStmt) Accept(visitor StmtVisitor) string
type IndexAccessor ¶ added in v0.0.8
type IndexAccessor struct {
Index expressions.Expr
}
IndexAccessor holds a parsed index expression (foo[expr]).
type ReturnStmt ¶
type ReturnStmt struct {
Stmt
Expression expressions.Expr
}
func (ReturnStmt) Accept ¶
func (s ReturnStmt) Accept(v StmtVisitor) string
func (ReturnStmt) StmtType ¶ added in v0.0.8
func (s ReturnStmt) StmtType() StmtType
type Stmt ¶
type Stmt interface {
Accept(StmtVisitor) string
StmtType() StmtType
}
type StmtType ¶
type StmtType string
const ( ExpressionStmtType StmtType = "Expression" VariableDeclarationStmtType StmtType = "VariableDeclaration" FunctionDeclarationStmtType StmtType = "FunctionDeclaration" StructDeclarationStmtType StmtType = "StructDeclaration" VariableAssignmentStmtType StmtType = "VariableAssignment" BlockStmtType StmtType = "Block" WhileStmtType StmtType = "While" IfStmtType StmtType = "If" ReturnStmtType StmtType = "Return" )
type StmtVisitor ¶
type StmtVisitor interface {
VisitExpression(ExpressionStmt) string
VisitVariableDeclaration(VariableDeclarationStmt) string
VisitFunctionDeclaration(FunctionDeclarationStmt) string
VisitVariableAssignment(VariableAssignmentStmt) string
VisitStructDeclaration(StructDeclarationStmt) string
VisitBlock(BlockStmt) string
VisitWhile(WhileStmt) string
VisitIf(IfStmt) string
VisitReturn(ReturnStmt) string
}
type StructDeclarationStmt ¶ added in v0.0.8
type StructDeclarationStmt struct {
Stmt
Name tokens.Token
Fields []interfaces.StructField
}
func (StructDeclarationStmt) Accept ¶ added in v0.0.8
func (s StructDeclarationStmt) Accept(visitor StmtVisitor) string
func (StructDeclarationStmt) StmtType ¶ added in v0.0.8
func (s StructDeclarationStmt) StmtType() StmtType
type VarDef ¶
type VarDef struct {
Name string
Type interfaces.ValueType
}
type VariableAssignmentStmt ¶
type VariableAssignmentStmt struct {
Stmt
Name tokens.Token
Accessors []Accessor
Value expressions.Expr
}
func (VariableAssignmentStmt) Accept ¶
func (v VariableAssignmentStmt) Accept(visitor StmtVisitor) string
func (VariableAssignmentStmt) StmtType ¶ added in v0.0.8
func (v VariableAssignmentStmt) StmtType() StmtType
type VariableDeclarationStmt ¶
type VariableDeclarationStmt struct {
Stmt
Name tokens.Token
Type interfaces.ValueType
Initializer expressions.Expr
}
func (VariableDeclarationStmt) Accept ¶
func (v VariableDeclarationStmt) Accept(visitor StmtVisitor) string
func (VariableDeclarationStmt) StmtType ¶ added in v0.0.8
func (v VariableDeclarationStmt) StmtType() StmtType
Click to show internal directories.
Click to hide internal directories.