type text/template/parse.Tree
128 uses
text/template/parse (current package)
node.go#L30: tree() *Tree
node.go#L84: tr *Tree
node.go#L88: func (t *Tree) newList(pos Pos) *ListNode {
node.go#L96: func (l *ListNode) tree() *Tree {
node.go#L131: tr *Tree
node.go#L135: func (t *Tree) newText(pos Pos, text string) *TextNode {
node.go#L147: func (t *TextNode) tree() *Tree {
node.go#L159: tr *Tree
node.go#L163: func (t *Tree) newComment(pos Pos, text string) *CommentNode {
node.go#L179: func (c *CommentNode) tree() *Tree {
node.go#L191: tr *Tree
node.go#L198: func (t *Tree) newPipeline(pos Pos, line int, vars []*VariableNode) *PipeNode {
node.go#L230: func (p *PipeNode) tree() *Tree {
node.go#L260: tr *Tree
node.go#L265: func (t *Tree) newAction(pos Pos, line int, pipe *PipeNode) *ActionNode {
node.go#L281: func (a *ActionNode) tree() *Tree {
node.go#L294: tr *Tree
node.go#L298: func (t *Tree) newCommand(pos Pos) *CommandNode {
node.go#L327: func (c *CommandNode) tree() *Tree {
node.go#L346: tr *Tree
node.go#L366: func (i *IdentifierNode) SetTree(t *Tree) *IdentifierNode {
node.go#L379: func (i *IdentifierNode) tree() *Tree {
node.go#L392: tr *Tree
node.go#L396: func (t *Tree) newVariable(pos Pos, ident string) *VariableNode {
node.go#L415: func (v *VariableNode) tree() *Tree {
node.go#L427: tr *Tree
node.go#L430: func (t *Tree) newDot(pos Pos) *DotNode {
node.go#L449: func (d *DotNode) tree() *Tree {
node.go#L461: tr *Tree
node.go#L464: func (t *Tree) newNil(pos Pos) *NilNode {
node.go#L483: func (n *NilNode) tree() *Tree {
node.go#L497: tr *Tree
node.go#L501: func (t *Tree) newField(pos Pos, ident string) *FieldNode {
node.go#L518: func (f *FieldNode) tree() *Tree {
node.go#L532: tr *Tree
node.go#L537: func (t *Tree) newChain(pos Pos, node Node) *ChainNode {
node.go#L573: func (c *ChainNode) tree() *Tree {
node.go#L585: tr *Tree
node.go#L589: func (t *Tree) newBool(pos Pos, true bool) *BoolNode {
node.go#L604: func (b *BoolNode) tree() *Tree {
node.go#L618: tr *Tree
node.go#L630: func (t *Tree) newNumber(pos Pos, text string, typ itemType) (*NumberNode, error) {
node.go#L741: func (n *NumberNode) tree() *Tree {
node.go#L755: tr *Tree
node.go#L760: func (t *Tree) newString(pos Pos, orig, text string) *StringNode {
node.go#L772: func (s *StringNode) tree() *Tree {
node.go#L785: tr *Tree
node.go#L788: func (t *Tree) newEnd(pos Pos) *endNode {
node.go#L800: func (e *endNode) tree() *Tree {
node.go#L812: tr *Tree
node.go#L816: func (t *Tree) newElse(pos Pos, line int) *elseNode {
node.go#L832: func (e *elseNode) tree() *Tree {
node.go#L844: tr *Tree
node.go#L882: func (b *BranchNode) tree() *Tree {
node.go#L904: func (t *Tree) newIf(pos Pos, line int, pipe *PipeNode, list, elseList *ListNode) *IfNode {
node.go#L914: tr *Tree
node.go#L920: func (t *Tree) newBreak(pos Pos, line int) *BreakNode {
node.go#L926: func (b *BreakNode) tree() *Tree { return b.tr }
node.go#L931: tr *Tree
node.go#L937: func (t *Tree) newContinue(pos Pos, line int) *ContinueNode {
node.go#L943: func (c *ContinueNode) tree() *Tree { return c.tr }
node.go#L951: func (t *Tree) newRange(pos Pos, line int, pipe *PipeNode, list, elseList *ListNode) *RangeNode {
node.go#L964: func (t *Tree) newWith(pos Pos, line int, pipe *PipeNode, list, elseList *ListNode) *WithNode {
node.go#L976: tr *Tree
node.go#L982: func (t *Tree) newTemplate(pos Pos, line int, name string, pipe *PipeNode) *TemplateNode {
node.go#L1002: func (t *TemplateNode) tree() *Tree {
parse.go#L20: type Tree struct {
parse.go#L32: treeSet map[string]*Tree
parse.go#L46: func (t *Tree) Copy() *Tree {
parse.go#L50: return &Tree{
parse.go#L62: func Parse(name, text, leftDelim, rightDelim string, funcs ...map[string]any) (map[string]*Tree, error) {
parse.go#L63: treeSet := make(map[string]*Tree)
parse.go#L71: func (t *Tree) next() item {
parse.go#L81: func (t *Tree) backup() {
parse.go#L87: func (t *Tree) backup2(t1 item) {
parse.go#L94: func (t *Tree) backup3(t2, t1 item) { // Reverse order: we're pushing back.
parse.go#L101: func (t *Tree) peek() item {
parse.go#L111: func (t *Tree) nextNonSpace() (token item) {
parse.go#L122: func (t *Tree) peekNonSpace() item {
parse.go#L131: func New(name string, funcs ...map[string]any) *Tree {
parse.go#L132: return &Tree{
parse.go#L141: func (t *Tree) ErrorContext(n Node) (location, context string) {
parse.go#L161: func (t *Tree) errorf(format string, args ...any) {
parse.go#L168: func (t *Tree) error(err error) {
parse.go#L173: func (t *Tree) expect(expected itemType, context string) item {
parse.go#L182: func (t *Tree) expectOneOf(expected1, expected2 itemType, context string) item {
parse.go#L191: func (t *Tree) unexpected(token item, context string) {
parse.go#L206: func (t *Tree) recover(errp *error) {
parse.go#L221: func (t *Tree) startParse(funcs []map[string]any, lex *lexer, treeSet map[string]*Tree) {
parse.go#L232: func (t *Tree) stopParse() {
parse.go#L243: func (t *Tree) Parse(text, leftDelim, rightDelim string, treeSet map[string]*Tree, funcs ...map[string]any) (tree *Tree, err error) {
parse.go#L256: func (t *Tree) add() {
parse.go#L297: func (t *Tree) parse() {
parse.go#L325: func (t *Tree) parseDefinition() {
parse.go#L346: func (t *Tree) itemList() (list *ListNode, next Node) {
parse.go#L362: func (t *Tree) textOrAction() Node {
parse.go#L378: func (t *Tree) clearActionLine() {
parse.go#L387: func (t *Tree) action() (n Node) {
parse.go#L417: func (t *Tree) breakControl(pos Pos, line int) Node {
parse.go#L430: func (t *Tree) continueControl(pos Pos, line int) Node {
parse.go#L442: func (t *Tree) pipeline(context string, end itemType) (pipe *PipeNode) {
parse.go#L497: func (t *Tree) checkPipeline(pipe *PipeNode, context string) {
parse.go#L512: func (t *Tree) parseControl(allowElseIf bool, context string) (pos Pos, line int, pipe *PipeNode, list, elseList *ListNode) {
parse.go#L555: func (t *Tree) ifControl() Node {
parse.go#L563: func (t *Tree) rangeControl() Node {
parse.go#L572: func (t *Tree) withControl() Node {
parse.go#L579: func (t *Tree) endControl() Node {
parse.go#L586: func (t *Tree) elseControl() Node {
parse.go#L602: func (t *Tree) blockControl() Node {
parse.go#L629: func (t *Tree) templateControl() Node {
parse.go#L642: func (t *Tree) parseTemplateName(token item, context string) (name string) {
parse.go#L660: func (t *Tree) command() *CommandNode {
parse.go#L691: func (t *Tree) operand() Node {
parse.go#L729: func (t *Tree) term() Node {
parse.go#L767: func (t *Tree) hasFunction(name string) bool {
parse.go#L780: func (t *Tree) popVars(n int) {
parse.go#L786: func (t *Tree) useVar(pos Pos, name string) Node {
text/template
template.go#L31: *parse.Tree
template.go#L129: func (t *Template) AddParseTree(name string, tree *parse.Tree) (*Template, error) {
template.go#L227: func (t *Template) associate(new *Template, tree *parse.Tree) bool {
html/template
error.go#L219: loc, _ := (*parse.Tree)(nil).ErrorContext(e.Node)
escape.go#L646: dt.Tree = &parse.Tree{Name: dname, Root: t.Root.CopyList()}
template.go#L29: Tree *parse.Tree
template.go#L217: func (t *Template) AddParseTree(name string, tree *parse.Tree) (*Template, error) {