MCPcopy
hub / github.com/valyala/quicktemplate / parseOutputTag

Method parseOutputTag

parser/parser.go:708–733  ·  view source on GitHub ↗
(tagNameStr string, prec int)

Source from the content-addressed store, hash-verified

706}
707
708func (p *parser) parseOutputTag(tagNameStr string, prec int) error {
709 s := p.s
710 t, err := expectTagContents(s)
711 if err != nil {
712 return err
713 }
714 if err = validateOutputTagValue(t.Value); err != nil {
715 return fmt.Errorf("invalid output tag value at %s: %s", s.Context(), err)
716 }
717 filter := "N"
718 switch tagNameStr {
719 case "s", "v", "q", "z", "j", "sz", "qz", "jz":
720 filter = "E"
721 }
722 if strings.HasSuffix(tagNameStr, "=") {
723 tagNameStr = tagNameStr[:len(tagNameStr)-1]
724 }
725 if tagNameStr == "f" && prec >= 0 {
726 p.Printf("qw%s.N().FPrec(%s, %d)", mangleSuffix, t.Value, prec)
727 } else {
728 tagNameStr = strings.ToUpper(tagNameStr)
729 p.Printf("qw%s.%s().%s(%s)", mangleSuffix, filter, tagNameStr, t.Value)
730 }
731
732 return nil
733}
734
735func (p *parser) parseOutputFunc(tagNameStr string) error {
736 s := p.s

Callers 1

tryParseCommonTagsMethod · 0.95

Calls 4

PrintfMethod · 0.95
expectTagContentsFunction · 0.85
validateOutputTagValueFunction · 0.85
ContextMethod · 0.80

Tested by

no test coverage detected