github.com/hirochachacha/plua@v0.0.0-20170217012138-c82f520cc725/internal/pattern/pred.go (about) 1 package pattern 2 3 func isAlphaNum(r rune) bool { 4 return isLetter(r) || isDigit(r) 5 } 6 7 func isLetter(r rune) bool { 8 return (uint(r)|32)-'a' < 26 9 } 10 11 func isControl(r rune) bool { 12 return uint(r) < 0x20 || r == 0x7f 13 } 14 15 func isDigit(r rune) bool { 16 return uint(r)-'0' < 10 17 } 18 19 func isGraphic(r rune) bool { 20 return uint(r)-0x21 < 0x5e 21 } 22 23 func isLower(r rune) bool { 24 return uint(r)-'a' < 26 25 } 26 27 func isPrint(r rune) bool { 28 return uint(r)-0x20 < 0x5f 29 } 30 31 func isPunct(r rune) bool { 32 return isGraphic(r) && !isAlphaNum(r) 33 } 34 35 func isSpace(r rune) bool { 36 return r == ' ' || uint(r)-'\t' < 5 37 } 38 39 func isUpper(r rune) bool { 40 return uint(r)-'A' < 26 41 } 42 43 func isHexDigit(r rune) bool { 44 return isDigit(r) || (uint(r)|32)-'a' < 6 45 }