template

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Mar 1, 2019 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AnnotationComment structmeta.AnnotationName = "comment"
	AnnotationCode    structmeta.AnnotationName = "template/code"
	AnnotationValue   structmeta.AnnotationName = "template/value"
)

Variables

View Source
var (
	NodeTagRoot = NodeTag{-100}
)

Functions

func NewCompiledTemplateMultiError

func NewCompiledTemplateMultiError(err error, loader CompiledTemplateLoader) error

Types

type Ancestors

type Ancestors struct {
	// contains filtered or unexported fields
}

func NewAncestors

func NewAncestors(nodeNumToParentNum map[NodeTag]NodeTag) Ancestors

func (Ancestors) FindCommonParentTag

func (e Ancestors) FindCommonParentTag(currTag, newTag NodeTag) NodeTag

func (Ancestors) FindParentTag

func (e Ancestors) FindParentTag(tag NodeTag) NodeTag

type CompiledTemplate

type CompiledTemplate struct {
	// contains filtered or unexported fields
}

func NewCompiledTemplate

func NewCompiledTemplate(name string, code []TemplateLine,
	instructions *InstructionSet, nodes *Nodes,
	evalDialects EvaluationCtxDialects) *CompiledTemplate

func (*CompiledTemplate) Code

func (e *CompiledTemplate) Code() []TemplateLine

func (*CompiledTemplate) CodeAsString

func (e *CompiledTemplate) CodeAsString() string

func (*CompiledTemplate) CodeAtLine

func (e *CompiledTemplate) CodeAtLine(pos *filepos.Position) *TemplateLine

func (*CompiledTemplate) DebugCodeAsString

func (e *CompiledTemplate) DebugCodeAsString() string

func (*CompiledTemplate) Eval

func (e *CompiledTemplate) Eval(thread *starlark.Thread, loader CompiledTemplateLoader) (
	starlark.StringDict, interface{}, error)

func (*CompiledTemplate) TplReplaceNode

func (e *CompiledTemplate) TplReplaceNode(
	thread *starlark.Thread, f *starlark.Builtin,
	args starlark.Tuple, kwargs []starlark.Tuple) (starlark.Value, error)

type CompiledTemplateError

type CompiledTemplateError struct {
	Positions []CompiledTemplateErrorPosition
	Msg       string
}

type CompiledTemplateErrorPosition

type CompiledTemplateErrorPosition struct {
	Filename     string
	ContextName  string
	TemplateLine *TemplateLine
}

type CompiledTemplateMultiError

type CompiledTemplateMultiError struct {
	// contains filtered or unexported fields
}

func (CompiledTemplateMultiError) Error

type EvaluationCtx

type EvaluationCtx struct {
	// contains filtered or unexported fields
}

func (*EvaluationCtx) RootNode

func (e *EvaluationCtx) RootNode() interface{}

func (*EvaluationCtx) RootNodeAsStarlarkValue

func (e *EvaluationCtx) RootNodeAsStarlarkValue() starlark.Value

func (*EvaluationCtx) TplCollectNodeAnnotation

func (e *EvaluationCtx) TplCollectNodeAnnotation(
	thread *starlark.Thread, f *starlark.Builtin,
	args starlark.Tuple, kwargs []starlark.Tuple) (starlark.Value, error)

args(args..., kwargs...)

func (*EvaluationCtx) TplReplace

func (e *EvaluationCtx) TplReplace(thread *starlark.Thread, _ *starlark.Builtin, args starlark.Tuple, kwargs []starlark.Tuple) (starlark.Value, error)

func (*EvaluationCtx) TplSetNode

func (e *EvaluationCtx) TplSetNode(thread *starlark.Thread, _ *starlark.Builtin, args starlark.Tuple, kwargs []starlark.Tuple) (starlark.Value, error)

args(nodeTag, value Value)

func (*EvaluationCtx) TplStartNode

func (e *EvaluationCtx) TplStartNode(
	thread *starlark.Thread, _ *starlark.Builtin,
	args starlark.Tuple, kwargs []starlark.Tuple) (starlark.Value, error)

args(nodeTag)

func (*EvaluationCtx) TplStartNodeAnnotation

func (e *EvaluationCtx) TplStartNodeAnnotation(
	thread *starlark.Thread, f *starlark.Builtin,
	args starlark.Tuple, kwargs []starlark.Tuple) (starlark.Value, error)

args(nodeTag, name, values)

type EvaluationCtxDialect

type EvaluationCtxDialect interface {
	PrepareNode(parentNode EvaluationNode, val EvaluationNode) error
	Replace(parentNodes []EvaluationNode, val interface{}) error
	ShouldWrapRootValue(val interface{}) bool
	WrapRootValue(val interface{}) interface{}
}

type EvaluationCtxDialectName

type EvaluationCtxDialectName string

type EvaluationNode

type EvaluationNode interface {
	GetValues() []interface{}
	SetValue(interface{}) error
	AddValue(interface{}) error
	ResetValue()
	GetAnnotations() interface{}
	SetAnnotations(interface{})
	DeepCopyAsInterface() interface{} // expects that result implements EvaluationNode
}

type Instruction

type Instruction struct {
	// contains filtered or unexported fields
}

func (Instruction) AsString

func (i Instruction) AsString() string

func (Instruction) Op

func (i Instruction) Op() InstructionOp

func (Instruction) WithDebug

func (i Instruction) WithDebug(info string) Instruction

type InstructionOp

type InstructionOp struct {
	Name string
}

func (InstructionOp) WithArgs

func (op InstructionOp) WithArgs(args ...string) Instruction

type InstructionSet

type InstructionSet struct {
	SetCtxType            InstructionOp
	StartCtx              InstructionOp
	EndCtx                InstructionOp
	StartNodeAnnotation   InstructionOp
	CollectNodeAnnotation InstructionOp
	StartNode             InstructionOp
	SetNode               InstructionOp
	ReplaceNode           InstructionOp
}

func NewInstructionSet

func NewInstructionSet() *InstructionSet

func (*InstructionSet) NewCode

func (is *InstructionSet) NewCode(code string) Instruction

func (*InstructionSet) NewEndCtx

func (is *InstructionSet) NewEndCtx() Instruction

func (*InstructionSet) NewEndCtxNone

func (is *InstructionSet) NewEndCtxNone() Instruction

func (*InstructionSet) NewSetCtxType

func (is *InstructionSet) NewSetCtxType(dialect EvaluationCtxDialectName) Instruction

func (*InstructionSet) NewSetNode

func (is *InstructionSet) NewSetNode(nodeTag NodeTag) Instruction

func (*InstructionSet) NewSetNodeValue

func (is *InstructionSet) NewSetNodeValue(nodeTag NodeTag, code string) Instruction

func (*InstructionSet) NewStartCtx

func (is *InstructionSet) NewStartCtx(dialect EvaluationCtxDialectName) Instruction

func (*InstructionSet) NewStartNode

func (is *InstructionSet) NewStartNode(nodeTag NodeTag) Instruction

func (*InstructionSet) NewStartNodeAnnotation

func (is *InstructionSet) NewStartNodeAnnotation(nodeTag NodeTag, ann structmeta.Annotation) Instruction

type NodeAnnotation

type NodeAnnotation struct {
	Args   starlark.Tuple
	Kwargs []starlark.Tuple
}

type NodeAnnotations

type NodeAnnotations map[structmeta.AnnotationName]NodeAnnotation

TODO change to struct

func NewAnnotations

func NewAnnotations(node EvaluationNode) NodeAnnotations

func (NodeAnnotations) Args

func (NodeAnnotations) DeepCopy

func (as NodeAnnotations) DeepCopy() NodeAnnotations

func (NodeAnnotations) DeepCopyAsInterface

func (as NodeAnnotations) DeepCopyAsInterface() interface{}

func (NodeAnnotations) DeleteNs

func (as NodeAnnotations) DeleteNs(ns structmeta.AnnotationNs)

func (NodeAnnotations) Has

func (NodeAnnotations) Kwargs

type NodeTag

type NodeTag struct {
	// contains filtered or unexported fields
}

func NewNodeTag

func NewNodeTag(id int) NodeTag

func NewNodeTagFromStarlarkValue

func NewNodeTagFromStarlarkValue(val starlark.Value) (NodeTag, error)

func (NodeTag) AsString

func (t NodeTag) AsString() string

func (NodeTag) Equals

func (t NodeTag) Equals(other NodeTag) bool

func (NodeTag) String

func (t NodeTag) String() string

type Nodes

type Nodes struct {
	// contains filtered or unexported fields
}

func NewNodes

func NewNodes() *Nodes

func (*Nodes) AddNode

func (n *Nodes) AddNode(node EvaluationNode, parentTag NodeTag) NodeTag

func (*Nodes) AddRootNode

func (n *Nodes) AddRootNode(node EvaluationNode) NodeTag

func (*Nodes) Ancestors

func (n *Nodes) Ancestors() Ancestors

func (*Nodes) FindNode

func (n *Nodes) FindNode(tag NodeTag) (EvaluationNode, bool)

type NoopCompiledTemplateLoader

type NoopCompiledTemplateLoader struct{}

func (NoopCompiledTemplateLoader) FindCompiledTemplate

func (l NoopCompiledTemplateLoader) FindCompiledTemplate(_ string) (*CompiledTemplate, error)

func (NoopCompiledTemplateLoader) ListData

func (NoopCompiledTemplateLoader) Load

func (NoopCompiledTemplateLoader) LoadData

type ProgramAST

type ProgramAST struct {
	// contains filtered or unexported fields
}

func NewProgramAST

func NewProgramAST(f *syntax.File, instructions *InstructionSet) *ProgramAST

func (*ProgramAST) InsertTplCtxs

func (r *ProgramAST) InsertTplCtxs()

type SourceLine

type SourceLine struct {
	Position *filepos.Position
	Content  string
}

type TemplateLine

type TemplateLine struct {
	Instruction Instruction
	SourceLine  *SourceLine
}

func NewCodeFromBytes

func NewCodeFromBytes(bs []byte, instructions *InstructionSet) []TemplateLine

func NewCodeFromBytesAtPosition

func NewCodeFromBytesAtPosition(bs []byte, pos *filepos.Position, instructions *InstructionSet) []TemplateLine

func (*TemplateLine) Position

func (l *TemplateLine) Position() *filepos.Position

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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