Documentation
¶
Overview ¶
パッケージparseは、text/templateおよびhtml/templateで定義されているテンプレートのパースツリーを構築します。 クライアントは、一般的な使用を目的としていない共有内部データ構造を提供するこのパッケージではなく、 それらのパッケージを使用してテンプレートを構築する必要があります。
Index ¶
- func IsEmptyTree(n Node) bool
- func Parse(name, text, leftDelim, rightDelim string, funcs ...map[string]any) (map[string]*Tree, error)
- type ActionNode
- type BoolNode
- type BranchNode
- type BreakNode
- type ChainNode
- type CommandNode
- type CommentNode
- type ContinueNode
- type DotNode
- type FieldNode
- type IdentifierNode
- type IfNode
- type ListNode
- type Mode
- type NilNode
- type Node
- type NodeType
- type NumberNode
- type PipeNode
- type Pos
- type RangeNode
- type StringNode
- type TemplateNode
- type TextNode
- type Tree
- type VariableNode
- type WithNode
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsEmptyTree ¶
IsEmptyTreeは、このツリー(ノード)がスペースまたはコメント以外のすべてが空であるかどうかを報告します。
Types ¶
type ActionNode ¶
type ActionNode struct { NodeType Pos Line int Pipe *PipeNode // contains filtered or unexported fields }
ActionNodeはアクション(デリミタで区切られた何か)を保持します。 制御アクションはそれぞれが独自のノードを持ち、ActionNodeはフィールド評価や 括弧付きパイプラインのような単純なものを表します。
func (*ActionNode) Copy ¶
func (a *ActionNode) Copy() Node
func (*ActionNode) String ¶
func (a *ActionNode) String() string
type BranchNode ¶
type BranchNode struct { NodeType Pos Line int Pipe *PipeNode List *ListNode ElseList *ListNode // contains filtered or unexported fields }
BranchNodeは、if、range、およびwithの共通の表現です。
func (*BranchNode) Copy ¶ added in v1.4.0
func (b *BranchNode) Copy() Node
func (*BranchNode) String ¶
func (b *BranchNode) String() string
type ChainNode ¶ added in v1.1.0
type ChainNode struct { NodeType Pos Node Node Field []string // contains filtered or unexported fields }
ChainNodeは、フィールドアクセスのチェーン('.'で始まる識別子)に続く項を保持します。 名前はチェーン可能です('.x.y'など)。 各識別子からピリオドは削除されます。
type CommandNode ¶
CommandNodeは、コマンド(評価アクション内のパイプライン)を保持します。
func (*CommandNode) Copy ¶
func (c *CommandNode) Copy() Node
func (*CommandNode) String ¶
func (c *CommandNode) String() string
type CommentNode ¶ added in v1.16.0
CommentNode holds a comment.
func (*CommentNode) Copy ¶ added in v1.16.0
func (c *CommentNode) Copy() Node
func (*CommentNode) String ¶ added in v1.16.0
func (c *CommentNode) String() string
type ContinueNode ¶ added in v1.18.0
ContinueNodeは{{continue}}アクションを表します。
func (*ContinueNode) Copy ¶ added in v1.18.0
func (c *ContinueNode) Copy() Node
func (*ContinueNode) String ¶ added in v1.18.0
func (c *ContinueNode) String() string
type IdentifierNode ¶
CommandNodeは、コマンド(評価アクション内のパイプライン)を保持します。
func NewIdentifier ¶
func NewIdentifier(ident string) *IdentifierNode
NewIdentifierは、指定された識別子名を持つ新しいIdentifierNodeを返します。
func (*IdentifierNode) Copy ¶
func (i *IdentifierNode) Copy() Node
func (*IdentifierNode) SetPos ¶ added in v1.1.0
func (i *IdentifierNode) SetPos(pos Pos) *IdentifierNode
SetPosは位置を設定します。NewIdentifierは公開メソッドなので、そのシグネチャを変更することはできません。 便宜上チェーン化されています。 TODO: いつか修正する?
func (*IdentifierNode) SetTree ¶ added in v1.4.0
func (i *IdentifierNode) SetTree(t *Tree) *IdentifierNode
SetTreeは、ノードの親ツリーを設定します。NewIdentifierは公開メソッドなので、そのシグネチャを変更することはできません。 便宜上チェーン化されています。 TODO: いつか修正する?
func (*IdentifierNode) String ¶
func (i *IdentifierNode) String() string
type Node ¶
type Node interface { Type() NodeType String() string Copy() Node Position() Pos // contains filtered or unexported methods }
Nodeはパースツリーの要素です。インターフェースは極めて単純です。 インターフェースには未エクスポートのメソッドが含まれているため、 このパッケージのローカルタイプのみがそれを満たすことができます。
type NumberNode ¶
type NumberNode struct { NodeType Pos IsInt bool IsUint bool IsFloat bool IsComplex bool Int64 int64 Uint64 uint64 Float64 float64 Complex128 complex128 Text string // contains filtered or unexported fields }
NumberNodeは、符号付きまたは符号なしの整数、浮動小数点数、または複素数を保持します。 値は解析され、その値を表現できるすべての型の下に格納されます。 これはGoの理想的な定数の振る舞いを少量のコードでシミュレートします。
func (*NumberNode) Copy ¶
func (n *NumberNode) Copy() Node
func (*NumberNode) String ¶
func (n *NumberNode) String() string
type PipeNode ¶
type PipeNode struct { NodeType Pos Line int IsAssign bool Decl []*VariableNode Cmds []*CommandNode // contains filtered or unexported fields }
PipeNodeは、オプションの宣言を持つパイプラインを保持します。
type StringNode ¶
type StringNode struct { NodeType Pos Quoted string Text string // contains filtered or unexported fields }
StringNodeは文字列定数を保持します。値は"引用符を外され"ています。
func (*StringNode) Copy ¶
func (s *StringNode) Copy() Node
func (*StringNode) String ¶
func (s *StringNode) String() string
type TemplateNode ¶
type TemplateNode struct { NodeType Pos Line int Name string Pipe *PipeNode // contains filtered or unexported fields }
TemplateNodeは{{template}}アクションを表します。
func (*TemplateNode) Copy ¶
func (t *TemplateNode) Copy() Node
func (*TemplateNode) String ¶
func (t *TemplateNode) String() string
type Tree ¶
type Tree struct { Name string ParseName string Root *ListNode Mode Mode // contains filtered or unexported fields }
Tree is the representation of a single parsed template.
func (*Tree) ErrorContext ¶ added in v1.1.0
ErrorContextは、入力テキスト内のノードの位置のテキスト表現を返します。 受信者は、ノードが内部にツリーへのポインタを持っていない場合にのみ使用されます。 これは古いコードで発生する可能性があります。
type VariableNode ¶
VariableNodeは、チェーンフィールドへのアクセスが可能な変数名のリストを保持します。 ドル記号は(最初の)名前の一部です。
func (*VariableNode) Copy ¶
func (v *VariableNode) Copy() Node
func (*VariableNode) String ¶
func (v *VariableNode) String() string