Documentation
¶
Index ¶
- Constants
- Variables
- func AccessCount() int
- func ConditionKindCount() int
- func LocationsMatch(first, second Location) bool
- type Access
- type AccessExpression
- type AddressLocation
- type Argument
- type Arguments
- type ArrayExpression
- type ArrayExtractor
- type AssignmentStatement
- type BinaryExpression
- type BinaryExtractor
- type Block
- type BoolExpression
- type BoolExtractor
- type BreakStatement
- type CastingExpression
- type CastingExtractor
- type CompositeDeclaration
- type Condition
- type ConditionKind
- type ConditionalExpression
- type ConditionalExtractor
- type Conditions
- type ConstantSizedType
- type ContinueStatement
- type CreateExpression
- type CreateExtractor
- type CyclicImportsError
- type Declaration
- type DestroyExpression
- type DestroyExtractor
- type DictionaryExpression
- type DictionaryExtractor
- type DictionaryType
- type Element
- type EmitStatement
- type Entry
- type Expression
- type ExpressionExtraction
- type ExpressionExtractor
- func (extractor *ExpressionExtractor) Extract(expression Expression) ExpressionExtraction
- func (extractor *ExpressionExtractor) ExtractArray(expression *ArrayExpression) ExpressionExtraction
- func (extractor *ExpressionExtractor) ExtractBinary(expression *BinaryExpression) ExpressionExtraction
- func (extractor *ExpressionExtractor) ExtractBool(expression *BoolExpression) ExpressionExtraction
- func (extractor *ExpressionExtractor) ExtractCast(expression *CastingExpression) ExpressionExtraction
- func (extractor *ExpressionExtractor) ExtractConditional(expression *ConditionalExpression) ExpressionExtraction
- func (extractor *ExpressionExtractor) ExtractCreate(expression *CreateExpression) ExpressionExtraction
- func (extractor *ExpressionExtractor) ExtractDestroy(expression *DestroyExpression) ExpressionExtraction
- func (extractor *ExpressionExtractor) ExtractDictionary(expression *DictionaryExpression) ExpressionExtraction
- func (extractor *ExpressionExtractor) ExtractFixedPoint(expression *FixedPointExpression) ExpressionExtraction
- func (extractor *ExpressionExtractor) ExtractForce(expression *ForceExpression) ExpressionExtraction
- func (extractor *ExpressionExtractor) ExtractFunction(_ *FunctionExpression) ExpressionExtraction
- func (extractor *ExpressionExtractor) ExtractIdentifier(expression *IdentifierExpression) ExpressionExtraction
- func (extractor *ExpressionExtractor) ExtractIndex(expression *IndexExpression) ExpressionExtraction
- func (extractor *ExpressionExtractor) ExtractInteger(expression *IntegerExpression) ExpressionExtraction
- func (extractor *ExpressionExtractor) ExtractInvocation(expression *InvocationExpression) ExpressionExtraction
- func (extractor *ExpressionExtractor) ExtractMember(expression *MemberExpression) ExpressionExtraction
- func (extractor *ExpressionExtractor) ExtractNil(expression *NilExpression) ExpressionExtraction
- func (extractor *ExpressionExtractor) ExtractPath(expression *PathExpression) ExpressionExtraction
- func (extractor *ExpressionExtractor) ExtractReference(expression *ReferenceExpression) ExpressionExtraction
- func (extractor *ExpressionExtractor) ExtractString(expression *StringExpression) ExpressionExtraction
- func (extractor *ExpressionExtractor) ExtractUnary(expression *UnaryExpression) ExpressionExtraction
- func (extractor *ExpressionExtractor) FormatIdentifier(identifier int) string
- func (extractor *ExpressionExtractor) FreshIdentifier() string
- func (extractor *ExpressionExtractor) VisitArrayExpression(expression *ArrayExpression) Repr
- func (extractor *ExpressionExtractor) VisitBinaryExpression(expression *BinaryExpression) Repr
- func (extractor *ExpressionExtractor) VisitBoolExpression(expression *BoolExpression) Repr
- func (extractor *ExpressionExtractor) VisitCastingExpression(expression *CastingExpression) Repr
- func (extractor *ExpressionExtractor) VisitConditionalExpression(expression *ConditionalExpression) Repr
- func (extractor *ExpressionExtractor) VisitCreateExpression(expression *CreateExpression) Repr
- func (extractor *ExpressionExtractor) VisitDestroyExpression(expression *DestroyExpression) Repr
- func (extractor *ExpressionExtractor) VisitDictionaryExpression(expression *DictionaryExpression) Repr
- func (extractor *ExpressionExtractor) VisitExpressions(expressions []Expression) ([]Expression, []ExtractedExpression)
- func (extractor *ExpressionExtractor) VisitFixedPointExpression(expression *FixedPointExpression) Repr
- func (extractor *ExpressionExtractor) VisitForceExpression(expression *ForceExpression) Repr
- func (extractor *ExpressionExtractor) VisitFunctionExpression(expression *FunctionExpression) Repr
- func (extractor *ExpressionExtractor) VisitIdentifierExpression(expression *IdentifierExpression) Repr
- func (extractor *ExpressionExtractor) VisitIndexExpression(expression *IndexExpression) Repr
- func (extractor *ExpressionExtractor) VisitIntegerExpression(expression *IntegerExpression) Repr
- func (extractor *ExpressionExtractor) VisitInvocationExpression(expression *InvocationExpression) Repr
- func (extractor *ExpressionExtractor) VisitMemberExpression(expression *MemberExpression) Repr
- func (extractor *ExpressionExtractor) VisitNilExpression(expression *NilExpression) Repr
- func (extractor *ExpressionExtractor) VisitPathExpression(expression *PathExpression) Repr
- func (extractor *ExpressionExtractor) VisitReferenceExpression(expression *ReferenceExpression) Repr
- func (extractor *ExpressionExtractor) VisitStringExpression(expression *StringExpression) Repr
- func (extractor *ExpressionExtractor) VisitUnaryExpression(expression *UnaryExpression) Repr
- type ExpressionStatement
- type ExpressionVisitor
- type ExtractedExpression
- type FieldDeclaration
- type FixedPointExpression
- type FixedPointExtractor
- type ForStatement
- type ForceExpression
- type ForceExtractor
- type FunctionBlock
- type FunctionDeclaration
- func (f *FunctionDeclaration) Accept(visitor Visitor) Repr
- func (f *FunctionDeclaration) DeclarationAccess() Access
- func (f *FunctionDeclaration) DeclarationIdentifier() *Identifier
- func (f *FunctionDeclaration) DeclarationKind() common.DeclarationKind
- func (f *FunctionDeclaration) EndPosition() Position
- func (f *FunctionDeclaration) StartPosition() Position
- func (f *FunctionDeclaration) ToExpression() *FunctionExpression
- type FunctionExpression
- type FunctionExtractor
- type FunctionType
- type HasImportLocation
- type HasPosition
- type Identifier
- type IdentifierExpression
- type IdentifierExtractor
- type IdentifierLocation
- type IfStatement
- type IfStatementTest
- type ImportDeclaration
- type ImportResolver
- type IndexExpression
- type IndexExtractor
- type InstantiationType
- type IntExtractor
- type IntegerExpression
- type InterfaceDeclaration
- type InvocationExpression
- type InvocationExtractor
- type Location
- type LocationID
- type MemberExpression
- func (e *MemberExpression) Accept(visitor Visitor) Repr
- func (e *MemberExpression) AcceptExp(visitor ExpressionVisitor) Repr
- func (e *MemberExpression) AccessedExpression() Expression
- func (e *MemberExpression) EndPosition() Position
- func (e *MemberExpression) StartPosition() Position
- func (e *MemberExpression) String() string
- type MemberExtractor
- type Members
- func (m *Members) Destructor() *SpecialFunctionDeclaration
- func (m *Members) Destructors() []*SpecialFunctionDeclaration
- func (m *Members) FieldPosition(name string, compositeKind common.CompositeKind) Position
- func (m *Members) FieldsByIdentifier() map[string]*FieldDeclaration
- func (m *Members) FunctionsByIdentifier() map[string]*FunctionDeclaration
- func (m *Members) Initializers() []*SpecialFunctionDeclaration
- type NilExpression
- func (e *NilExpression) Accept(visitor Visitor) Repr
- func (e *NilExpression) AcceptExp(visitor ExpressionVisitor) Repr
- func (e *NilExpression) EndPosition() Position
- func (e *NilExpression) MarshalJSON() ([]byte, error)
- func (e *NilExpression) StartPosition() Position
- func (e *NilExpression) String() string
- type NilExtractor
- type NominalType
- type NotAnElement
- type Operation
- type OptionalType
- type Parameter
- type ParameterList
- type PathExpression
- type PathExtractor
- type Position
- type Program
- func (p *Program) Accept(visitor Visitor) Repr
- func (p *Program) CompositeDeclarations() []*CompositeDeclaration
- func (p *Program) EndPosition() Position
- func (p *Program) FunctionDeclarations() []*FunctionDeclaration
- func (p *Program) ImportDeclarations() []*ImportDeclaration
- func (p *Program) ImportLocations() []Location
- func (p *Program) ImportedPrograms() map[LocationID]*Program
- func (p *Program) InterfaceDeclarations() []*InterfaceDeclaration
- func (p *Program) ResolveImports(resolver ImportResolver) error
- func (p *Program) StartPosition() Position
- func (p *Program) TransactionDeclarations() []*TransactionDeclaration
- type Range
- type ReferenceExpression
- type ReferenceExtractor
- type ReferenceType
- type Repr
- type RestrictedType
- type ReturnStatement
- type SpecialFunctionDeclaration
- type Statement
- type StatementVisitor
- type StringExpression
- type StringExtractor
- type StringLocation
- type SwapStatement
- type TargetExpression
- type TransactionDeclaration
- type Transfer
- type TransferOperation
- type Type
- type TypeAnnotation
- type UnaryExpression
- type UnaryExtractor
- type VariableDeclaration
- func (d *VariableDeclaration) Accept(visitor Visitor) Repr
- func (d *VariableDeclaration) DeclarationAccess() Access
- func (d *VariableDeclaration) DeclarationIdentifier() *Identifier
- func (d *VariableDeclaration) DeclarationKind() common.DeclarationKind
- func (d *VariableDeclaration) EndPosition() Position
- func (d *VariableDeclaration) StartPosition() Position
- type VariableKind
- type VariableSizedType
- type Visitor
- type WhileStatement
Constants ¶
const AddressLocationPrefix = "A"
const IdentifierLocationPrefix = "I"
const NilConstant = "nil"
const StringLocationPrefix = "S"
Variables ¶
var AllAccesses = append(BasicAccesses[:], AccessContract, AccessAccount, )
var BasicAccesses = []Access{ AccessNotSpecified, AccessPrivate, AccessPublic, AccessPublicSettable, }
var VariableKinds = []VariableKind{ VariableKindConstant, VariableKindVariable, }
Functions ¶
func AccessCount ¶ added in v0.5.0
func AccessCount() int
func ConditionKindCount ¶ added in v0.5.0
func ConditionKindCount() int
func LocationsMatch ¶
Types ¶
type Access ¶
type Access uint
func (Access) Description ¶
func (Access) IsLessPermissiveThan ¶
func (Access) MarshalJSON ¶ added in v0.5.0
type AccessExpression ¶
type AccessExpression interface {
Expression
AccessedExpression() Expression
// contains filtered or unexported methods
}
type AddressLocation ¶
type AddressLocation []byte
func (AddressLocation) ID ¶
func (l AddressLocation) ID() LocationID
func (AddressLocation) String ¶
func (l AddressLocation) String() string
func (AddressLocation) ToAddress ¶
func (l AddressLocation) ToAddress() common.Address
type Argument ¶
type Argument struct {
Label string `json:",omitempty"`
LabelStartPos *Position `json:",omitempty"`
LabelEndPos *Position `json:",omitempty"`
Expression Expression
}
func (Argument) EndPosition ¶ added in v0.5.0
func (Argument) MarshalJSON ¶ added in v0.5.0
func (Argument) StartPosition ¶ added in v0.5.0
type ArrayExpression ¶
type ArrayExpression struct {
Values []Expression
Range
}
func (*ArrayExpression) Accept ¶
func (e *ArrayExpression) Accept(visitor Visitor) Repr
func (*ArrayExpression) AcceptExp ¶
func (e *ArrayExpression) AcceptExp(visitor ExpressionVisitor) Repr
func (*ArrayExpression) String ¶
func (e *ArrayExpression) String() string
type ArrayExtractor ¶
type ArrayExtractor interface {
ExtractArray(extractor *ExpressionExtractor, expression *ArrayExpression) ExpressionExtraction
}
type AssignmentStatement ¶
type AssignmentStatement struct {
Target Expression
Transfer *Transfer
Value Expression
}
func (*AssignmentStatement) Accept ¶
func (s *AssignmentStatement) Accept(visitor Visitor) Repr
func (*AssignmentStatement) EndPosition ¶
func (s *AssignmentStatement) EndPosition() Position
func (*AssignmentStatement) StartPosition ¶
func (s *AssignmentStatement) StartPosition() Position
type BinaryExpression ¶
type BinaryExpression struct {
Operation Operation
Left Expression
Right Expression
}
func (*BinaryExpression) Accept ¶
func (e *BinaryExpression) Accept(visitor Visitor) Repr
func (*BinaryExpression) AcceptExp ¶
func (e *BinaryExpression) AcceptExp(visitor ExpressionVisitor) Repr
func (*BinaryExpression) EndPosition ¶
func (e *BinaryExpression) EndPosition() Position
func (*BinaryExpression) StartPosition ¶
func (e *BinaryExpression) StartPosition() Position
func (*BinaryExpression) String ¶
func (e *BinaryExpression) String() string
type BinaryExtractor ¶
type BinaryExtractor interface {
ExtractBinary(extractor *ExpressionExtractor, expression *BinaryExpression) ExpressionExtraction
}
type BoolExpression ¶
func (*BoolExpression) Accept ¶
func (e *BoolExpression) Accept(visitor Visitor) Repr
func (*BoolExpression) AcceptExp ¶
func (e *BoolExpression) AcceptExp(visitor ExpressionVisitor) Repr
func (*BoolExpression) MarshalJSON ¶ added in v0.5.0
func (e *BoolExpression) MarshalJSON() ([]byte, error)
func (*BoolExpression) String ¶
func (e *BoolExpression) String() string
type BoolExtractor ¶
type BoolExtractor interface {
ExtractBool(extractor *ExpressionExtractor, expression *BoolExpression) ExpressionExtraction
}
type BreakStatement ¶
type BreakStatement struct {
Range
}
func (*BreakStatement) Accept ¶
func (s *BreakStatement) Accept(visitor Visitor) Repr
type CastingExpression ¶
type CastingExpression struct {
Expression Expression
Operation Operation
TypeAnnotation *TypeAnnotation
ParentVariableDeclaration *VariableDeclaration
}
func (*CastingExpression) Accept ¶
func (e *CastingExpression) Accept(visitor Visitor) Repr
func (*CastingExpression) AcceptExp ¶
func (e *CastingExpression) AcceptExp(visitor ExpressionVisitor) Repr
func (*CastingExpression) EndPosition ¶
func (e *CastingExpression) EndPosition() Position
func (*CastingExpression) StartPosition ¶
func (e *CastingExpression) StartPosition() Position
func (*CastingExpression) String ¶
func (e *CastingExpression) String() string
type CastingExtractor ¶
type CastingExtractor interface {
ExtractCast(extractor *ExpressionExtractor, expression *CastingExpression) ExpressionExtraction
}
type CompositeDeclaration ¶
type CompositeDeclaration struct {
Access Access
CompositeKind common.CompositeKind
Identifier Identifier
Conformances []*NominalType
Members *Members
CompositeDeclarations []*CompositeDeclaration
InterfaceDeclarations []*InterfaceDeclaration
Range
}
func (*CompositeDeclaration) Accept ¶
func (d *CompositeDeclaration) Accept(visitor Visitor) Repr
func (*CompositeDeclaration) DeclarationAccess ¶
func (d *CompositeDeclaration) DeclarationAccess() Access
func (*CompositeDeclaration) DeclarationIdentifier ¶
func (d *CompositeDeclaration) DeclarationIdentifier() *Identifier
func (*CompositeDeclaration) DeclarationKind ¶
func (d *CompositeDeclaration) DeclarationKind() common.DeclarationKind
type Condition ¶
type Condition struct {
Kind ConditionKind
Test Expression
Message Expression
}
type ConditionKind ¶
type ConditionKind uint
const ( ConditionKindUnknown ConditionKind = iota ConditionKindPre ConditionKindPost )
func (ConditionKind) MarshalJSON ¶ added in v0.5.0
func (k ConditionKind) MarshalJSON() ([]byte, error)
func (ConditionKind) Name ¶
func (k ConditionKind) Name() string
func (ConditionKind) String ¶
func (i ConditionKind) String() string
type ConditionalExpression ¶
type ConditionalExpression struct {
Test Expression
Then Expression
Else Expression
}
func (*ConditionalExpression) Accept ¶
func (e *ConditionalExpression) Accept(visitor Visitor) Repr
func (*ConditionalExpression) AcceptExp ¶
func (e *ConditionalExpression) AcceptExp(visitor ExpressionVisitor) Repr
func (*ConditionalExpression) EndPosition ¶
func (e *ConditionalExpression) EndPosition() Position
func (*ConditionalExpression) StartPosition ¶
func (e *ConditionalExpression) StartPosition() Position
func (*ConditionalExpression) String ¶
func (e *ConditionalExpression) String() string
type ConditionalExtractor ¶
type ConditionalExtractor interface {
ExtractConditional(extractor *ExpressionExtractor, expression *ConditionalExpression) ExpressionExtraction
}
type Conditions ¶
type Conditions []*Condition
func (*Conditions) Append ¶
func (c *Conditions) Append(conditions Conditions)
type ConstantSizedType ¶
type ConstantSizedType struct {
Type Type
Size *IntegerExpression
Range
}
func (*ConstantSizedType) String ¶
func (t *ConstantSizedType) String() string
type ContinueStatement ¶
type ContinueStatement struct {
Range
}
func (*ContinueStatement) Accept ¶
func (s *ContinueStatement) Accept(visitor Visitor) Repr
type CreateExpression ¶
type CreateExpression struct {
InvocationExpression *InvocationExpression
StartPos Position
}
func (*CreateExpression) Accept ¶
func (e *CreateExpression) Accept(visitor Visitor) Repr
func (*CreateExpression) AcceptExp ¶
func (e *CreateExpression) AcceptExp(visitor ExpressionVisitor) Repr
func (*CreateExpression) EndPosition ¶
func (e *CreateExpression) EndPosition() Position
func (*CreateExpression) StartPosition ¶
func (e *CreateExpression) StartPosition() Position
func (*CreateExpression) String ¶
func (e *CreateExpression) String() string
type CreateExtractor ¶
type CreateExtractor interface {
ExtractCreate(extractor *ExpressionExtractor, expression *CreateExpression) ExpressionExtraction
}
type CyclicImportsError ¶
type CyclicImportsError struct {
Location Location
}
func (CyclicImportsError) Error ¶
func (e CyclicImportsError) Error() string
type Declaration ¶
type Declaration interface {
Element
DeclarationIdentifier() *Identifier
DeclarationKind() common.DeclarationKind
DeclarationAccess() Access
// contains filtered or unexported methods
}
type DestroyExpression ¶
type DestroyExpression struct {
Expression Expression
StartPos Position
}
func (*DestroyExpression) Accept ¶
func (e *DestroyExpression) Accept(visitor Visitor) Repr
func (*DestroyExpression) AcceptExp ¶
func (e *DestroyExpression) AcceptExp(visitor ExpressionVisitor) Repr
func (*DestroyExpression) EndPosition ¶
func (e *DestroyExpression) EndPosition() Position
func (*DestroyExpression) StartPosition ¶
func (e *DestroyExpression) StartPosition() Position
func (*DestroyExpression) String ¶
func (e *DestroyExpression) String() string
type DestroyExtractor ¶
type DestroyExtractor interface {
ExtractDestroy(extractor *ExpressionExtractor, expression *DestroyExpression) ExpressionExtraction
}
type DictionaryExpression ¶
func (*DictionaryExpression) Accept ¶
func (e *DictionaryExpression) Accept(visitor Visitor) Repr
func (*DictionaryExpression) AcceptExp ¶
func (e *DictionaryExpression) AcceptExp(visitor ExpressionVisitor) Repr
func (*DictionaryExpression) String ¶
func (e *DictionaryExpression) String() string
type DictionaryExtractor ¶
type DictionaryExtractor interface {
ExtractDictionary(extractor *ExpressionExtractor, expression *DictionaryExpression) ExpressionExtraction
}
type DictionaryType ¶
func (*DictionaryType) String ¶
func (t *DictionaryType) String() string
type Element ¶
type Element interface {
HasPosition
Accept(Visitor) Repr
}
type EmitStatement ¶
type EmitStatement struct {
InvocationExpression *InvocationExpression
StartPos Position
}
func (*EmitStatement) Accept ¶
func (s *EmitStatement) Accept(visitor Visitor) Repr
func (*EmitStatement) EndPosition ¶
func (s *EmitStatement) EndPosition() Position
func (*EmitStatement) StartPosition ¶
func (s *EmitStatement) StartPosition() Position
type Entry ¶
type Entry struct {
Key Expression
Value Expression
}
type Expression ¶
type Expression interface {
Element
fmt.Stringer
IfStatementTest
AcceptExp(ExpressionVisitor) Repr
// contains filtered or unexported methods
}
type ExpressionExtraction ¶
type ExpressionExtraction struct {
RewrittenExpression Expression
ExtractedExpressions []ExtractedExpression
}
type ExpressionExtractor ¶
type ExpressionExtractor struct {
BoolExtractor BoolExtractor
NilExtractor NilExtractor
IntExtractor IntExtractor
FixedPointExtractor FixedPointExtractor
StringExtractor StringExtractor
ArrayExtractor ArrayExtractor
DictionaryExtractor DictionaryExtractor
IdentifierExtractor IdentifierExtractor
InvocationExtractor InvocationExtractor
MemberExtractor MemberExtractor
IndexExtractor IndexExtractor
ConditionalExtractor ConditionalExtractor
UnaryExtractor UnaryExtractor
BinaryExtractor BinaryExtractor
FunctionExtractor FunctionExtractor
CastingExtractor CastingExtractor
CreateExtractor CreateExtractor
DestroyExtractor DestroyExtractor
ReferenceExtractor ReferenceExtractor
ForceExtractor ForceExtractor
PathExtractor PathExtractor
// contains filtered or unexported fields
}
func (*ExpressionExtractor) Extract ¶
func (extractor *ExpressionExtractor) Extract(expression Expression) ExpressionExtraction
func (*ExpressionExtractor) ExtractArray ¶
func (extractor *ExpressionExtractor) ExtractArray(expression *ArrayExpression) ExpressionExtraction
func (*ExpressionExtractor) ExtractBinary ¶
func (extractor *ExpressionExtractor) ExtractBinary(expression *BinaryExpression) ExpressionExtraction
func (*ExpressionExtractor) ExtractBool ¶
func (extractor *ExpressionExtractor) ExtractBool(expression *BoolExpression) ExpressionExtraction
func (*ExpressionExtractor) ExtractCast ¶
func (extractor *ExpressionExtractor) ExtractCast(expression *CastingExpression) ExpressionExtraction
func (*ExpressionExtractor) ExtractConditional ¶
func (extractor *ExpressionExtractor) ExtractConditional(expression *ConditionalExpression) ExpressionExtraction
func (*ExpressionExtractor) ExtractCreate ¶
func (extractor *ExpressionExtractor) ExtractCreate(expression *CreateExpression) ExpressionExtraction
func (*ExpressionExtractor) ExtractDestroy ¶
func (extractor *ExpressionExtractor) ExtractDestroy(expression *DestroyExpression) ExpressionExtraction
func (*ExpressionExtractor) ExtractDictionary ¶
func (extractor *ExpressionExtractor) ExtractDictionary(expression *DictionaryExpression) ExpressionExtraction
func (*ExpressionExtractor) ExtractFixedPoint ¶
func (extractor *ExpressionExtractor) ExtractFixedPoint(expression *FixedPointExpression) ExpressionExtraction
func (*ExpressionExtractor) ExtractForce ¶
func (extractor *ExpressionExtractor) ExtractForce(expression *ForceExpression) ExpressionExtraction
func (*ExpressionExtractor) ExtractFunction ¶
func (extractor *ExpressionExtractor) ExtractFunction(_ *FunctionExpression) ExpressionExtraction
func (*ExpressionExtractor) ExtractIdentifier ¶
func (extractor *ExpressionExtractor) ExtractIdentifier(expression *IdentifierExpression) ExpressionExtraction
func (*ExpressionExtractor) ExtractIndex ¶
func (extractor *ExpressionExtractor) ExtractIndex(expression *IndexExpression) ExpressionExtraction
func (*ExpressionExtractor) ExtractInteger ¶
func (extractor *ExpressionExtractor) ExtractInteger(expression *IntegerExpression) ExpressionExtraction
func (*ExpressionExtractor) ExtractInvocation ¶
func (extractor *ExpressionExtractor) ExtractInvocation(expression *InvocationExpression) ExpressionExtraction
func (*ExpressionExtractor) ExtractMember ¶
func (extractor *ExpressionExtractor) ExtractMember(expression *MemberExpression) ExpressionExtraction
func (*ExpressionExtractor) ExtractNil ¶
func (extractor *ExpressionExtractor) ExtractNil(expression *NilExpression) ExpressionExtraction
func (*ExpressionExtractor) ExtractPath ¶
func (extractor *ExpressionExtractor) ExtractPath(expression *PathExpression) ExpressionExtraction
func (*ExpressionExtractor) ExtractReference ¶
func (extractor *ExpressionExtractor) ExtractReference(expression *ReferenceExpression) ExpressionExtraction
func (*ExpressionExtractor) ExtractString ¶
func (extractor *ExpressionExtractor) ExtractString(expression *StringExpression) ExpressionExtraction
func (*ExpressionExtractor) ExtractUnary ¶
func (extractor *ExpressionExtractor) ExtractUnary(expression *UnaryExpression) ExpressionExtraction
func (*ExpressionExtractor) FormatIdentifier ¶
func (extractor *ExpressionExtractor) FormatIdentifier(identifier int) string
func (*ExpressionExtractor) FreshIdentifier ¶
func (extractor *ExpressionExtractor) FreshIdentifier() string
func (*ExpressionExtractor) VisitArrayExpression ¶
func (extractor *ExpressionExtractor) VisitArrayExpression(expression *ArrayExpression) Repr
func (*ExpressionExtractor) VisitBinaryExpression ¶
func (extractor *ExpressionExtractor) VisitBinaryExpression(expression *BinaryExpression) Repr
func (*ExpressionExtractor) VisitBoolExpression ¶
func (extractor *ExpressionExtractor) VisitBoolExpression(expression *BoolExpression) Repr
func (*ExpressionExtractor) VisitCastingExpression ¶
func (extractor *ExpressionExtractor) VisitCastingExpression(expression *CastingExpression) Repr
func (*ExpressionExtractor) VisitConditionalExpression ¶
func (extractor *ExpressionExtractor) VisitConditionalExpression(expression *ConditionalExpression) Repr
func (*ExpressionExtractor) VisitCreateExpression ¶
func (extractor *ExpressionExtractor) VisitCreateExpression(expression *CreateExpression) Repr
func (*ExpressionExtractor) VisitDestroyExpression ¶
func (extractor *ExpressionExtractor) VisitDestroyExpression(expression *DestroyExpression) Repr
func (*ExpressionExtractor) VisitDictionaryExpression ¶
func (extractor *ExpressionExtractor) VisitDictionaryExpression(expression *DictionaryExpression) Repr
func (*ExpressionExtractor) VisitExpressions ¶
func (extractor *ExpressionExtractor) VisitExpressions( expressions []Expression, ) ( []Expression, []ExtractedExpression, )
func (*ExpressionExtractor) VisitFixedPointExpression ¶
func (extractor *ExpressionExtractor) VisitFixedPointExpression(expression *FixedPointExpression) Repr
func (*ExpressionExtractor) VisitForceExpression ¶
func (extractor *ExpressionExtractor) VisitForceExpression(expression *ForceExpression) Repr
func (*ExpressionExtractor) VisitFunctionExpression ¶
func (extractor *ExpressionExtractor) VisitFunctionExpression(expression *FunctionExpression) Repr
func (*ExpressionExtractor) VisitIdentifierExpression ¶
func (extractor *ExpressionExtractor) VisitIdentifierExpression(expression *IdentifierExpression) Repr
func (*ExpressionExtractor) VisitIndexExpression ¶
func (extractor *ExpressionExtractor) VisitIndexExpression(expression *IndexExpression) Repr
func (*ExpressionExtractor) VisitIntegerExpression ¶
func (extractor *ExpressionExtractor) VisitIntegerExpression(expression *IntegerExpression) Repr
func (*ExpressionExtractor) VisitInvocationExpression ¶
func (extractor *ExpressionExtractor) VisitInvocationExpression(expression *InvocationExpression) Repr
func (*ExpressionExtractor) VisitMemberExpression ¶
func (extractor *ExpressionExtractor) VisitMemberExpression(expression *MemberExpression) Repr
func (*ExpressionExtractor) VisitNilExpression ¶
func (extractor *ExpressionExtractor) VisitNilExpression(expression *NilExpression) Repr
func (*ExpressionExtractor) VisitPathExpression ¶
func (extractor *ExpressionExtractor) VisitPathExpression(expression *PathExpression) Repr
func (*ExpressionExtractor) VisitReferenceExpression ¶
func (extractor *ExpressionExtractor) VisitReferenceExpression(expression *ReferenceExpression) Repr
func (*ExpressionExtractor) VisitStringExpression ¶
func (extractor *ExpressionExtractor) VisitStringExpression(expression *StringExpression) Repr
func (*ExpressionExtractor) VisitUnaryExpression ¶
func (extractor *ExpressionExtractor) VisitUnaryExpression(expression *UnaryExpression) Repr
type ExpressionStatement ¶
type ExpressionStatement struct {
Expression Expression
}
func (*ExpressionStatement) Accept ¶
func (s *ExpressionStatement) Accept(visitor Visitor) Repr
func (*ExpressionStatement) EndPosition ¶
func (s *ExpressionStatement) EndPosition() Position
func (*ExpressionStatement) StartPosition ¶
func (s *ExpressionStatement) StartPosition() Position
type ExpressionVisitor ¶
type ExpressionVisitor interface {
VisitBoolExpression(*BoolExpression) Repr
VisitNilExpression(*NilExpression) Repr
VisitIntegerExpression(*IntegerExpression) Repr
VisitFixedPointExpression(*FixedPointExpression) Repr
VisitArrayExpression(*ArrayExpression) Repr
VisitDictionaryExpression(*DictionaryExpression) Repr
VisitIdentifierExpression(*IdentifierExpression) Repr
VisitInvocationExpression(*InvocationExpression) Repr
VisitMemberExpression(*MemberExpression) Repr
VisitIndexExpression(*IndexExpression) Repr
VisitConditionalExpression(*ConditionalExpression) Repr
VisitUnaryExpression(*UnaryExpression) Repr
VisitBinaryExpression(*BinaryExpression) Repr
VisitFunctionExpression(*FunctionExpression) Repr
VisitStringExpression(*StringExpression) Repr
VisitCastingExpression(*CastingExpression) Repr
VisitCreateExpression(*CreateExpression) Repr
VisitDestroyExpression(*DestroyExpression) Repr
VisitReferenceExpression(*ReferenceExpression) Repr
VisitForceExpression(*ForceExpression) Repr
VisitPathExpression(*PathExpression) Repr
}
type ExtractedExpression ¶
type ExtractedExpression struct {
Identifier Identifier
Expression Expression
}
type FieldDeclaration ¶
type FieldDeclaration struct {
Access Access
VariableKind VariableKind
Identifier Identifier
TypeAnnotation *TypeAnnotation
Range
}
func (*FieldDeclaration) Accept ¶
func (f *FieldDeclaration) Accept(visitor Visitor) Repr
func (*FieldDeclaration) DeclarationAccess ¶
func (f *FieldDeclaration) DeclarationAccess() Access
func (*FieldDeclaration) DeclarationIdentifier ¶
func (f *FieldDeclaration) DeclarationIdentifier() *Identifier
func (*FieldDeclaration) DeclarationKind ¶
func (f *FieldDeclaration) DeclarationKind() common.DeclarationKind
type FixedPointExpression ¶
type FixedPointExpression struct {
Negative bool
UnsignedInteger *big.Int
Fractional *big.Int
Scale uint
Range
}
func (*FixedPointExpression) Accept ¶
func (e *FixedPointExpression) Accept(visitor Visitor) Repr
func (*FixedPointExpression) AcceptExp ¶
func (e *FixedPointExpression) AcceptExp(visitor ExpressionVisitor) Repr
func (*FixedPointExpression) String ¶
func (e *FixedPointExpression) String() string
type FixedPointExtractor ¶
type FixedPointExtractor interface {
ExtractFixedPoint(extractor *ExpressionExtractor, expression *FixedPointExpression) ExpressionExtraction
}
type ForStatement ¶
type ForStatement struct {
Identifier Identifier
Value Expression
Block *Block
StartPos Position
}
func (*ForStatement) Accept ¶
func (s *ForStatement) Accept(visitor Visitor) Repr
func (*ForStatement) EndPosition ¶
func (s *ForStatement) EndPosition() Position
func (*ForStatement) StartPosition ¶
func (s *ForStatement) StartPosition() Position
type ForceExpression ¶
type ForceExpression struct {
Expression Expression
EndPos Position
}
func (*ForceExpression) Accept ¶
func (e *ForceExpression) Accept(visitor Visitor) Repr
func (*ForceExpression) AcceptExp ¶
func (e *ForceExpression) AcceptExp(visitor ExpressionVisitor) Repr
func (*ForceExpression) EndPosition ¶
func (e *ForceExpression) EndPosition() Position
func (*ForceExpression) StartPosition ¶
func (e *ForceExpression) StartPosition() Position
func (*ForceExpression) String ¶
func (e *ForceExpression) String() string
type ForceExtractor ¶
type ForceExtractor interface {
ExtractForce(extractor *ExpressionExtractor, expression *ForceExpression) ExpressionExtraction
}
type FunctionBlock ¶
type FunctionBlock struct {
*Block
PreConditions *Conditions
PostConditions *Conditions
}
func (*FunctionBlock) Accept ¶
func (b *FunctionBlock) Accept(visitor Visitor) Repr
type FunctionDeclaration ¶
type FunctionDeclaration struct {
Access Access
Identifier Identifier
ParameterList *ParameterList
ReturnTypeAnnotation *TypeAnnotation
FunctionBlock *FunctionBlock
StartPos Position
}
func (*FunctionDeclaration) Accept ¶
func (f *FunctionDeclaration) Accept(visitor Visitor) Repr
func (*FunctionDeclaration) DeclarationAccess ¶
func (f *FunctionDeclaration) DeclarationAccess() Access
func (*FunctionDeclaration) DeclarationIdentifier ¶
func (f *FunctionDeclaration) DeclarationIdentifier() *Identifier
func (*FunctionDeclaration) DeclarationKind ¶
func (f *FunctionDeclaration) DeclarationKind() common.DeclarationKind
func (*FunctionDeclaration) EndPosition ¶
func (f *FunctionDeclaration) EndPosition() Position
func (*FunctionDeclaration) StartPosition ¶
func (f *FunctionDeclaration) StartPosition() Position
func (*FunctionDeclaration) ToExpression ¶
func (f *FunctionDeclaration) ToExpression() *FunctionExpression
type FunctionExpression ¶
type FunctionExpression struct {
ParameterList *ParameterList
ReturnTypeAnnotation *TypeAnnotation
FunctionBlock *FunctionBlock
StartPos Position
}
func (*FunctionExpression) Accept ¶
func (e *FunctionExpression) Accept(visitor Visitor) Repr
func (*FunctionExpression) AcceptExp ¶
func (e *FunctionExpression) AcceptExp(visitor ExpressionVisitor) Repr
func (*FunctionExpression) EndPosition ¶
func (e *FunctionExpression) EndPosition() Position
func (*FunctionExpression) StartPosition ¶
func (e *FunctionExpression) StartPosition() Position
func (*FunctionExpression) String ¶
func (e *FunctionExpression) String() string
type FunctionExtractor ¶
type FunctionExtractor interface {
ExtractFunction(extractor *ExpressionExtractor, expression *FunctionExpression) ExpressionExtraction
}
type FunctionType ¶
type FunctionType struct {
ParameterTypeAnnotations []*TypeAnnotation
ReturnTypeAnnotation *TypeAnnotation
Range
}
func (*FunctionType) String ¶
func (t *FunctionType) String() string
type HasImportLocation ¶
type HasImportLocation interface {
ImportLocation() Location
}
type HasPosition ¶
type Identifier ¶
func (Identifier) EndPosition ¶
func (i Identifier) EndPosition() Position
func (Identifier) StartPosition ¶
func (i Identifier) StartPosition() Position
func (Identifier) String ¶
func (i Identifier) String() string
type IdentifierExpression ¶
type IdentifierExpression struct {
Identifier
}
func (*IdentifierExpression) Accept ¶
func (e *IdentifierExpression) Accept(visitor Visitor) Repr
func (*IdentifierExpression) AcceptExp ¶
func (e *IdentifierExpression) AcceptExp(visitor ExpressionVisitor) Repr
func (*IdentifierExpression) String ¶
func (e *IdentifierExpression) String() string
type IdentifierExtractor ¶
type IdentifierExtractor interface {
ExtractIdentifier(extractor *ExpressionExtractor, expression *IdentifierExpression) ExpressionExtraction
}
type IdentifierLocation ¶ added in v0.5.0
type IdentifierLocation string
func (IdentifierLocation) ID ¶ added in v0.5.0
func (l IdentifierLocation) ID() LocationID
type IfStatement ¶
type IfStatement struct {
Test IfStatementTest
Then *Block
Else *Block
StartPos Position
}
func (*IfStatement) Accept ¶
func (s *IfStatement) Accept(visitor Visitor) Repr
func (*IfStatement) EndPosition ¶
func (s *IfStatement) EndPosition() Position
func (*IfStatement) StartPosition ¶
func (s *IfStatement) StartPosition() Position
type IfStatementTest ¶
type IfStatementTest interface {
// contains filtered or unexported methods
}
type ImportDeclaration ¶
type ImportDeclaration struct {
Identifiers []Identifier
Location Location
LocationPos Position
Range
}
func (*ImportDeclaration) Accept ¶
func (v *ImportDeclaration) Accept(visitor Visitor) Repr
func (*ImportDeclaration) DeclarationAccess ¶
func (v *ImportDeclaration) DeclarationAccess() Access
func (*ImportDeclaration) DeclarationIdentifier ¶
func (v *ImportDeclaration) DeclarationIdentifier() *Identifier
func (*ImportDeclaration) DeclarationKind ¶
func (v *ImportDeclaration) DeclarationKind() common.DeclarationKind
type ImportResolver ¶
type IndexExpression ¶
type IndexExpression struct {
TargetExpression Expression
IndexingExpression Expression
Range
}
func (*IndexExpression) Accept ¶
func (e *IndexExpression) Accept(visitor Visitor) Repr
func (*IndexExpression) AcceptExp ¶
func (e *IndexExpression) AcceptExp(visitor ExpressionVisitor) Repr
func (*IndexExpression) AccessedExpression ¶
func (e *IndexExpression) AccessedExpression() Expression
func (*IndexExpression) String ¶
func (e *IndexExpression) String() string
type IndexExtractor ¶
type IndexExtractor interface {
ExtractIndex(extractor *ExpressionExtractor, expression *IndexExpression) ExpressionExtraction
}
type InstantiationType ¶ added in v0.5.0
type InstantiationType struct {
Type Type
TypeArguments []*TypeAnnotation
TypeArgumentsStartPos Position
EndPos Position
}
func (*InstantiationType) EndPosition ¶ added in v0.5.0
func (t *InstantiationType) EndPosition() Position
func (*InstantiationType) StartPosition ¶ added in v0.5.0
func (t *InstantiationType) StartPosition() Position
func (*InstantiationType) String ¶ added in v0.5.0
func (t *InstantiationType) String() string
type IntExtractor ¶
type IntExtractor interface {
ExtractInteger(extractor *ExpressionExtractor, expression *IntegerExpression) ExpressionExtraction
}
type IntegerExpression ¶
func (*IntegerExpression) Accept ¶
func (e *IntegerExpression) Accept(visitor Visitor) Repr
func (*IntegerExpression) AcceptExp ¶
func (e *IntegerExpression) AcceptExp(visitor ExpressionVisitor) Repr
func (*IntegerExpression) String ¶
func (e *IntegerExpression) String() string
type InterfaceDeclaration ¶
type InterfaceDeclaration struct {
Access Access
CompositeKind common.CompositeKind
Identifier Identifier
Members *Members
CompositeDeclarations []*CompositeDeclaration
InterfaceDeclarations []*InterfaceDeclaration
Range
}
func (*InterfaceDeclaration) Accept ¶
func (d *InterfaceDeclaration) Accept(visitor Visitor) Repr
func (*InterfaceDeclaration) DeclarationAccess ¶
func (d *InterfaceDeclaration) DeclarationAccess() Access
func (*InterfaceDeclaration) DeclarationIdentifier ¶
func (d *InterfaceDeclaration) DeclarationIdentifier() *Identifier
func (*InterfaceDeclaration) DeclarationKind ¶
func (d *InterfaceDeclaration) DeclarationKind() common.DeclarationKind
type InvocationExpression ¶
type InvocationExpression struct {
InvokedExpression Expression
TypeArguments []*TypeAnnotation
Arguments Arguments
EndPos Position
}
func (*InvocationExpression) Accept ¶
func (e *InvocationExpression) Accept(visitor Visitor) Repr
func (*InvocationExpression) AcceptExp ¶
func (e *InvocationExpression) AcceptExp(visitor ExpressionVisitor) Repr
func (*InvocationExpression) EndPosition ¶
func (e *InvocationExpression) EndPosition() Position
func (*InvocationExpression) StartPosition ¶
func (e *InvocationExpression) StartPosition() Position
func (*InvocationExpression) String ¶
func (e *InvocationExpression) String() string
type InvocationExtractor ¶
type InvocationExtractor interface {
ExtractInvocation(extractor *ExpressionExtractor, expression *InvocationExpression) ExpressionExtraction
}
type Location ¶
type Location interface {
// ID returns the canonical ID for this import location.
ID() LocationID
}
Location describes the origin of a Cadence script. This could be a file, a transaction, or a smart contract.
func LocationFromTypeID ¶ added in v0.2.0
type LocationID ¶
type LocationID string
func NewLocationID ¶ added in v0.5.0
func NewLocationID(parts ...string) LocationID
type MemberExpression ¶
type MemberExpression struct {
Expression Expression
Optional bool
Identifier Identifier
}
func (*MemberExpression) Accept ¶
func (e *MemberExpression) Accept(visitor Visitor) Repr
func (*MemberExpression) AcceptExp ¶
func (e *MemberExpression) AcceptExp(visitor ExpressionVisitor) Repr
func (*MemberExpression) AccessedExpression ¶
func (e *MemberExpression) AccessedExpression() Expression
func (*MemberExpression) EndPosition ¶
func (e *MemberExpression) EndPosition() Position
func (*MemberExpression) StartPosition ¶
func (e *MemberExpression) StartPosition() Position
func (*MemberExpression) String ¶
func (e *MemberExpression) String() string
type MemberExtractor ¶
type MemberExtractor interface {
ExtractMember(extractor *ExpressionExtractor, expression *MemberExpression) ExpressionExtraction
}
type Members ¶
type Members struct {
Fields []*FieldDeclaration
// All special functions, such as initializers and destructors.
// Use `Initializers()` and `Destructors()` to get subsets
SpecialFunctions []*SpecialFunctionDeclaration
Functions []*FunctionDeclaration
// contains filtered or unexported fields
}
func (*Members) Destructor ¶
func (m *Members) Destructor() *SpecialFunctionDeclaration
Destructor returns the first destructor, if any
func (*Members) Destructors ¶
func (m *Members) Destructors() []*SpecialFunctionDeclaration
func (*Members) FieldPosition ¶
func (m *Members) FieldPosition(name string, compositeKind common.CompositeKind) Position
func (*Members) FieldsByIdentifier ¶
func (m *Members) FieldsByIdentifier() map[string]*FieldDeclaration
func (*Members) FunctionsByIdentifier ¶
func (m *Members) FunctionsByIdentifier() map[string]*FunctionDeclaration
func (*Members) Initializers ¶
func (m *Members) Initializers() []*SpecialFunctionDeclaration
type NilExpression ¶
type NilExpression struct {
Pos Position `json:"-"`
}
func (*NilExpression) Accept ¶
func (e *NilExpression) Accept(visitor Visitor) Repr
func (*NilExpression) AcceptExp ¶
func (e *NilExpression) AcceptExp(visitor ExpressionVisitor) Repr
func (*NilExpression) EndPosition ¶
func (e *NilExpression) EndPosition() Position
func (*NilExpression) MarshalJSON ¶ added in v0.5.0
func (e *NilExpression) MarshalJSON() ([]byte, error)
func (*NilExpression) StartPosition ¶
func (e *NilExpression) StartPosition() Position
func (*NilExpression) String ¶
func (e *NilExpression) String() string
type NilExtractor ¶
type NilExtractor interface {
ExtractNil(extractor *ExpressionExtractor, expression *NilExpression) ExpressionExtraction
}
type NominalType ¶
type NominalType struct {
Identifier Identifier
NestedIdentifiers []Identifier
}
func (*NominalType) EndPosition ¶
func (t *NominalType) EndPosition() Position
func (*NominalType) StartPosition ¶
func (t *NominalType) StartPosition() Position
func (*NominalType) String ¶
func (t *NominalType) String() string
type NotAnElement ¶
type NotAnElement struct{}
func (NotAnElement) Accept ¶
func (NotAnElement) Accept(Visitor) Repr
func (NotAnElement) EndPosition ¶
func (NotAnElement) EndPosition() Position
func (NotAnElement) StartPosition ¶
func (NotAnElement) StartPosition() Position
type Operation ¶
type Operation uint
const ( OperationUnknown Operation = iota OperationOr OperationAnd OperationEqual OperationNotEqual OperationLess OperationGreater OperationLessEqual OperationGreaterEqual OperationPlus OperationMinus OperationMul OperationDiv OperationMod OperationNegate OperationNilCoalesce OperationMove OperationCast OperationFailableCast OperationForceCast OperationBitwiseOr OperationBitwiseXor OperationBitwiseAnd OperationBitwiseLeftShift OperationBitwiseRightShift )
type OptionalType ¶
func (*OptionalType) EndPosition ¶
func (t *OptionalType) EndPosition() Position
func (*OptionalType) StartPosition ¶
func (t *OptionalType) StartPosition() Position
func (*OptionalType) String ¶
func (t *OptionalType) String() string
type Parameter ¶
type Parameter struct {
Label string
Identifier Identifier
TypeAnnotation *TypeAnnotation
Range
}
func (Parameter) EffectiveArgumentLabel ¶
EffectiveArgumentLabel returns the effective argument label that an argument in a call must use: If no argument label is declared for parameter, the parameter name is used as the argument label
type ParameterList ¶
type ParameterList struct {
Parameters []*Parameter
Range
// contains filtered or unexported fields
}
func (*ParameterList) EffectiveArgumentLabels ¶
func (l *ParameterList) EffectiveArgumentLabels() []string
EffectiveArgumentLabels returns the effective argument labels that the arguments of a call must use: If no argument label is declared for parameter, the parameter name is used as the argument label
func (*ParameterList) ParametersByIdentifier ¶
func (l *ParameterList) ParametersByIdentifier() map[string]*Parameter
type PathExpression ¶
type PathExpression struct {
StartPos Position
Domain Identifier
Identifier Identifier
}
func (*PathExpression) Accept ¶
func (e *PathExpression) Accept(visitor Visitor) Repr
func (*PathExpression) AcceptExp ¶
func (e *PathExpression) AcceptExp(visitor ExpressionVisitor) Repr
func (*PathExpression) EndPosition ¶
func (e *PathExpression) EndPosition() Position
func (*PathExpression) StartPosition ¶
func (e *PathExpression) StartPosition() Position
func (*PathExpression) String ¶
func (e *PathExpression) String() string
type PathExtractor ¶
type PathExtractor interface {
ExtractPath(extractor *ExpressionExtractor, expression *PathExpression) ExpressionExtraction
}
type Position ¶
type Position struct {
// offset, starting at 0
Offset int
// line number, starting at 1
Line int
// column number, starting at 0 (byte count)
Column int
}
Position defines a row/column within a Cadence script.
func EndPosition ¶
type Program ¶
type Program struct {
// all declarations, in the order they are defined
Declarations []Declaration
// contains filtered or unexported fields
}
func (*Program) CompositeDeclarations ¶
func (p *Program) CompositeDeclarations() []*CompositeDeclaration
func (*Program) EndPosition ¶
func (*Program) FunctionDeclarations ¶
func (p *Program) FunctionDeclarations() []*FunctionDeclaration
func (*Program) ImportDeclarations ¶
func (p *Program) ImportDeclarations() []*ImportDeclaration
func (*Program) ImportLocations ¶
ImportLocations returns the import locations declared by this program.
func (*Program) ImportedPrograms ¶
func (p *Program) ImportedPrograms() map[LocationID]*Program
ImportedPrograms returns the sub-programs imported by this program, indexed by location ID.
func (*Program) InterfaceDeclarations ¶
func (p *Program) InterfaceDeclarations() []*InterfaceDeclaration
func (*Program) ResolveImports ¶
func (p *Program) ResolveImports(resolver ImportResolver) error
func (*Program) StartPosition ¶
func (*Program) TransactionDeclarations ¶
func (p *Program) TransactionDeclarations() []*TransactionDeclaration
type Range ¶
func NewRangeFromPositioned ¶
func NewRangeFromPositioned(hasPosition HasPosition) Range
func (*Range) EndPosition ¶
func (*Range) StartPosition ¶
type ReferenceExpression ¶
type ReferenceExpression struct {
Expression Expression
Type Type
StartPos Position
}
func (*ReferenceExpression) Accept ¶
func (e *ReferenceExpression) Accept(visitor Visitor) Repr
func (*ReferenceExpression) AcceptExp ¶
func (e *ReferenceExpression) AcceptExp(visitor ExpressionVisitor) Repr
func (*ReferenceExpression) EndPosition ¶
func (e *ReferenceExpression) EndPosition() Position
func (*ReferenceExpression) StartPosition ¶
func (e *ReferenceExpression) StartPosition() Position
func (*ReferenceExpression) String ¶
func (e *ReferenceExpression) String() string
type ReferenceExtractor ¶
type ReferenceExtractor interface {
ExtractReference(extractor *ExpressionExtractor, expression *ReferenceExpression) ExpressionExtraction
}
type ReferenceType ¶
func (*ReferenceType) EndPosition ¶
func (t *ReferenceType) EndPosition() Position
func (*ReferenceType) StartPosition ¶
func (t *ReferenceType) StartPosition() Position
func (*ReferenceType) String ¶
func (t *ReferenceType) String() string
type RestrictedType ¶
type RestrictedType struct {
Type Type
Restrictions []*NominalType
Range
}
func (*RestrictedType) String ¶
func (t *RestrictedType) String() string
type ReturnStatement ¶
type ReturnStatement struct {
Expression Expression
Range
}
func (*ReturnStatement) Accept ¶
func (s *ReturnStatement) Accept(visitor Visitor) Repr
type SpecialFunctionDeclaration ¶
type SpecialFunctionDeclaration struct {
Kind common.DeclarationKind
*FunctionDeclaration
}
func (*SpecialFunctionDeclaration) DeclarationKind ¶
func (f *SpecialFunctionDeclaration) DeclarationKind() common.DeclarationKind
type StatementVisitor ¶
type StatementVisitor interface {
VisitReturnStatement(*ReturnStatement) Repr
VisitBreakStatement(*BreakStatement) Repr
VisitContinueStatement(*ContinueStatement) Repr
VisitIfStatement(*IfStatement) Repr
VisitWhileStatement(*WhileStatement) Repr
VisitForStatement(*ForStatement) Repr
VisitEmitStatement(*EmitStatement) Repr
VisitVariableDeclaration(*VariableDeclaration) Repr
VisitAssignmentStatement(*AssignmentStatement) Repr
VisitSwapStatement(*SwapStatement) Repr
VisitExpressionStatement(*ExpressionStatement) Repr
}
type StringExpression ¶
func (*StringExpression) Accept ¶
func (e *StringExpression) Accept(visitor Visitor) Repr
func (*StringExpression) AcceptExp ¶
func (e *StringExpression) AcceptExp(visitor ExpressionVisitor) Repr
func (*StringExpression) String ¶
func (e *StringExpression) String() string
type StringExtractor ¶
type StringExtractor interface {
ExtractString(extractor *ExpressionExtractor, expression *StringExpression) ExpressionExtraction
}
type StringLocation ¶
type StringLocation string
func (StringLocation) ID ¶
func (l StringLocation) ID() LocationID
type SwapStatement ¶
type SwapStatement struct {
Left Expression
Right Expression
}
func (*SwapStatement) Accept ¶
func (s *SwapStatement) Accept(visitor Visitor) Repr
func (*SwapStatement) EndPosition ¶
func (s *SwapStatement) EndPosition() Position
func (*SwapStatement) StartPosition ¶
func (s *SwapStatement) StartPosition() Position
type TargetExpression ¶
type TargetExpression interface {
// contains filtered or unexported methods
}
type TransactionDeclaration ¶
type TransactionDeclaration struct {
ParameterList *ParameterList
Fields []*FieldDeclaration
Prepare *SpecialFunctionDeclaration
PreConditions *Conditions
PostConditions *Conditions
Execute *SpecialFunctionDeclaration
Range
}
func (*TransactionDeclaration) Accept ¶
func (d *TransactionDeclaration) Accept(visitor Visitor) Repr
func (*TransactionDeclaration) DeclarationAccess ¶
func (d *TransactionDeclaration) DeclarationAccess() Access
func (*TransactionDeclaration) DeclarationIdentifier ¶
func (d *TransactionDeclaration) DeclarationIdentifier() *Identifier
func (*TransactionDeclaration) DeclarationKind ¶
func (d *TransactionDeclaration) DeclarationKind() common.DeclarationKind
type Transfer ¶
type Transfer struct {
Operation TransferOperation
Pos Position
}
Transfer represents the operation in variable declarations and assignments
func (Transfer) EndPosition ¶
func (Transfer) StartPosition ¶
type TransferOperation ¶
type TransferOperation uint
const ( TransferOperationUnknown TransferOperation = iota TransferOperationCopy TransferOperationMove TransferOperationMoveForced )
func (TransferOperation) IsMove ¶
func (k TransferOperation) IsMove() bool
func (TransferOperation) Operator ¶
func (k TransferOperation) Operator() string
func (TransferOperation) String ¶
func (i TransferOperation) String() string
type Type ¶
type Type interface {
HasPosition
fmt.Stringer
// contains filtered or unexported methods
}
func ExpressionAsType ¶
func ExpressionAsType(expression Expression) Type
ExpressionAsType attempts to convert an expression to a type. Some expressions can be considered both an expression and a type
type TypeAnnotation ¶
func (*TypeAnnotation) EndPosition ¶
func (e *TypeAnnotation) EndPosition() Position
func (*TypeAnnotation) StartPosition ¶
func (e *TypeAnnotation) StartPosition() Position
func (*TypeAnnotation) String ¶
func (e *TypeAnnotation) String() string
type UnaryExpression ¶
type UnaryExpression struct {
Operation Operation
Expression Expression
StartPos Position
}
func (*UnaryExpression) Accept ¶
func (e *UnaryExpression) Accept(visitor Visitor) Repr
func (*UnaryExpression) AcceptExp ¶
func (e *UnaryExpression) AcceptExp(visitor ExpressionVisitor) Repr
func (*UnaryExpression) EndPosition ¶ added in v0.2.1
func (e *UnaryExpression) EndPosition() Position
func (*UnaryExpression) StartPosition ¶ added in v0.2.1
func (e *UnaryExpression) StartPosition() Position
func (*UnaryExpression) String ¶
func (e *UnaryExpression) String() string
type UnaryExtractor ¶
type UnaryExtractor interface {
ExtractUnary(extractor *ExpressionExtractor, expression *UnaryExpression) ExpressionExtraction
}
type VariableDeclaration ¶
type VariableDeclaration struct {
Access Access
IsConstant bool
Identifier Identifier
TypeAnnotation *TypeAnnotation
Value Expression
Transfer *Transfer
StartPos Position
SecondTransfer *Transfer
SecondValue Expression
ParentIfStatement *IfStatement
}
func (*VariableDeclaration) Accept ¶
func (d *VariableDeclaration) Accept(visitor Visitor) Repr
func (*VariableDeclaration) DeclarationAccess ¶
func (d *VariableDeclaration) DeclarationAccess() Access
func (*VariableDeclaration) DeclarationIdentifier ¶
func (d *VariableDeclaration) DeclarationIdentifier() *Identifier
func (*VariableDeclaration) DeclarationKind ¶
func (d *VariableDeclaration) DeclarationKind() common.DeclarationKind
func (*VariableDeclaration) EndPosition ¶
func (d *VariableDeclaration) EndPosition() Position
func (*VariableDeclaration) StartPosition ¶
func (d *VariableDeclaration) StartPosition() Position
type VariableKind ¶
type VariableKind uint
const ( VariableKindNotSpecified VariableKind = iota VariableKindVariable VariableKindConstant )
func (VariableKind) Keyword ¶
func (k VariableKind) Keyword() string
func (VariableKind) Name ¶
func (k VariableKind) Name() string
func (VariableKind) String ¶
func (i VariableKind) String() string
type VariableSizedType ¶
func (*VariableSizedType) String ¶
func (t *VariableSizedType) String() string
type Visitor ¶
type Visitor interface {
StatementVisitor
ExpressionVisitor
VisitProgram(*Program) Repr
VisitFunctionDeclaration(*FunctionDeclaration) Repr
VisitBlock(*Block) Repr
VisitFunctionBlock(*FunctionBlock) Repr
VisitCompositeDeclaration(*CompositeDeclaration) Repr
VisitInterfaceDeclaration(*InterfaceDeclaration) Repr
VisitFieldDeclaration(*FieldDeclaration) Repr
VisitCondition(*Condition) Repr
VisitImportDeclaration(*ImportDeclaration) Repr
VisitTransactionDeclaration(*TransactionDeclaration) Repr
}
type WhileStatement ¶
type WhileStatement struct {
Test Expression
Block *Block
StartPos Position
}
func (*WhileStatement) Accept ¶
func (s *WhileStatement) Accept(visitor Visitor) Repr
func (*WhileStatement) EndPosition ¶
func (s *WhileStatement) EndPosition() Position
func (*WhileStatement) StartPosition ¶
func (s *WhileStatement) StartPosition() Position
Source Files
¶
- access.go
- access_string.go
- argument.go
- block.go
- composite.go
- conditionkind.go
- conditionkind_string.go
- declaration.go
- expression.go
- expression_as_type.go
- expression_extractor.go
- function_declaration.go
- import.go
- interface.go
- members.go
- operation.go
- operation_string.go
- parameter.go
- position.go
- program.go
- statement.go
- transaction_declaration.go
- transfer.go
- transferoperation.go
- transferoperation_string.go
- type.go
- variable_declaration.go
- variablekind.go
- variablekind_string.go
- visitor.go