github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/pkg/scanners/azure/arm/parser/armjson/parse_boolean.go (about) 1 package armjson 2 3 import ( 4 "fmt" 5 6 "github.com/khulnasoft-lab/defsec/pkg/types" 7 ) 8 9 var trueRunes = []rune("true") 10 var falseRunes = []rune("false") 11 12 func (p *parser) parseBoolean(parentMetadata *types.Metadata) (Node, error) { 13 14 n, _ := p.newNode(KindBoolean, parentMetadata) 15 16 r, err := p.peeker.Peek() 17 if err != nil { 18 return nil, err 19 } 20 21 if r == 't' { 22 for _, expected := range trueRunes { 23 if !p.swallowIfEqual(expected) { 24 return nil, fmt.Errorf("unexpected character in boolean value") 25 } 26 } 27 n.raw = true 28 n.end = p.position 29 return n, err 30 } 31 32 for _, expected := range falseRunes { 33 if !p.swallowIfEqual(expected) { 34 return nil, fmt.Errorf("unexpected character in boolean value") 35 } 36 } 37 n.raw = false 38 n.end = p.position 39 return n, nil 40 }