Documentation ¶
Index ¶
- type AnnotatedNode
- type AnnotatedNodeFolder
- type AnnotatedNodeVisitor
- type AssignmentNode
- type AssignmentNodeFolder
- type AssignmentNodeVisitor
- type BoolOp
- type BoolOpFolder
- type BoolOpVisitor
- type Comparison
- type ComparisonFolder
- type ComparisonVisitor
- type Constant
- type ConstantFolder
- type ConstantVisitor
- type ContinueNode
- type ContinueNodeVisitor
- type DeclNode
- type DeclNodeFolder
- type DeclNodeVisitor
- type DecoratorNode
- type DecoratorNodeFolder
- type DecoratorNodeVisitor
- type DotNode
- type DotNodeFolder
- type DotNodeVisitor
- type ExtendsNode
- type ExtendsNodeVisitor
- type Folder
- type FunctionCallNode
- type FunctionCallNodeFolder
- type FunctionCallNodeVisitor
- type FunctionDefinitionNode
- type FunctionDefinitionNodeFolder
- type FunctionDefinitionNodeVisitor
- type GenericVisitor
- type HandleCaseNode
- type HandleCaseNodeVisitor
- type IfNode
- type IfNodeFolder
- type IfNodeVisitor
- type ImplementsNode
- type ImplementsNodeFolder
- type ImplementsNodeVisitor
- type ImportNode
- type ImportNodeFolder
- type ImportNodeVisitor
- type IndexNode
- type IndexNodeFolder
- type IndexNodeVisitor
- type InstantiateNode
- type InstantiateNodeFolder
- type InstantiateNodeVisitor
- type InternalNode
- type InternalNodeFolder
- type InternalNodeVisitor
- type MatchNode
- type MatchNodeFolder
- type MatchNodeVisitor
- type MathOpNode
- type MathOpNodeFolder
- type MathOpNodeVisitor
- type MethodDefinition
- type MethodDefinitionFolder
- type MethodDefinitionVisitor
- type Node
- type Package
- type PackageFolder
- type PackageVisitor
- type PipeNode
- type PipeNodeFolder
- type PipeNodeVisitor
- type Program
- type ProgramFolder
- type ProgramVisitor
- type ReturnNode
- type ReturnNodeFolder
- type ReturnNodeVisitor
- type ShapeNode
- type ShapeNodeFolder
- type ShapeNodeVisitor
- type SignalNode
- type SignalNodeVisitor
- type SliceNode
- type SliceNodeFolder
- type SliceNodeVisitor
- type SymbolData
- type TryNode
- type TryNodeVisitor
- type TypeNode
- type TypeNodeFolder
- type TypeNodeVisitor
- type VarName
- type VarNameFolder
- type VarNameVisitor
- type Visitor
- type WhenNode
- type WhenNodeFolder
- type WhenNodeVisitor
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AnnotatedNode ¶
type AnnotatedNode struct { VarName string Location string Types types.TypeNode IsDefine bool Lexeme lexer.Lexeme Node Node }
VisitorMetaData is what the visitor will return to represent the conclusion of it work on a node
func (AnnotatedNode) GetType ¶
func (a AnnotatedNode) GetType() types.TypeNode
type AnnotatedNodeFolder ¶
type AnnotatedNodeFolder interface {
FoldAnnotatedNode(n *AnnotatedNode) (Node, error)
}
type AnnotatedNodeVisitor ¶
type AnnotatedNodeVisitor interface {
VisitAnnotatedNode(n *AnnotatedNode) (Node, error)
}
type AssignmentNode ¶
AssignmentNode is a node that represents an asignment operator
func (*AssignmentNode) Accept ¶
func (a *AssignmentNode) Accept(v Visitor) (Node, error)
Accept visits the node
func (*AssignmentNode) GetType ¶
func (a *AssignmentNode) GetType() types.TypeNode
type AssignmentNodeFolder ¶
type AssignmentNodeFolder interface {
FoldAssignmentNode(n *AssignmentNode) (Node, error)
}
type AssignmentNodeVisitor ¶
type AssignmentNodeVisitor interface {
VisitAssignmentNode(n *AssignmentNode) (Node, error)
}
type BoolOpFolder ¶
type BoolOpVisitor ¶
type Comparison ¶
Comparison represents a comparison operator
func (*Comparison) Accept ¶
func (a *Comparison) Accept(v Visitor) (Node, error)
Accept visits the node
func (*Comparison) GetType ¶
func (a *Comparison) GetType() types.TypeNode
type ComparisonFolder ¶
type ComparisonFolder interface {
FoldComparison(n *Comparison) (Node, error)
}
type ComparisonVisitor ¶
type ComparisonVisitor interface {
VisitComparison(n *Comparison) (Node, error)
}
type ConstantFolder ¶
type ConstantVisitor ¶
type ContinueNode ¶
func (*ContinueNode) GetType ¶
func (c *ContinueNode) GetType() types.TypeNode
type ContinueNodeVisitor ¶
type ContinueNodeVisitor interface {
VisitContinueNode(n *ContinueNode) (Node, error)
}
type DeclNodeFolder ¶
type DeclNodeVisitor ¶
type DecoratorNode ¶
func (*DecoratorNode) GetType ¶
func (d *DecoratorNode) GetType() types.TypeNode
type DecoratorNodeFolder ¶
type DecoratorNodeFolder interface {
FoldDecoratorNode(n *DecoratorNode) (Node, error)
}
type DecoratorNodeVisitor ¶
type DecoratorNodeVisitor interface {
VisitDecoratorNode(n *DecoratorNode) (Node, error)
}
type DotNodeFolder ¶
type DotNodeVisitor ¶
type ExtendsNode ¶
ExtendsNode represents an extension to a node
func (*ExtendsNode) GetType ¶
func (e *ExtendsNode) GetType() types.TypeNode
type ExtendsNodeVisitor ¶
type ExtendsNodeVisitor interface {
VisitExtendsNode(n *ExtendsNode) (Node, error)
}
type Folder ¶
type Folder interface { AnnotatedNodeFolder AssignmentNodeFolder BoolOpFolder ComparisonFolder ConstantFolder DeclNodeFolder DecoratorNodeFolder DotNodeFolder FunctionCallNodeFolder FunctionDefinitionNodeFolder IfNodeFolder ImplementsNodeFolder ImportNodeFolder IndexNodeFolder InstantiateNodeFolder InternalNodeFolder MatchNodeFolder MathOpNodeFolder MethodDefinitionFolder PackageFolder PipeNodeFolder ProgramFolder ReturnNodeFolder ShapeNodeFolder SliceNodeFolder TypeNodeFolder VarNameFolder WhenNodeFolder }
type FunctionCallNode ¶
type FunctionCallNode struct { Arguments []Node Definition Node Type types.TypeNode Lexeme lexer.Lexeme }
FunctionCallNode represents a function call
func (*FunctionCallNode) Accept ¶
func (f *FunctionCallNode) Accept(v Visitor) (Node, error)
Accept visits the node
func (*FunctionCallNode) GetType ¶
func (f *FunctionCallNode) GetType() types.TypeNode
type FunctionCallNodeFolder ¶
type FunctionCallNodeFolder interface {
FoldFunctionCallNode(n *FunctionCallNode) (Node, error)
}
type FunctionCallNodeVisitor ¶
type FunctionCallNodeVisitor interface {
VisitFunctionCallNode(n *FunctionCallNode) (Node, error)
}
type FunctionDefinitionNode ¶
type FunctionDefinitionNode struct { Arguments []*VarName Body Node Returns types.TypeNode Lexeme lexer.Lexeme GenericTypeNames []*VarName }
FunctionDefinitionNode represents a function definition
func (*FunctionDefinitionNode) Accept ¶
func (f *FunctionDefinitionNode) Accept(v Visitor) (Node, error)
Accept visits the node
func (*FunctionDefinitionNode) GetFnType ¶
func (f *FunctionDefinitionNode) GetFnType() (*types.FnType, error)
GetType returns the function type
func (*FunctionDefinitionNode) GetType ¶
func (f *FunctionDefinitionNode) GetType() types.TypeNode
type FunctionDefinitionNodeFolder ¶
type FunctionDefinitionNodeFolder interface {
FoldFunctionDefinitionNode(n *FunctionDefinitionNode) (Node, error)
}
type FunctionDefinitionNodeVisitor ¶
type FunctionDefinitionNodeVisitor interface {
VisitFunctionDefinitionNode(n *FunctionDefinitionNode) (Node, error)
}
type GenericVisitor ¶
type HandleCaseNode ¶
type HandleCaseNode struct { VariableName string Type types.TypeNode Case Node Lexeme lexer.Lexeme }
func (*HandleCaseNode) GetType ¶
func (t *HandleCaseNode) GetType() types.TypeNode
type HandleCaseNodeVisitor ¶
type HandleCaseNodeVisitor interface {
VisitHandleCaseNode(n *HandleCaseNode) (Node, error)
}
type IfNode ¶
type IfNode struct { Condition Node Body Node ElseIfs []*IfNode Else Node ReturnTo string Lexeme lexer.Lexeme }
IfNode represens an if statemet
type IfNodeFolder ¶
type IfNodeVisitor ¶
type ImplementsNode ¶
func (*ImplementsNode) GetType ¶
func (i *ImplementsNode) GetType() types.TypeNode
type ImplementsNodeFolder ¶
type ImplementsNodeFolder interface {
FoldImplementsNode(n *ImplementsNode) (Node, error)
}
type ImplementsNodeVisitor ¶
type ImplementsNodeVisitor interface {
VisitImplementsNode(n *ImplementsNode) (Node, error)
}
type ImportNode ¶
type ImportNode struct { ExportName string `IMPORT @VARNAME` ImportAs string `('as' @VARNAME)?` Source string `'from' @STRINGVAL` Lexeme lexer.Lexeme NextImport *ImportNode }
ImportNode represents an import statement
func (*ImportNode) GetType ¶
func (i *ImportNode) GetType() types.TypeNode
type ImportNodeFolder ¶
type ImportNodeFolder interface {
FoldImportNode(n *ImportNode) (Node, error)
}
type ImportNodeVisitor ¶
type ImportNodeVisitor interface {
VisitImportNode(n *ImportNode) (Node, error)
}
type IndexNodeFolder ¶
type IndexNodeVisitor ¶
type InstantiateNode ¶
type InstantiateNode struct { FunctionCallNode *FunctionCallNode Type types.TypeNode }
func (*InstantiateNode) GetType ¶
func (i *InstantiateNode) GetType() types.TypeNode
type InstantiateNodeFolder ¶
type InstantiateNodeFolder interface {
FoldInstantiateNode(n *InstantiateNode) (Node, error)
}
type InstantiateNodeVisitor ¶
type InstantiateNodeVisitor interface {
VisitInstantiateNode(n *InstantiateNode) (Node, error)
}
type InternalNode ¶
ExportNode represents an export statement
func (*InternalNode) Accept ¶
func (e *InternalNode) Accept(v Visitor) (Node, error)
Accept visits the node
func (*InternalNode) GetType ¶
func (e *InternalNode) GetType() types.TypeNode
type InternalNodeFolder ¶
type InternalNodeFolder interface {
FoldInternalNode(n *InternalNode) (Node, error)
}
type InternalNodeVisitor ¶
type InternalNodeVisitor interface {
VisitInternalNode(n *InternalNode) (Node, error)
}
type MatchNodeFolder ¶
type MatchNodeVisitor ¶
type MathOpNode ¶
MathOpNode is a struct representing a type of Mathematical operation ('+', '-', '/', '*') ! <Leftside> [math operation] <RightSide>
func (*MathOpNode) Accept ¶
func (m *MathOpNode) Accept(v Visitor) (Node, error)
Accept accepts the Visitor
func (*MathOpNode) GetType ¶
func (m *MathOpNode) GetType() types.TypeNode
type MathOpNodeFolder ¶
type MathOpNodeFolder interface {
FoldMathOpNode(n *MathOpNode) (Node, error)
}
type MathOpNodeVisitor ¶
type MathOpNodeVisitor interface {
VisitMathOpNode(n *MathOpNode) (Node, error)
}
type MethodDefinition ¶
type MethodDefinition struct { FuncDef *FunctionDefinitionNode TypeName *VarName MethodName *VarName Lexeme lexer.Lexeme }
MethodDefinition Represents a method definition on a function
func (*MethodDefinition) GetType ¶
func (m *MethodDefinition) GetType() types.TypeNode
type MethodDefinitionFolder ¶
type MethodDefinitionFolder interface {
FoldMethodDefinition(n *MethodDefinition) (Node, error)
}
type MethodDefinitionVisitor ¶
type MethodDefinitionVisitor interface {
VisitMethodDefinition(n *MethodDefinition) (Node, error)
}
type Node ¶
type Node interface { // Accept allows a visitor to traverse the tree Accept(Visitor) (Node, error) GetType() types.TypeNode }
Node represents a Node in the AST
type PackageFolder ¶
type PackageVisitor ¶
type PipeNode ¶
PipeNode reperesent a node that is a pipe operator
type PipeNodeFolder ¶
type PipeNodeVisitor ¶
type Program ¶
type Program struct { Imports []*ImportNode `@@*` Nodes []Node Lexeme lexer.Lexeme }
Program is the Root node in a file
type ProgramFolder ¶
type ProgramVisitor ¶
type ReturnNode ¶
ReturnNode Represents a return statement
func (*ReturnNode) Accept ¶
func (r *ReturnNode) Accept(v Visitor) (Node, error)
Accept allows the vistor to visit
func (*ReturnNode) GetType ¶
func (r *ReturnNode) GetType() types.TypeNode
type ReturnNodeFolder ¶
type ReturnNodeFolder interface {
FoldReturnNode(n *ReturnNode) (Node, error)
}
type ReturnNodeVisitor ¶
type ReturnNodeVisitor interface {
VisitReturnNode(n *ReturnNode) (Node, error)
}
type ShapeNodeFolder ¶
type ShapeNodeVisitor ¶
type SignalNode ¶
func (*SignalNode) GetType ¶
func (s *SignalNode) GetType() types.TypeNode
type SignalNodeVisitor ¶
type SignalNodeVisitor interface {
VisitSignalNode(n *SignalNode) (Node, error)
}
type SliceNode ¶
SliceNode Represnets the slice node
type SliceNodeFolder ¶
type SliceNodeVisitor ¶
type SymbolData ¶
SymbolData is some data for the symbol in our symbol table
type TryNodeVisitor ¶
type TypeNode ¶
type TypeNode struct { Types types.TypeNode Lexeme lexer.Lexeme VarName *VarName Extends bool GenericTypes []*VarName }
TypeNode represents a type node
type TypeNodeFolder ¶
type TypeNodeVisitor ¶
type VarNameFolder ¶
type VarNameVisitor ¶
type Visitor ¶
type Visitor interface { AnnotatedNodeVisitor AssignmentNodeVisitor BoolOpVisitor ComparisonVisitor ConstantVisitor ContinueNodeVisitor DeclNodeVisitor DecoratorNodeVisitor DotNodeVisitor ExtendsNodeVisitor FunctionCallNodeVisitor FunctionDefinitionNodeVisitor HandleCaseNodeVisitor IfNodeVisitor ImplementsNodeVisitor ImportNodeVisitor IndexNodeVisitor InstantiateNodeVisitor InternalNodeVisitor MatchNodeVisitor MathOpNodeVisitor MethodDefinitionVisitor PackageVisitor PipeNodeVisitor ProgramVisitor ReturnNodeVisitor ShapeNodeVisitor SignalNodeVisitor SliceNodeVisitor TryNodeVisitor TypeNodeVisitor VarNameVisitor WhenNodeVisitor GenericVisitor }
type WhenNodeFolder ¶
type WhenNodeVisitor ¶
Source Files ¶
- Constant.go
- ContinueNode.go
- DecoratorNode.go
- ImplementsNode.go
- InstantiationNode.go
- MatchNode.go
- MathOp.go
- ShapeNode.go
- Statements.go
- Varname.go
- assignment.go
- ast_folders.go
- ast_visitors.go
- base.go
- binOp.go
- comparison.go
- dot.go
- export.go
- extendsNode.go
- function.go
- if.go
- import.go
- index.go
- methodDefinition.go
- package.go
- pipe.go
- return.go
- signalNode.go
- slice.go
- tryNode.go
- type.go