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  }