Documentation ¶
Index ¶
- Constants
- Variables
- func MergeFuncMap(maps ...template.FuncMap) template.FuncMap
- func NodesAll(nodes []Node, predict func(n Node) bool) bool
- func NodesAny(nodes []Node, predict func(n Node) bool) bool
- type FieldFragment
- type FieldFragmentOrderedMap
- func (om *FieldFragmentOrderedMap) Entities() []FieldFragmentOrderedMapEntity
- func (om *FieldFragmentOrderedMap) Get(key string) FieldFragment
- func (om *FieldFragmentOrderedMap) Has(key string) bool
- func (om *FieldFragmentOrderedMap) Index(i int) FieldFragment
- func (om *FieldFragmentOrderedMap) MarshalYAML() (interface{}, error)
- func (om *FieldFragmentOrderedMap) Set(key string, val FieldFragment)
- func (om *FieldFragmentOrderedMap) SetDuplicate(key string, val FieldFragment) error
- func (om *FieldFragmentOrderedMap) Size() int
- func (om *FieldFragmentOrderedMap) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (om *FieldFragmentOrderedMap) Values() []FieldFragment
- type FieldFragmentOrderedMapEntity
- type Funcs
- type NamedNode
- type NamedTokenType
- type NamelessNode
- type Node
- type NodeSemaAnalysis
- type NodesValidator
- type NormalTypeNode
- type SemaResult
- type Store
- type StoreFuncsLoader
- type SuperTypeNode
Constants ¶
const ( // TemplateTypeNodes ... TemplateTypeNodes string = "nodes" // TemplateEmpty no object will pass TemplateEmpty string = "empty" )
Variables ¶
var ErrSemaAnalysis = errors.New("sema analysis error")
ErrSemaAnalysis ...
var ErrValidate = errors.New("validate error")
ErrValidate ...
Functions ¶
func MergeFuncMap ¶
MergeFuncMap merge funcMap
Types ¶
type FieldFragment ¶
FieldFragment ...
func (FieldFragment) FirstType ¶
func (f FieldFragment) FirstType() Node
FirstType return first type
type FieldFragmentOrderedMap ¶
type FieldFragmentOrderedMap struct {
// contains filtered or unexported fields
}
FieldFragmentOrderedMap preserve insert order
func MakeFieldFragmentOrderedMap ¶
func MakeFieldFragmentOrderedMap() FieldFragmentOrderedMap
MakeFieldFragmentOrderedMap ...
func (*FieldFragmentOrderedMap) Entities ¶
func (om *FieldFragmentOrderedMap) Entities() []FieldFragmentOrderedMapEntity
Entities return entities
func (*FieldFragmentOrderedMap) Get ¶
func (om *FieldFragmentOrderedMap) Get(key string) FieldFragment
Get gets ...
func (*FieldFragmentOrderedMap) Has ¶
func (om *FieldFragmentOrderedMap) Has(key string) bool
Has check key exists
func (*FieldFragmentOrderedMap) Index ¶
func (om *FieldFragmentOrderedMap) Index(i int) FieldFragment
Index ...
func (*FieldFragmentOrderedMap) MarshalYAML ¶
func (om *FieldFragmentOrderedMap) MarshalYAML() (interface{}, error)
MarshalYAML ...
func (*FieldFragmentOrderedMap) Set ¶
func (om *FieldFragmentOrderedMap) Set(key string, val FieldFragment)
Set sets ...
func (*FieldFragmentOrderedMap) SetDuplicate ¶
func (om *FieldFragmentOrderedMap) SetDuplicate(key string, val FieldFragment) error
SetDuplicate set but error if duplicate
func (*FieldFragmentOrderedMap) UnmarshalYAML ¶
func (om *FieldFragmentOrderedMap) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML ...
func (*FieldFragmentOrderedMap) Values ¶
func (om *FieldFragmentOrderedMap) Values() []FieldFragment
Values get values
type FieldFragmentOrderedMapEntity ¶
type FieldFragmentOrderedMapEntity struct { Key string Val FieldFragment }
FieldFragmentOrderedMapEntity key value pair
type NamedNode ¶
type NamedNode interface { Node // contains filtered or unexported methods }
NamedNode ...
type NamedTokenType ¶
type NamedTokenType struct { Type string // contains filtered or unexported fields }
NamedTokenType represents complex token node
type NamelessNode ¶
type NamelessNode struct { Type string // contains filtered or unexported fields }
NamelessNode ...
func (*NamelessNode) GetQuotedType ¶
func (n *NamelessNode) GetQuotedType() string
GetQuotedType get quoted type
type Node ¶
type Node interface { GetType() string // contains filtered or unexported methods }
Node ...
type NodeSemaAnalysis ¶
type NodeSemaAnalysis struct{}
NodeSemaAnalysis ...
func (*NodeSemaAnalysis) Analysis ¶
func (ns *NodeSemaAnalysis) Analysis(nodes []Node) (res *SemaResult, err error)
Analysis do sema analysis
type NodesValidator ¶
type NodesValidator struct{}
NodesValidator ...
func (*NodesValidator) Validate ¶
func (nv *NodesValidator) Validate(nodes []Node) (err error)
Validate checks valid
type NormalTypeNode ¶
type NormalTypeNode struct { Type string // Children merge into fields Fields FieldFragmentOrderedMap // contains filtered or unexported fields }
NormalTypeNode ...
func (*NormalTypeNode) Children ¶
func (n *NormalTypeNode) Children() FieldFragment
Children return children
func (*NormalTypeNode) MustFirstField ¶
func (n *NormalTypeNode) MustFirstField() FieldFragment
MustFirstField return first field, if fields have more than one, then panic
type SemaResult ¶
type SemaResult struct { // inverted index query type's super type SuperTypeQueryTab map[string]*SuperTypeNode // get all subtypes by super type SubTypesQueryTable map[string][]Node }
SemaResult contains semantic info
type Store ¶
type Store struct {
// contains filtered or unexported fields
}
Store impls codegen.TypeStore
func (*Store) GetObjectIterator ¶
GetObjectIterator get iterator for object
func (*Store) LeafSubTypes ¶
func (t *Store) LeafSubTypes(node *SuperTypeNode) []Node
LeafSubTypes return all leaf sub types from super type
func (*Store) SuperTypeOf ¶
func (t *Store) SuperTypeOf(node NamedNode) *SuperTypeNode
SuperTypeOf return node's super type, if none, panic
type StoreFuncsLoader ¶
type StoreFuncsLoader struct {
// contains filtered or unexported fields
}
StoreFuncsLoader loader for Store and Funcs
func NewStoreFuncsLoader ¶
func NewStoreFuncsLoader(nodes []Node, sema *SemaResult) *StoreFuncsLoader
NewStoreFuncsLoader ...
func (*StoreFuncsLoader) LoadFuncs ¶
func (l *StoreFuncsLoader) LoadFuncs() (template.FuncMap, error)
LoadFuncs impl codegen.FuncsLoader
func (*StoreFuncsLoader) LoadStore ¶
func (l *StoreFuncsLoader) LoadStore() (codegen.TypeStore, error)
LoadStore impl codegen.StoreLoader
type SuperTypeNode ¶
SuperTypeNode ...