func newOutput(p *core.Parser) (core.Code, error) { p.ForwardBy(2) // skip the {{ value, err := p.ReadValue() if err != nil || value == nil { return nil, err } filters, err := p.ReadFilters() if err != nil { return nil, err } p.SkipPastOutput() return &Output{value, filters}, nil }
// Creates an assign tag func AssignFactory(p *core.Parser, config *core.Configuration) (core.Tag, error) { name := p.ReadName() if len(name) == 0 { return nil, p.Error("Invalid variable name in assign tag") } if p.SkipUntil('=') != '=' { return nil, p.Error("Invalid assign, missing '=' ") } p.Forward() value, err := p.ReadValue() if err != nil { return nil, err } filters, err := p.ReadFilters() if err != nil { return nil, err } p.SkipPastTag() return &Assign{name, value, filters}, nil }