MCPcopy Create free account
hub / github.com/netdata/netdata / Parse

Function Parse

src/go/pkg/selectorcore/parse.go:18–41  ·  view source on GitHub ↗

Parse parses one selector expression.

(expr string)

Source from the content-addressed store, hash-verified

16
17// Parse parses one selector expression.
18func Parse(expr string) (Selector, error) {
19 terms, err := splitSelectorTerms(unsugarExpr(expr))
20 if err != nil {
21 return nil, err
22 }
23
24 srs := make([]Selector, 0, len(terms))
25 for _, term := range terms {
26 sr, err := parseSelector(term)
27 if err != nil {
28 return nil, err
29 }
30 srs = append(srs, sr)
31 }
32
33 switch len(srs) {
34 case 0:
35 return nil, nil
36 case 1:
37 return srs[0], nil
38 default:
39 return And(srs[0], srs[1], srs[2:]...), nil
40 }
41}
42
43func parseSelector(line string) (Selector, error) {
44 sub := reLV.FindStringSubmatch(strings.TrimSpace(line))

Callers 3

TestParseScenariosFunction · 0.70
parseSelectorListFunction · 0.70

Calls 4

splitSelectorTermsFunction · 0.85
unsugarExprFunction · 0.85
parseSelectorFunction · 0.70
AndFunction · 0.70

Tested by 2

TestParseScenariosFunction · 0.56

Used in the wild real call sites across dependent graphs

searching dependent graphs…