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