// Copyright 2009 The Go Authors. All rights reserved. | |
// Use of this source code is governed by a BSD-style | |
// license that can be found in the LICENSE file. | |
package http | |
// This file deals with lexical matters of HTTP | |
var isTokenTable = [127]bool{ | |
'!': true, | |
'#': true, | |
'$': true, | |
'%': true, | |
'&': true, | |
'\'': true, | |
'*': true, | |
'+': true, | |
'-': true, | |
'.': true, | |
'0': true, | |
'1': true, | |
'2': true, | |
'3': true, | |
'4': true, | |
'5': true, | |
'6': true, | |
'7': true, | |
'8': true, | |
'9': true, | |
'A': true, | |
'B': true, | |
'C': true, | |
'D': true, | |
'E': true, | |
'F': true, | |
'G': true, | |
'H': true, | |
'I': true, | |
'J': true, | |
'K': true, | |
'L': true, | |
'M': true, | |
'N': true, | |
'O': true, | |
'P': true, | |
'Q': true, | |
'R': true, | |
'S': true, | |
'T': true, | |
'U': true, | |
'W': true, | |
'V': true, | |
'X': true, | |
'Y': true, | |
'Z': true, | |
'^': true, | |
'_': true, | |
'`': true, | |
'a': true, | |
'b': true, | |
'c': true, | |
'd': true, | |
'e': true, | |
'f': true, | |
'g': true, | |
'h': true, | |
'i': true, | |
'j': true, | |
'k': true, | |
'l': true, | |
'm': true, | |
'n': true, | |
'o': true, | |
'p': true, | |
'q': true, | |
'r': true, | |
's': true, | |
't': true, | |
'u': true, | |
'v': true, | |
'w': true, | |
'x': true, | |
'y': true, | |
'z': true, | |
'|': true, | |
'~': true, | |
} | |
func isToken(r rune) bool { | |
i := int(r) | |
return i < len(isTokenTable) && isTokenTable[i] | |
} | |
func isNotToken(r rune) bool { | |
return !isToken(r) | |
} |