github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/lang/expressions/parse_bareword.go (about) 1 package expressions 2 3 func isBareChar(r rune) bool { 4 return r == '_' || r == '.' || 5 (r >= 'a' && 'z' >= r) || 6 (r >= 'A' && 'Z' >= r) || 7 (r >= '0' && '9' >= r) 8 } 9 10 func (tree *ParserT) parseBareword() []rune { 11 i := tree.charPos + 1 12 13 for ; i < len(tree.expression); i++ { 14 switch { 15 case isBareChar(tree.expression[i]): 16 // valid bareword character 17 18 default: 19 // not a valid bareword character 20 goto endBareword 21 } 22 } 23 24 endBareword: 25 value := tree.expression[tree.charPos:i] 26 tree.charPos = i 27 return value 28 }