MCPcopy Create free account
hub / github.com/drone/envsubst / parseLenFunc

Method parseLenFunc

parse/parse.go:356–378  ·  view source on GitHub ↗

parses the ${#param} string function

()

Source from the content-addressed store, hash-verified

354
355// parses the ${#param} string function
356func (t *Tree) parseLenFunc() (Node, error) {
357 node := new(FuncNode)
358
359 t.scanner.accept = acceptOneHash
360 t.scanner.mode = scanIdent
361 switch t.scanner.scan() {
362 case tokenIdent:
363 node.Name = t.scanner.string()
364 default:
365 return nil, ErrBadSubstitution
366 }
367
368 t.scanner.accept = acceptIdent
369 t.scanner.mode = scanIdent
370 switch t.scanner.scan() {
371 case tokenIdent:
372 node.Param = t.scanner.string()
373 default:
374 return nil, ErrBadSubstitution
375 }
376
377 return node, t.consumeRbrack()
378}
379
380// consumeRbrack consumes a right closing bracket. If a closing
381// bracket token is not consumed an ErrBadSubstitution is returned.

Callers 1

parseFuncMethod · 0.95

Calls 3

consumeRbrackMethod · 0.95
scanMethod · 0.80
stringMethod · 0.80

Tested by

no test coverage detected