...

Source file src/pkg/mime/grammar.go

     1	// Copyright 2010 The Go Authors. All rights reserved.
     2	// Use of this source code is governed by a BSD-style
     3	// license that can be found in the LICENSE file.
     4	
     5	package mime
     6	
     7	import (
     8		"strings"
     9	)
    10	
    11	// isTSpecial reports whether rune is in 'tspecials' as defined by RFC
    12	// 1521 and RFC 2045.
    13	func isTSpecial(r rune) bool {
    14		return strings.ContainsRune(`()<>@,;:\"/[]?=`, r)
    15	}
    16	
    17	// isTokenChar reports whether rune is in 'token' as defined by RFC
    18	// 1521 and RFC 2045.
    19	func isTokenChar(r rune) bool {
    20		// token := 1*<any (US-ASCII) CHAR except SPACE, CTLs,
    21		//             or tspecials>
    22		return r > 0x20 && r < 0x7f && !isTSpecial(r)
    23	}
    24	
    25	// isToken reports whether s is a 'token' as defined by RFC 1521
    26	// and RFC 2045.
    27	func isToken(s string) bool {
    28		if s == "" {
    29			return false
    30		}
    31		return strings.IndexFunc(s, isNotTokenChar) < 0
    32	}
    33	

View as plain text