3814 lines
54 KiB
Go
3814 lines
54 KiB
Go
// line 1 "zparse.rl"
|
|
package dns
|
|
|
|
// Parse RRs
|
|
// With the thankful help of gdnsd and the Go examples for Ragel.
|
|
|
|
import (
|
|
"os"
|
|
"io"
|
|
// "net"
|
|
"time"
|
|
"strings"
|
|
"strconv"
|
|
)
|
|
|
|
const _IOBUF = MaxMsgSize
|
|
|
|
// A Parser represents a DNS parser for a
|
|
// particular input stream.
|
|
type Parser struct {
|
|
// nothing here yet
|
|
buf []byte
|
|
}
|
|
|
|
type ParseError struct {
|
|
Error string
|
|
name string
|
|
line int
|
|
}
|
|
|
|
func (e *ParseError) String() string {
|
|
s := e.Error + ": \"" + e.name + "\" at line: " + strconv.Itoa(e.line)
|
|
return s
|
|
}
|
|
|
|
// NewParser creates a new DNS file parser from r.
|
|
func NewParser(r io.Reader) *Parser {
|
|
buf := make([]byte, _IOBUF)
|
|
n, err := r.Read(buf)
|
|
if err != nil {
|
|
return nil
|
|
}
|
|
if buf[n-1] != '\n' {
|
|
buf[n] = '\n'
|
|
n++
|
|
}
|
|
buf = buf[:n]
|
|
p := new(Parser)
|
|
p.buf = buf
|
|
return p
|
|
}
|
|
|
|
// Translate the RRSIG's incep. and expir. times from
|
|
// string values ("20110403154150") to an integer.
|
|
// Taking into account serial arithmetic (RFC 1982)
|
|
func dateToTime(s string) (uint32, os.Error) {
|
|
t, e := time.Parse("20060102150405", s)
|
|
if e != nil {
|
|
return 0, e
|
|
}
|
|
mod := t.Seconds() / Year68
|
|
ti := uint32(t.Seconds() - (mod * Year68))
|
|
return ti, nil
|
|
}
|
|
|
|
// Return the rdata fields as a string slice.
|
|
// All starting whitespace is deleted.
|
|
// If i is 0 no spaces are deleted from the final rdfs.
|
|
func fields(s string, i int) (rdf []string) {
|
|
rdf = strings.Fields(s)
|
|
for i, _ := range rdf {
|
|
rdf[i] = strings.TrimSpace(rdf[i])
|
|
}
|
|
if i > 0 && len(rdf) > i {
|
|
// The last rdf contained embedded spaces, glue it back together.
|
|
for j := i; j < len(rdf); j++ {
|
|
rdf[i-1] += rdf[j]
|
|
}
|
|
}
|
|
return
|
|
}
|
|
|
|
|
|
// line 86 "zparse.go"
|
|
var z_start int = 141
|
|
var z_first_final int = 141
|
|
var z_error int = 0
|
|
|
|
var z_en_main int = 141
|
|
|
|
|
|
// line 85 "zparse.rl"
|
|
|
|
|
|
// RR parses a zone file, but only returns the last RR read.
|
|
func (zp *Parser) RR() (RR, os.Error) {
|
|
z, err := zp.Zone()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return z.PopRR(), nil
|
|
}
|
|
|
|
// Zone parses an DNS master zone file.
|
|
func (zp *Parser) Zone() (z *Zone, err os.Error) {
|
|
/*
|
|
z = NewZone()
|
|
data := string(zp.buf)
|
|
cs, p, pe := 0, 0, len(data)
|
|
eof := len(data)
|
|
|
|
// brace := false
|
|
l := 1 // or... 0?
|
|
mark := 0
|
|
var hdr RR_Header
|
|
|
|
// line 119 "zparse.go"
|
|
cs = z_start
|
|
|
|
// line 122 "zparse.go"
|
|
{
|
|
if p == pe {
|
|
goto _test_eof
|
|
}
|
|
switch cs {
|
|
case -666: // i am a hack D:
|
|
tr33:
|
|
// line 3 "types.rl"
|
|
{
|
|
rdf := fields(data[mark:p], 1)
|
|
rr := new(RR_A)
|
|
rr.Hdr = hdr
|
|
rr.Hdr.Rrtype = TypeA
|
|
rr.A = net.ParseIP(rdf[0])
|
|
if rr.A == nil {
|
|
return z, &ParseError{Error: "bad A", name: rdf[0], line: l}
|
|
}
|
|
z.PushRR(rr)
|
|
}
|
|
// line 112 "zparse.rl"
|
|
{
|
|
l++
|
|
}
|
|
goto st141
|
|
tr40:
|
|
// line 15 "types.rl"
|
|
{
|
|
rdf := fields(data[mark:p], 1)
|
|
rr := new(RR_AAAA)
|
|
rr.Hdr = hdr
|
|
rr.Hdr.Rrtype = TypeAAAA
|
|
rr.AAAA = net.ParseIP(rdf[0])
|
|
if rr.AAAA == nil {
|
|
return z, &ParseError{Error: "bad AAAA", name: rdf[0], line: l}
|
|
}
|
|
z.PushRR(rr)
|
|
}
|
|
// line 112 "zparse.rl"
|
|
{
|
|
l++
|
|
}
|
|
goto st141
|
|
tr50:
|
|
// line 342 "types.rl"
|
|
{
|
|
}
|
|
// line 112 "zparse.rl"
|
|
{
|
|
l++
|
|
}
|
|
goto st141
|
|
tr61:
|
|
// line 53 "types.rl"
|
|
{
|
|
rdf := fields(data[mark:p], 1)
|
|
rr := new(RR_CNAME)
|
|
rr.Hdr = hdr
|
|
rr.Hdr.Rrtype = TypeCNAME
|
|
rr.Cname = rdf[0]
|
|
if !IsDomainName(rdf[0]) {
|
|
return z, &ParseError{Error: "bad CNAME", name: rdf[0], line: l}
|
|
}
|
|
z.PushRR(rr)
|
|
}
|
|
// line 112 "zparse.rl"
|
|
{
|
|
l++
|
|
}
|
|
goto st141
|
|
tr70:
|
|
// line 122 "types.rl"
|
|
{
|
|
var (
|
|
i uint
|
|
e os.Error
|
|
)
|
|
rdf := fields(data[mark:p], 4)
|
|
rr := new(RR_DLV)
|
|
rr.Hdr = hdr
|
|
rr.Hdr.Rrtype = TypeDLV
|
|
if i, e = strconv.Atoui(rdf[0]); e != nil {
|
|
return z, &ParseError{Error: "bad DS", name: rdf[0], line: l}
|
|
}
|
|
rr.KeyTag = uint16(i)
|
|
if i, e = strconv.Atoui(rdf[1]); e != nil {
|
|
return z, &ParseError{Error: "bad DS", name: rdf[1], line: l}
|
|
}
|
|
rr.Algorithm = uint8(i)
|
|
if i, e = strconv.Atoui(rdf[2]); e != nil {
|
|
return z, &ParseError{Error: "bad DS", name: rdf[2], line: l}
|
|
}
|
|
rr.DigestType = uint8(i)
|
|
rr.Digest = rdf[3]
|
|
z.PushRR(rr)
|
|
}
|
|
// line 112 "zparse.rl"
|
|
{
|
|
l++
|
|
}
|
|
goto st141
|
|
tr79:
|
|
// line 348 "types.rl"
|
|
{
|
|
}
|
|
// line 112 "zparse.rl"
|
|
{
|
|
l++
|
|
}
|
|
goto st141
|
|
tr87:
|
|
// line 172 "types.rl"
|
|
{
|
|
var (
|
|
i uint
|
|
e os.Error
|
|
)
|
|
rdf := fields(data[mark:p], 4)
|
|
rr := new(RR_DNSKEY)
|
|
rr.Hdr = hdr
|
|
rr.Hdr.Rrtype = TypeDNSKEY
|
|
|
|
if i, e = strconv.Atoui(rdf[0]); e != nil {
|
|
return z, &ParseError{Error: "bad DNSKEY", name: rdf[0], line: l}
|
|
}
|
|
rr.Flags = uint16(i)
|
|
if i, e = strconv.Atoui(rdf[1]); e != nil {
|
|
return z, &ParseError{Error: "bad DNSKEY", name: rdf[1], line: l}
|
|
}
|
|
rr.Protocol = uint8(i)
|
|
if i, e = strconv.Atoui(rdf[2]); e != nil {
|
|
return z, &ParseError{Error: "bad DNSKEY", name: rdf[2], line: l}
|
|
}
|
|
rr.Algorithm = uint8(i)
|
|
rr.PublicKey = rdf[3]
|
|
z.PushRR(rr)
|
|
}
|
|
// line 112 "zparse.rl"
|
|
{
|
|
l++
|
|
}
|
|
goto st141
|
|
tr92:
|
|
// line 97 "types.rl"
|
|
{
|
|
var (
|
|
i uint
|
|
e os.Error
|
|
)
|
|
rdf := fields(data[mark:p], 4)
|
|
rr := new(RR_DS)
|
|
rr.Hdr = hdr
|
|
rr.Hdr.Rrtype = TypeDS
|
|
if i, e = strconv.Atoui(rdf[0]); e != nil {
|
|
return z, &ParseError{Error: "bad DS", name: rdf[0], line: l}
|
|
}
|
|
rr.KeyTag = uint16(i)
|
|
if i, e = strconv.Atoui(rdf[1]); e != nil {
|
|
return z, &ParseError{Error: "bad DS", name: rdf[1], line: l}
|
|
}
|
|
rr.Algorithm = uint8(i)
|
|
if i, e = strconv.Atoui(rdf[2]); e != nil {
|
|
return z, &ParseError{Error: "bad DS", name: rdf[2], line: l}
|
|
}
|
|
rr.DigestType = uint8(i)
|
|
rr.Digest = rdf[3]
|
|
z.PushRR(rr)
|
|
}
|
|
// line 112 "zparse.rl"
|
|
{
|
|
l++
|
|
}
|
|
goto st141
|
|
tr98:
|
|
// line 39 "types.rl"
|
|
{
|
|
rdf := fields(data[mark:p], 2)
|
|
rr := new(RR_MX)
|
|
rr.Hdr = hdr
|
|
rr.Hdr.Rrtype = TypeMX
|
|
i, err := strconv.Atoui(rdf[0])
|
|
rr.Pref = uint16(i)
|
|
rr.Mx = rdf[1]
|
|
if err != nil {
|
|
return z, &ParseError{Error: "bad MX", name: rdf[0], line: l}
|
|
}
|
|
z.PushRR(rr)
|
|
}
|
|
// line 112 "zparse.rl"
|
|
{
|
|
l++
|
|
}
|
|
goto st141
|
|
tr108:
|
|
// line 351 "types.rl"
|
|
{
|
|
}
|
|
// line 112 "zparse.rl"
|
|
{
|
|
l++
|
|
}
|
|
goto st141
|
|
tr114:
|
|
// line 27 "types.rl"
|
|
{
|
|
rdf := fields(data[mark:p], 1)
|
|
rr := new(RR_NS)
|
|
rr.Hdr = hdr
|
|
rr.Hdr.Rrtype = TypeNS
|
|
rr.Ns = rdf[0]
|
|
if !IsDomainName(rdf[0]) {
|
|
return z, &ParseError{Error: "bad NS", name: rdf[0], line: l}
|
|
}
|
|
z.PushRR(rr)
|
|
}
|
|
// line 112 "zparse.rl"
|
|
{
|
|
l++
|
|
}
|
|
goto st141
|
|
tr121:
|
|
// line 250 "types.rl"
|
|
{
|
|
rdf := fields(data[mark:p], 0)
|
|
rr := new(RR_NSEC)
|
|
rr.Hdr = hdr
|
|
rr.Hdr.Rrtype = TypeNSEC
|
|
rr.NextDomain = rdf[0]
|
|
rr.TypeBitMap = make([]uint16, len(rdf)-1)
|
|
// Fill the Type Bit Map
|
|
for i := 1; i < len(rdf); i++ {
|
|
// Check if its there in the map TODO
|
|
rr.TypeBitMap[i-1] = str_rr[strings.ToUpper(rdf[i])]
|
|
}
|
|
z.PushRR(rr)
|
|
}
|
|
// line 112 "zparse.rl"
|
|
{
|
|
l++
|
|
}
|
|
goto st141
|
|
tr127:
|
|
// line 265 "types.rl"
|
|
{
|
|
var (
|
|
i uint
|
|
e os.Error
|
|
)
|
|
rdf := fields(data[mark:p], 0)
|
|
rr := new(RR_NSEC3)
|
|
rr.Hdr = hdr
|
|
rr.Hdr.Rrtype = TypeNSEC3
|
|
|
|
if i, e = strconv.Atoui(rdf[0]); e != nil {
|
|
return z, &ParseError{Error: "bad NSEC3", name: rdf[0], line: l}
|
|
}
|
|
rr.Hash = uint8(i)
|
|
if i, e = strconv.Atoui(rdf[1]); e != nil {
|
|
return z, &ParseError{Error: "bad NSEC3", name: rdf[1], line: l}
|
|
}
|
|
rr.Flags = uint8(i)
|
|
if i, e = strconv.Atoui(rdf[2]); e != nil {
|
|
return z, &ParseError{Error: "bad NSEC3", name: rdf[2], line: l}
|
|
}
|
|
rr.Iterations = uint16(i)
|
|
rr.SaltLength = uint8(len(rdf[3]))
|
|
rr.Salt = rdf[3]
|
|
|
|
rr.HashLength = uint8(len(rdf[4]))
|
|
rr.NextDomain = rdf[4]
|
|
rr.TypeBitMap = make([]uint16, len(rdf)-5)
|
|
// Fill the Type Bit Map
|
|
for i := 5; i < len(rdf); i++ {
|
|
// Check if its there in the map TODO
|
|
rr.TypeBitMap[i-5] = str_rr[strings.ToUpper(rdf[i])]
|
|
}
|
|
z.PushRR(rr)
|
|
}
|
|
// line 112 "zparse.rl"
|
|
{
|
|
l++
|
|
}
|
|
goto st141
|
|
tr136:
|
|
// line 301 "types.rl"
|
|
{
|
|
var (
|
|
i int
|
|
e os.Error
|
|
)
|
|
rdf := fields(data[mark:p], 4)
|
|
rr := new(RR_NSEC3PARAM)
|
|
rr.Hdr = hdr
|
|
rr.Hdr.Rrtype = TypeNSEC3PARAM
|
|
if i, e = strconv.Atoi(rdf[0]); e != nil {
|
|
return z, &ParseError{Error: "bad NSEC3PARAM", name: rdf[0], line: l}
|
|
}
|
|
rr.Hash = uint8(i)
|
|
if i, e = strconv.Atoi(rdf[1]); e != nil {
|
|
return z, &ParseError{Error: "bad NSEC3PARAM", name: rdf[1], line: l}
|
|
}
|
|
rr.Flags = uint8(i)
|
|
if i, e = strconv.Atoi(rdf[2]); e != nil {
|
|
return z, &ParseError{Error: "bad NSEC3PARAM", name: rdf[2], line: l}
|
|
}
|
|
rr.Iterations = uint16(i)
|
|
rr.Salt = rdf[3]
|
|
rr.SaltLength = uint8(len(rr.Salt))
|
|
z.PushRR(rr)
|
|
}
|
|
// line 112 "zparse.rl"
|
|
{
|
|
l++
|
|
}
|
|
goto st141
|
|
tr143:
|
|
// line 345 "types.rl"
|
|
{
|
|
}
|
|
// line 112 "zparse.rl"
|
|
{
|
|
l++
|
|
}
|
|
goto st141
|
|
tr152:
|
|
// line 198 "types.rl"
|
|
{
|
|
var (
|
|
i uint
|
|
j uint32
|
|
err os.Error
|
|
)
|
|
rdf := fields(data[mark:p], 9)
|
|
rr := new(RR_RRSIG)
|
|
rr.Hdr = hdr
|
|
rr.Hdr.Rrtype = TypeRRSIG
|
|
|
|
if _, ok := str_rr[strings.ToUpper(rdf[0])]; !ok {
|
|
return z, &ParseError{Error: "bad RRSIG", name: rdf[0], line: l}
|
|
}
|
|
rr.TypeCovered = str_rr[strings.ToUpper(rdf[0])]
|
|
|
|
if i, err = strconv.Atoui(rdf[1]); err != nil {
|
|
return z, &ParseError{Error: "bad RRSIG", name: rdf[1], line: l}
|
|
}
|
|
rr.Algorithm = uint8(i)
|
|
if i, err = strconv.Atoui(rdf[2]); err != nil {
|
|
return z, &ParseError{Error: "bad RRSIG", name: rdf[2], line: l}
|
|
}
|
|
rr.Labels = uint8(i)
|
|
if i, err = strconv.Atoui(rdf[3]); err != nil {
|
|
return z, &ParseError{Error: "bad RRSIG", name: rdf[3], line: l}
|
|
}
|
|
rr.OrigTtl = uint32(i)
|
|
|
|
if j, err = dateToTime(rdf[4]); err != nil {
|
|
return z, &ParseError{Error: "bad RRSIG", name: rdf[4], line: l}
|
|
}
|
|
rr.Expiration = j
|
|
if j, err = dateToTime(rdf[5]); err != nil {
|
|
return z, &ParseError{Error: "bad RRSIG", name: rdf[5], line: l}
|
|
}
|
|
rr.Inception = j
|
|
|
|
if i, err = strconv.Atoui(rdf[6]); err != nil {
|
|
return z, &ParseError{Error: "bad RRSIG", name: rdf[3], line: l}
|
|
}
|
|
rr.KeyTag = uint16(i)
|
|
|
|
rr.SignerName = rdf[7]
|
|
if !IsDomainName(rdf[7]) {
|
|
return z, &ParseError{Error: "bad RRSIG", name: rdf[7], line: l}
|
|
}
|
|
// Check base64 TODO
|
|
rr.Signature = rdf[8]
|
|
z.PushRR(rr)
|
|
}
|
|
// line 112 "zparse.rl"
|
|
{
|
|
l++
|
|
}
|
|
goto st141
|
|
tr161:
|
|
// line 65 "types.rl"
|
|
{
|
|
var (
|
|
i uint
|
|
err os.Error
|
|
)
|
|
rdf := fields(data[mark:p], 7)
|
|
rr := new(RR_SOA)
|
|
rr.Hdr = hdr
|
|
rr.Hdr.Rrtype = TypeSOA
|
|
rr.Ns = rdf[0]
|
|
rr.Mbox = rdf[1]
|
|
if !IsDomainName(rdf[0]) {
|
|
return z, &ParseError{Error: "bad SOA", name: rdf[0], line: l}
|
|
}
|
|
if !IsDomainName(rdf[1]) {
|
|
return z, &ParseError{Error: "bad SOA", name: rdf[1], line: l}
|
|
}
|
|
for j, s := range rdf[2:7] {
|
|
if i, err = strconv.Atoui(s); err != nil {
|
|
return z, &ParseError{Error: "bad SOA", name: s, line: l}
|
|
}
|
|
switch j {
|
|
case 0:
|
|
rr.Serial = uint32(i)
|
|
case 1:
|
|
rr.Refresh = uint32(i)
|
|
case 2:
|
|
rr.Retry = uint32(i)
|
|
case 3:
|
|
rr.Expire = uint32(i)
|
|
case 4:
|
|
rr.Minttl = uint32(i)
|
|
}
|
|
}
|
|
z.PushRR(rr)
|
|
}
|
|
// line 112 "zparse.rl"
|
|
{
|
|
l++
|
|
}
|
|
goto st141
|
|
tr167:
|
|
// line 339 "types.rl"
|
|
{
|
|
}
|
|
// line 112 "zparse.rl"
|
|
{
|
|
l++
|
|
}
|
|
goto st141
|
|
tr175:
|
|
// line 354 "types.rl"
|
|
{
|
|
var (
|
|
i int
|
|
e os.Error
|
|
)
|
|
rdf := fields(data[mark:p], 3)
|
|
rr := new(RR_SSHFP)
|
|
rr.Hdr = hdr
|
|
rr.Hdr.Rrtype = TypeSSHFP
|
|
if i, e = strconv.Atoi(rdf[0]); e != nil {
|
|
return z, &ParseError{Error: "bad SSHFP", name: rdf[0], line: l}
|
|
}
|
|
rr.Algorithm = uint8(i)
|
|
if i, e = strconv.Atoi(rdf[1]); e != nil {
|
|
return z, &ParseError{Error: "bad SSHFP", name: rdf[1], line: l}
|
|
}
|
|
rr.Type = uint8(i)
|
|
rr.FingerPrint = rdf[2]
|
|
z.PushRR(rr)
|
|
}
|
|
// line 112 "zparse.rl"
|
|
{
|
|
l++
|
|
}
|
|
goto st141
|
|
tr182:
|
|
// line 147 "types.rl"
|
|
{
|
|
var (
|
|
i uint
|
|
e os.Error
|
|
)
|
|
rdf := fields(data[mark:p], 4)
|
|
rr := new(RR_TA)
|
|
rr.Hdr = hdr
|
|
rr.Hdr.Rrtype = TypeTA
|
|
if i, e = strconv.Atoui(rdf[0]); e != nil {
|
|
return z, &ParseError{Error: "bad DS", name: rdf[0], line: l}
|
|
}
|
|
rr.KeyTag = uint16(i)
|
|
if i, e = strconv.Atoui(rdf[1]); e != nil {
|
|
return z, &ParseError{Error: "bad DS", name: rdf[1], line: l}
|
|
}
|
|
rr.Algorithm = uint8(i)
|
|
if i, e = strconv.Atoui(rdf[2]); e != nil {
|
|
return z, &ParseError{Error: "bad DS", name: rdf[2], line: l}
|
|
}
|
|
rr.DigestType = uint8(i)
|
|
rr.Digest = rdf[3]
|
|
z.PushRR(rr)
|
|
}
|
|
// line 112 "zparse.rl"
|
|
{
|
|
l++
|
|
}
|
|
goto st141
|
|
tr188:
|
|
// line 330 "types.rl"
|
|
{
|
|
rdf := fields(data[mark:p], 1)
|
|
rr := new(RR_TXT)
|
|
rr.Hdr = hdr
|
|
rr.Hdr.Rrtype = TypeTXT
|
|
rr.Txt = rdf[0]
|
|
z.PushRR(rr)
|
|
}
|
|
// line 112 "zparse.rl"
|
|
{
|
|
l++
|
|
}
|
|
goto st141
|
|
tr198:
|
|
// line 112 "zparse.rl"
|
|
{
|
|
l++
|
|
}
|
|
goto st141
|
|
st141:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof141
|
|
}
|
|
fallthrough
|
|
case 141:
|
|
// line 589 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto st1
|
|
case 10:
|
|
goto tr198
|
|
case 32:
|
|
goto st1
|
|
case 42:
|
|
goto tr199
|
|
case 59:
|
|
goto st140
|
|
case 95:
|
|
goto tr199
|
|
}
|
|
if data[p] < 48 {
|
|
if 45 <= data[p] && data[p] <= 46 {
|
|
goto tr199
|
|
}
|
|
} else if data[p] > 57 {
|
|
if data[p] > 90 {
|
|
if 97 <= data[p] && data[p] <= 122 {
|
|
goto tr199
|
|
}
|
|
} else if data[p] >= 65 {
|
|
goto tr199
|
|
}
|
|
} else {
|
|
goto tr199
|
|
}
|
|
goto st0
|
|
st0:
|
|
cs = 0
|
|
goto _out
|
|
tr195:
|
|
// line 113 "zparse.rl"
|
|
{
|
|
if !IsDomainName(data[mark:p]) {
|
|
return z, &ParseError{Error: "bad qname: " + data[mark:p], line: l}
|
|
}
|
|
hdr.Name = data[mark:p]
|
|
}
|
|
goto st1
|
|
st1:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof1
|
|
}
|
|
fallthrough
|
|
case 1:
|
|
// line 626 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto st1
|
|
case 32:
|
|
goto st1
|
|
case 65:
|
|
goto tr3
|
|
case 67:
|
|
goto tr4
|
|
case 68:
|
|
goto tr5
|
|
case 72:
|
|
goto tr6
|
|
case 73:
|
|
goto tr7
|
|
case 77:
|
|
goto tr8
|
|
case 78:
|
|
goto tr9
|
|
case 80:
|
|
goto tr10
|
|
case 82:
|
|
goto tr11
|
|
case 83:
|
|
goto tr12
|
|
case 84:
|
|
goto tr13
|
|
case 97:
|
|
goto tr3
|
|
case 99:
|
|
goto tr4
|
|
case 100:
|
|
goto tr5
|
|
case 104:
|
|
goto tr6
|
|
case 105:
|
|
goto tr7
|
|
case 109:
|
|
goto tr8
|
|
case 110:
|
|
goto tr9
|
|
case 112:
|
|
goto tr10
|
|
case 114:
|
|
goto tr11
|
|
case 115:
|
|
goto tr12
|
|
case 116:
|
|
goto tr13
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 {
|
|
goto tr2
|
|
}
|
|
goto st0
|
|
tr2:
|
|
// line 120 "zparse.rl"
|
|
{ // ...
|
|
}
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st2
|
|
st2:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof2
|
|
}
|
|
fallthrough
|
|
case 2:
|
|
// line 666 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr14
|
|
case 32:
|
|
goto tr14
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 {
|
|
goto st2
|
|
}
|
|
goto st0
|
|
tr14:
|
|
// line 122 "zparse.rl"
|
|
{
|
|
i, _ := strconv.Atoui(data[mark:p])
|
|
hdr.Ttl = uint32(i)
|
|
}
|
|
goto st3
|
|
st3:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof3
|
|
}
|
|
fallthrough
|
|
case 3:
|
|
// line 682 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto st3
|
|
case 32:
|
|
goto st3
|
|
case 65:
|
|
goto st4
|
|
case 67:
|
|
goto tr18
|
|
case 68:
|
|
goto st31
|
|
case 72:
|
|
goto tr20
|
|
case 73:
|
|
goto tr21
|
|
case 77:
|
|
goto st55
|
|
case 78:
|
|
goto st60
|
|
case 80:
|
|
goto st89
|
|
case 82:
|
|
goto st95
|
|
case 83:
|
|
goto st103
|
|
case 84:
|
|
goto st121
|
|
case 97:
|
|
goto st4
|
|
case 99:
|
|
goto tr18
|
|
case 100:
|
|
goto st31
|
|
case 104:
|
|
goto tr20
|
|
case 105:
|
|
goto tr21
|
|
case 109:
|
|
goto st55
|
|
case 110:
|
|
goto st60
|
|
case 112:
|
|
goto st89
|
|
case 114:
|
|
goto st95
|
|
case 115:
|
|
goto st103
|
|
case 116:
|
|
goto st121
|
|
}
|
|
goto st0
|
|
tr3:
|
|
// line 120 "zparse.rl"
|
|
{ // ...
|
|
}
|
|
goto st4
|
|
st4:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof4
|
|
}
|
|
fallthrough
|
|
case 4:
|
|
// line 719 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto st5
|
|
case 32:
|
|
goto st5
|
|
case 65:
|
|
goto st8
|
|
case 97:
|
|
goto st8
|
|
}
|
|
goto st0
|
|
st5:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof5
|
|
}
|
|
fallthrough
|
|
case 5:
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr31
|
|
case 10:
|
|
goto st0
|
|
case 32:
|
|
goto tr31
|
|
}
|
|
goto tr30
|
|
tr30:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st6
|
|
st6:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof6
|
|
}
|
|
fallthrough
|
|
case 6:
|
|
// line 747 "zparse.go"
|
|
if data[p] == 10 {
|
|
goto tr33
|
|
}
|
|
goto st6
|
|
tr31:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st7
|
|
st7:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof7
|
|
}
|
|
fallthrough
|
|
case 7:
|
|
// line 759 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr31
|
|
case 10:
|
|
goto tr33
|
|
case 32:
|
|
goto tr31
|
|
}
|
|
goto tr30
|
|
st8:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof8
|
|
}
|
|
fallthrough
|
|
case 8:
|
|
switch data[p] {
|
|
case 65:
|
|
goto st9
|
|
case 97:
|
|
goto st9
|
|
}
|
|
goto st0
|
|
st9:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof9
|
|
}
|
|
fallthrough
|
|
case 9:
|
|
switch data[p] {
|
|
case 65:
|
|
goto st10
|
|
case 97:
|
|
goto st10
|
|
}
|
|
goto st0
|
|
st10:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof10
|
|
}
|
|
fallthrough
|
|
case 10:
|
|
switch data[p] {
|
|
case 9:
|
|
goto st11
|
|
case 32:
|
|
goto st11
|
|
}
|
|
goto st0
|
|
st11:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof11
|
|
}
|
|
fallthrough
|
|
case 11:
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr38
|
|
case 10:
|
|
goto st0
|
|
case 32:
|
|
goto tr38
|
|
}
|
|
goto tr37
|
|
tr37:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st12
|
|
st12:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof12
|
|
}
|
|
fallthrough
|
|
case 12:
|
|
// line 816 "zparse.go"
|
|
if data[p] == 10 {
|
|
goto tr40
|
|
}
|
|
goto st12
|
|
tr38:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st13
|
|
st13:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof13
|
|
}
|
|
fallthrough
|
|
case 13:
|
|
// line 828 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr38
|
|
case 10:
|
|
goto tr40
|
|
case 32:
|
|
goto tr38
|
|
}
|
|
goto tr37
|
|
tr18:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st14
|
|
st14:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof14
|
|
}
|
|
fallthrough
|
|
case 14:
|
|
// line 844 "zparse.go"
|
|
switch data[p] {
|
|
case 69:
|
|
goto st15
|
|
case 72:
|
|
goto st21
|
|
case 78:
|
|
goto st24
|
|
case 101:
|
|
goto st15
|
|
case 104:
|
|
goto st21
|
|
case 110:
|
|
goto st24
|
|
}
|
|
goto st0
|
|
st15:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof15
|
|
}
|
|
fallthrough
|
|
case 15:
|
|
switch data[p] {
|
|
case 82:
|
|
goto st16
|
|
case 114:
|
|
goto st16
|
|
}
|
|
goto st0
|
|
st16:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof16
|
|
}
|
|
fallthrough
|
|
case 16:
|
|
switch data[p] {
|
|
case 84:
|
|
goto st17
|
|
case 116:
|
|
goto st17
|
|
}
|
|
goto st0
|
|
st17:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof17
|
|
}
|
|
fallthrough
|
|
case 17:
|
|
switch data[p] {
|
|
case 9:
|
|
goto st18
|
|
case 32:
|
|
goto st18
|
|
}
|
|
goto st0
|
|
st18:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof18
|
|
}
|
|
fallthrough
|
|
case 18:
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr48
|
|
case 10:
|
|
goto st0
|
|
case 32:
|
|
goto tr48
|
|
}
|
|
goto tr47
|
|
tr47:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st19
|
|
st19:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof19
|
|
}
|
|
fallthrough
|
|
case 19:
|
|
// line 904 "zparse.go"
|
|
if data[p] == 10 {
|
|
goto tr50
|
|
}
|
|
goto st19
|
|
tr48:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st20
|
|
st20:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof20
|
|
}
|
|
fallthrough
|
|
case 20:
|
|
// line 916 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr48
|
|
case 10:
|
|
goto tr50
|
|
case 32:
|
|
goto tr48
|
|
}
|
|
goto tr47
|
|
st21:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof21
|
|
}
|
|
fallthrough
|
|
case 21:
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr51
|
|
case 32:
|
|
goto tr51
|
|
}
|
|
goto st0
|
|
tr193:
|
|
// line 122 "zparse.rl"
|
|
{
|
|
i, _ := strconv.Atoui(data[mark:p])
|
|
hdr.Ttl = uint32(i)
|
|
}
|
|
goto st22
|
|
tr51:
|
|
// line 119 "zparse.rl"
|
|
{
|
|
hdr.Class = str_class[data[mark:p]]
|
|
}
|
|
goto st22
|
|
st22:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof22
|
|
}
|
|
fallthrough
|
|
case 22:
|
|
// line 946 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto st22
|
|
case 32:
|
|
goto st22
|
|
case 65:
|
|
goto st4
|
|
case 67:
|
|
goto st23
|
|
case 68:
|
|
goto st31
|
|
case 77:
|
|
goto st55
|
|
case 78:
|
|
goto st60
|
|
case 80:
|
|
goto st89
|
|
case 82:
|
|
goto st95
|
|
case 83:
|
|
goto st103
|
|
case 84:
|
|
goto st121
|
|
case 97:
|
|
goto st4
|
|
case 99:
|
|
goto st23
|
|
case 100:
|
|
goto st31
|
|
case 109:
|
|
goto st55
|
|
case 110:
|
|
goto st60
|
|
case 112:
|
|
goto st89
|
|
case 114:
|
|
goto st95
|
|
case 115:
|
|
goto st103
|
|
case 116:
|
|
goto st121
|
|
}
|
|
goto st0
|
|
st23:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof23
|
|
}
|
|
fallthrough
|
|
case 23:
|
|
switch data[p] {
|
|
case 69:
|
|
goto st15
|
|
case 78:
|
|
goto st24
|
|
case 101:
|
|
goto st15
|
|
case 110:
|
|
goto st24
|
|
}
|
|
goto st0
|
|
st24:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof24
|
|
}
|
|
fallthrough
|
|
case 24:
|
|
switch data[p] {
|
|
case 65:
|
|
goto st25
|
|
case 97:
|
|
goto st25
|
|
}
|
|
goto st0
|
|
st25:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof25
|
|
}
|
|
fallthrough
|
|
case 25:
|
|
switch data[p] {
|
|
case 77:
|
|
goto st26
|
|
case 109:
|
|
goto st26
|
|
}
|
|
goto st0
|
|
st26:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof26
|
|
}
|
|
fallthrough
|
|
case 26:
|
|
switch data[p] {
|
|
case 69:
|
|
goto st27
|
|
case 101:
|
|
goto st27
|
|
}
|
|
goto st0
|
|
st27:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof27
|
|
}
|
|
fallthrough
|
|
case 27:
|
|
switch data[p] {
|
|
case 9:
|
|
goto st28
|
|
case 32:
|
|
goto st28
|
|
}
|
|
goto st0
|
|
st28:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof28
|
|
}
|
|
fallthrough
|
|
case 28:
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr59
|
|
case 10:
|
|
goto st0
|
|
case 32:
|
|
goto tr59
|
|
}
|
|
goto tr58
|
|
tr58:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st29
|
|
st29:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof29
|
|
}
|
|
fallthrough
|
|
case 29:
|
|
// line 1042 "zparse.go"
|
|
if data[p] == 10 {
|
|
goto tr61
|
|
}
|
|
goto st29
|
|
tr59:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st30
|
|
st30:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof30
|
|
}
|
|
fallthrough
|
|
case 30:
|
|
// line 1054 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr59
|
|
case 10:
|
|
goto tr61
|
|
case 32:
|
|
goto tr59
|
|
}
|
|
goto tr58
|
|
tr5:
|
|
// line 120 "zparse.rl"
|
|
{ // ...
|
|
}
|
|
goto st31
|
|
st31:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof31
|
|
}
|
|
fallthrough
|
|
case 31:
|
|
// line 1070 "zparse.go"
|
|
switch data[p] {
|
|
case 76:
|
|
goto st32
|
|
case 78:
|
|
goto st37
|
|
case 83:
|
|
goto st51
|
|
case 108:
|
|
goto st32
|
|
case 110:
|
|
goto st37
|
|
case 115:
|
|
goto st51
|
|
}
|
|
goto st0
|
|
st32:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof32
|
|
}
|
|
fallthrough
|
|
case 32:
|
|
switch data[p] {
|
|
case 86:
|
|
goto st33
|
|
case 118:
|
|
goto st33
|
|
}
|
|
goto st0
|
|
st33:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof33
|
|
}
|
|
fallthrough
|
|
case 33:
|
|
switch data[p] {
|
|
case 9:
|
|
goto st34
|
|
case 32:
|
|
goto st34
|
|
}
|
|
goto st0
|
|
st34:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof34
|
|
}
|
|
fallthrough
|
|
case 34:
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr68
|
|
case 10:
|
|
goto st0
|
|
case 32:
|
|
goto tr68
|
|
}
|
|
goto tr67
|
|
tr67:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st35
|
|
st35:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof35
|
|
}
|
|
fallthrough
|
|
case 35:
|
|
// line 1120 "zparse.go"
|
|
if data[p] == 10 {
|
|
goto tr70
|
|
}
|
|
goto st35
|
|
tr68:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st36
|
|
st36:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof36
|
|
}
|
|
fallthrough
|
|
case 36:
|
|
// line 1132 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr68
|
|
case 10:
|
|
goto tr70
|
|
case 32:
|
|
goto tr68
|
|
}
|
|
goto tr67
|
|
st37:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof37
|
|
}
|
|
fallthrough
|
|
case 37:
|
|
switch data[p] {
|
|
case 65:
|
|
goto st38
|
|
case 83:
|
|
goto st44
|
|
case 97:
|
|
goto st38
|
|
case 115:
|
|
goto st44
|
|
}
|
|
goto st0
|
|
st38:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof38
|
|
}
|
|
fallthrough
|
|
case 38:
|
|
switch data[p] {
|
|
case 77:
|
|
goto st39
|
|
case 109:
|
|
goto st39
|
|
}
|
|
goto st0
|
|
st39:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof39
|
|
}
|
|
fallthrough
|
|
case 39:
|
|
switch data[p] {
|
|
case 69:
|
|
goto st40
|
|
case 101:
|
|
goto st40
|
|
}
|
|
goto st0
|
|
st40:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof40
|
|
}
|
|
fallthrough
|
|
case 40:
|
|
switch data[p] {
|
|
case 9:
|
|
goto st41
|
|
case 32:
|
|
goto st41
|
|
}
|
|
goto st0
|
|
st41:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof41
|
|
}
|
|
fallthrough
|
|
case 41:
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr77
|
|
case 10:
|
|
goto st0
|
|
case 32:
|
|
goto tr77
|
|
}
|
|
goto tr76
|
|
tr76:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st42
|
|
st42:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof42
|
|
}
|
|
fallthrough
|
|
case 42:
|
|
// line 1201 "zparse.go"
|
|
if data[p] == 10 {
|
|
goto tr79
|
|
}
|
|
goto st42
|
|
tr77:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st43
|
|
st43:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof43
|
|
}
|
|
fallthrough
|
|
case 43:
|
|
// line 1213 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr77
|
|
case 10:
|
|
goto tr79
|
|
case 32:
|
|
goto tr77
|
|
}
|
|
goto tr76
|
|
st44:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof44
|
|
}
|
|
fallthrough
|
|
case 44:
|
|
switch data[p] {
|
|
case 75:
|
|
goto st45
|
|
case 107:
|
|
goto st45
|
|
}
|
|
goto st0
|
|
st45:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof45
|
|
}
|
|
fallthrough
|
|
case 45:
|
|
switch data[p] {
|
|
case 69:
|
|
goto st46
|
|
case 101:
|
|
goto st46
|
|
}
|
|
goto st0
|
|
st46:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof46
|
|
}
|
|
fallthrough
|
|
case 46:
|
|
switch data[p] {
|
|
case 89:
|
|
goto st47
|
|
case 121:
|
|
goto st47
|
|
}
|
|
goto st0
|
|
st47:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof47
|
|
}
|
|
fallthrough
|
|
case 47:
|
|
switch data[p] {
|
|
case 9:
|
|
goto st48
|
|
case 32:
|
|
goto st48
|
|
}
|
|
goto st0
|
|
st48:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof48
|
|
}
|
|
fallthrough
|
|
case 48:
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr85
|
|
case 10:
|
|
goto st0
|
|
case 32:
|
|
goto tr85
|
|
}
|
|
goto tr84
|
|
tr84:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st49
|
|
st49:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof49
|
|
}
|
|
fallthrough
|
|
case 49:
|
|
// line 1280 "zparse.go"
|
|
if data[p] == 10 {
|
|
goto tr87
|
|
}
|
|
goto st49
|
|
tr85:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st50
|
|
st50:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof50
|
|
}
|
|
fallthrough
|
|
case 50:
|
|
// line 1292 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr85
|
|
case 10:
|
|
goto tr87
|
|
case 32:
|
|
goto tr85
|
|
}
|
|
goto tr84
|
|
st51:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof51
|
|
}
|
|
fallthrough
|
|
case 51:
|
|
switch data[p] {
|
|
case 9:
|
|
goto st52
|
|
case 32:
|
|
goto st52
|
|
}
|
|
goto st0
|
|
st52:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof52
|
|
}
|
|
fallthrough
|
|
case 52:
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr90
|
|
case 10:
|
|
goto st0
|
|
case 32:
|
|
goto tr90
|
|
}
|
|
goto tr89
|
|
tr89:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st53
|
|
st53:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof53
|
|
}
|
|
fallthrough
|
|
case 53:
|
|
// line 1329 "zparse.go"
|
|
if data[p] == 10 {
|
|
goto tr92
|
|
}
|
|
goto st53
|
|
tr90:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st54
|
|
st54:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof54
|
|
}
|
|
fallthrough
|
|
case 54:
|
|
// line 1341 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr90
|
|
case 10:
|
|
goto tr92
|
|
case 32:
|
|
goto tr90
|
|
}
|
|
goto tr89
|
|
tr8:
|
|
// line 120 "zparse.rl"
|
|
{ // ...
|
|
}
|
|
goto st55
|
|
st55:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof55
|
|
}
|
|
fallthrough
|
|
case 55:
|
|
// line 1357 "zparse.go"
|
|
switch data[p] {
|
|
case 88:
|
|
goto st56
|
|
case 120:
|
|
goto st56
|
|
}
|
|
goto st0
|
|
st56:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof56
|
|
}
|
|
fallthrough
|
|
case 56:
|
|
switch data[p] {
|
|
case 9:
|
|
goto st57
|
|
case 32:
|
|
goto st57
|
|
}
|
|
goto st0
|
|
st57:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof57
|
|
}
|
|
fallthrough
|
|
case 57:
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr96
|
|
case 10:
|
|
goto st0
|
|
case 32:
|
|
goto tr96
|
|
}
|
|
goto tr95
|
|
tr95:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st58
|
|
st58:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof58
|
|
}
|
|
fallthrough
|
|
case 58:
|
|
// line 1393 "zparse.go"
|
|
if data[p] == 10 {
|
|
goto tr98
|
|
}
|
|
goto st58
|
|
tr96:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st59
|
|
st59:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof59
|
|
}
|
|
fallthrough
|
|
case 59:
|
|
// line 1405 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr96
|
|
case 10:
|
|
goto tr98
|
|
case 32:
|
|
goto tr96
|
|
}
|
|
goto tr95
|
|
tr9:
|
|
// line 120 "zparse.rl"
|
|
{ // ...
|
|
}
|
|
goto st60
|
|
st60:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof60
|
|
}
|
|
fallthrough
|
|
case 60:
|
|
// line 1421 "zparse.go"
|
|
switch data[p] {
|
|
case 65:
|
|
goto st61
|
|
case 83:
|
|
goto st68
|
|
case 97:
|
|
goto st61
|
|
case 115:
|
|
goto st68
|
|
}
|
|
goto st0
|
|
st61:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof61
|
|
}
|
|
fallthrough
|
|
case 61:
|
|
switch data[p] {
|
|
case 80:
|
|
goto st62
|
|
case 112:
|
|
goto st62
|
|
}
|
|
goto st0
|
|
st62:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof62
|
|
}
|
|
fallthrough
|
|
case 62:
|
|
switch data[p] {
|
|
case 84:
|
|
goto st63
|
|
case 116:
|
|
goto st63
|
|
}
|
|
goto st0
|
|
st63:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof63
|
|
}
|
|
fallthrough
|
|
case 63:
|
|
switch data[p] {
|
|
case 82:
|
|
goto st64
|
|
case 114:
|
|
goto st64
|
|
}
|
|
goto st0
|
|
st64:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof64
|
|
}
|
|
fallthrough
|
|
case 64:
|
|
switch data[p] {
|
|
case 9:
|
|
goto st65
|
|
case 32:
|
|
goto st65
|
|
}
|
|
goto st0
|
|
st65:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof65
|
|
}
|
|
fallthrough
|
|
case 65:
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr106
|
|
case 10:
|
|
goto st0
|
|
case 32:
|
|
goto tr106
|
|
}
|
|
goto tr105
|
|
tr105:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st66
|
|
st66:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof66
|
|
}
|
|
fallthrough
|
|
case 66:
|
|
// line 1489 "zparse.go"
|
|
if data[p] == 10 {
|
|
goto tr108
|
|
}
|
|
goto st66
|
|
tr106:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st67
|
|
st67:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof67
|
|
}
|
|
fallthrough
|
|
case 67:
|
|
// line 1501 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr106
|
|
case 10:
|
|
goto tr108
|
|
case 32:
|
|
goto tr106
|
|
}
|
|
goto tr105
|
|
st68:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof68
|
|
}
|
|
fallthrough
|
|
case 68:
|
|
switch data[p] {
|
|
case 9:
|
|
goto st69
|
|
case 32:
|
|
goto st69
|
|
case 69:
|
|
goto st72
|
|
case 101:
|
|
goto st72
|
|
}
|
|
goto st0
|
|
st69:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof69
|
|
}
|
|
fallthrough
|
|
case 69:
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr112
|
|
case 10:
|
|
goto st0
|
|
case 32:
|
|
goto tr112
|
|
}
|
|
goto tr111
|
|
tr111:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st70
|
|
st70:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof70
|
|
}
|
|
fallthrough
|
|
case 70:
|
|
// line 1540 "zparse.go"
|
|
if data[p] == 10 {
|
|
goto tr114
|
|
}
|
|
goto st70
|
|
tr112:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st71
|
|
st71:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof71
|
|
}
|
|
fallthrough
|
|
case 71:
|
|
// line 1552 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr112
|
|
case 10:
|
|
goto tr114
|
|
case 32:
|
|
goto tr112
|
|
}
|
|
goto tr111
|
|
st72:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof72
|
|
}
|
|
fallthrough
|
|
case 72:
|
|
switch data[p] {
|
|
case 67:
|
|
goto st73
|
|
case 99:
|
|
goto st73
|
|
}
|
|
goto st0
|
|
st73:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof73
|
|
}
|
|
fallthrough
|
|
case 73:
|
|
switch data[p] {
|
|
case 9:
|
|
goto st74
|
|
case 32:
|
|
goto st74
|
|
case 51:
|
|
goto st77
|
|
}
|
|
goto st0
|
|
st74:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof74
|
|
}
|
|
fallthrough
|
|
case 74:
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr119
|
|
case 10:
|
|
goto st0
|
|
case 32:
|
|
goto tr119
|
|
}
|
|
goto tr118
|
|
tr118:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st75
|
|
st75:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof75
|
|
}
|
|
fallthrough
|
|
case 75:
|
|
// line 1600 "zparse.go"
|
|
if data[p] == 10 {
|
|
goto tr121
|
|
}
|
|
goto st75
|
|
tr119:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st76
|
|
st76:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof76
|
|
}
|
|
fallthrough
|
|
case 76:
|
|
// line 1612 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr119
|
|
case 10:
|
|
goto tr121
|
|
case 32:
|
|
goto tr119
|
|
}
|
|
goto tr118
|
|
st77:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof77
|
|
}
|
|
fallthrough
|
|
case 77:
|
|
switch data[p] {
|
|
case 9:
|
|
goto st78
|
|
case 32:
|
|
goto st78
|
|
case 80:
|
|
goto st81
|
|
case 112:
|
|
goto st81
|
|
}
|
|
goto st0
|
|
st78:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof78
|
|
}
|
|
fallthrough
|
|
case 78:
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr125
|
|
case 10:
|
|
goto st0
|
|
case 32:
|
|
goto tr125
|
|
}
|
|
goto tr124
|
|
tr124:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st79
|
|
st79:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof79
|
|
}
|
|
fallthrough
|
|
case 79:
|
|
// line 1651 "zparse.go"
|
|
if data[p] == 10 {
|
|
goto tr127
|
|
}
|
|
goto st79
|
|
tr125:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st80
|
|
st80:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof80
|
|
}
|
|
fallthrough
|
|
case 80:
|
|
// line 1663 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr125
|
|
case 10:
|
|
goto tr127
|
|
case 32:
|
|
goto tr125
|
|
}
|
|
goto tr124
|
|
st81:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof81
|
|
}
|
|
fallthrough
|
|
case 81:
|
|
switch data[p] {
|
|
case 65:
|
|
goto st82
|
|
case 97:
|
|
goto st82
|
|
}
|
|
goto st0
|
|
st82:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof82
|
|
}
|
|
fallthrough
|
|
case 82:
|
|
switch data[p] {
|
|
case 82:
|
|
goto st83
|
|
case 114:
|
|
goto st83
|
|
}
|
|
goto st0
|
|
st83:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof83
|
|
}
|
|
fallthrough
|
|
case 83:
|
|
switch data[p] {
|
|
case 65:
|
|
goto st84
|
|
case 97:
|
|
goto st84
|
|
}
|
|
goto st0
|
|
st84:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof84
|
|
}
|
|
fallthrough
|
|
case 84:
|
|
switch data[p] {
|
|
case 77:
|
|
goto st85
|
|
case 109:
|
|
goto st85
|
|
}
|
|
goto st0
|
|
st85:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof85
|
|
}
|
|
fallthrough
|
|
case 85:
|
|
switch data[p] {
|
|
case 9:
|
|
goto st86
|
|
case 32:
|
|
goto st86
|
|
}
|
|
goto st0
|
|
st86:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof86
|
|
}
|
|
fallthrough
|
|
case 86:
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr134
|
|
case 10:
|
|
goto st0
|
|
case 32:
|
|
goto tr134
|
|
}
|
|
goto tr133
|
|
tr133:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st87
|
|
st87:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof87
|
|
}
|
|
fallthrough
|
|
case 87:
|
|
// line 1740 "zparse.go"
|
|
if data[p] == 10 {
|
|
goto tr136
|
|
}
|
|
goto st87
|
|
tr134:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st88
|
|
st88:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof88
|
|
}
|
|
fallthrough
|
|
case 88:
|
|
// line 1752 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr134
|
|
case 10:
|
|
goto tr136
|
|
case 32:
|
|
goto tr134
|
|
}
|
|
goto tr133
|
|
tr10:
|
|
// line 120 "zparse.rl"
|
|
{ // ...
|
|
}
|
|
goto st89
|
|
st89:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof89
|
|
}
|
|
fallthrough
|
|
case 89:
|
|
// line 1768 "zparse.go"
|
|
switch data[p] {
|
|
case 84:
|
|
goto st90
|
|
case 116:
|
|
goto st90
|
|
}
|
|
goto st0
|
|
st90:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof90
|
|
}
|
|
fallthrough
|
|
case 90:
|
|
switch data[p] {
|
|
case 82:
|
|
goto st91
|
|
case 114:
|
|
goto st91
|
|
}
|
|
goto st0
|
|
st91:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof91
|
|
}
|
|
fallthrough
|
|
case 91:
|
|
switch data[p] {
|
|
case 9:
|
|
goto st92
|
|
case 32:
|
|
goto st92
|
|
}
|
|
goto st0
|
|
st92:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof92
|
|
}
|
|
fallthrough
|
|
case 92:
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr141
|
|
case 10:
|
|
goto st0
|
|
case 32:
|
|
goto tr141
|
|
}
|
|
goto tr140
|
|
tr140:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st93
|
|
st93:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof93
|
|
}
|
|
fallthrough
|
|
case 93:
|
|
// line 1814 "zparse.go"
|
|
if data[p] == 10 {
|
|
goto tr143
|
|
}
|
|
goto st93
|
|
tr141:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st94
|
|
st94:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof94
|
|
}
|
|
fallthrough
|
|
case 94:
|
|
// line 1826 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr141
|
|
case 10:
|
|
goto tr143
|
|
case 32:
|
|
goto tr141
|
|
}
|
|
goto tr140
|
|
tr11:
|
|
// line 120 "zparse.rl"
|
|
{ // ...
|
|
}
|
|
goto st95
|
|
st95:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof95
|
|
}
|
|
fallthrough
|
|
case 95:
|
|
// line 1842 "zparse.go"
|
|
switch data[p] {
|
|
case 82:
|
|
goto st96
|
|
case 114:
|
|
goto st96
|
|
}
|
|
goto st0
|
|
st96:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof96
|
|
}
|
|
fallthrough
|
|
case 96:
|
|
switch data[p] {
|
|
case 83:
|
|
goto st97
|
|
case 115:
|
|
goto st97
|
|
}
|
|
goto st0
|
|
st97:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof97
|
|
}
|
|
fallthrough
|
|
case 97:
|
|
switch data[p] {
|
|
case 73:
|
|
goto st98
|
|
case 105:
|
|
goto st98
|
|
}
|
|
goto st0
|
|
st98:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof98
|
|
}
|
|
fallthrough
|
|
case 98:
|
|
switch data[p] {
|
|
case 71:
|
|
goto st99
|
|
case 103:
|
|
goto st99
|
|
}
|
|
goto st0
|
|
st99:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof99
|
|
}
|
|
fallthrough
|
|
case 99:
|
|
switch data[p] {
|
|
case 9:
|
|
goto st100
|
|
case 32:
|
|
goto st100
|
|
}
|
|
goto st0
|
|
st100:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof100
|
|
}
|
|
fallthrough
|
|
case 100:
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr150
|
|
case 10:
|
|
goto st0
|
|
case 32:
|
|
goto tr150
|
|
}
|
|
goto tr149
|
|
tr149:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st101
|
|
st101:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof101
|
|
}
|
|
fallthrough
|
|
case 101:
|
|
// line 1908 "zparse.go"
|
|
if data[p] == 10 {
|
|
goto tr152
|
|
}
|
|
goto st101
|
|
tr150:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st102
|
|
st102:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof102
|
|
}
|
|
fallthrough
|
|
case 102:
|
|
// line 1920 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr150
|
|
case 10:
|
|
goto tr152
|
|
case 32:
|
|
goto tr150
|
|
}
|
|
goto tr149
|
|
tr12:
|
|
// line 120 "zparse.rl"
|
|
{ // ...
|
|
}
|
|
goto st103
|
|
st103:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof103
|
|
}
|
|
fallthrough
|
|
case 103:
|
|
// line 1936 "zparse.go"
|
|
switch data[p] {
|
|
case 79:
|
|
goto st104
|
|
case 82:
|
|
goto st109
|
|
case 83:
|
|
goto st114
|
|
case 111:
|
|
goto st104
|
|
case 114:
|
|
goto st109
|
|
case 115:
|
|
goto st114
|
|
}
|
|
goto st0
|
|
st104:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof104
|
|
}
|
|
fallthrough
|
|
case 104:
|
|
switch data[p] {
|
|
case 65:
|
|
goto st105
|
|
case 97:
|
|
goto st105
|
|
}
|
|
goto st0
|
|
st105:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof105
|
|
}
|
|
fallthrough
|
|
case 105:
|
|
switch data[p] {
|
|
case 9:
|
|
goto st106
|
|
case 32:
|
|
goto st106
|
|
}
|
|
goto st0
|
|
st106:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof106
|
|
}
|
|
fallthrough
|
|
case 106:
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr159
|
|
case 10:
|
|
goto st0
|
|
case 32:
|
|
goto tr159
|
|
}
|
|
goto tr158
|
|
tr158:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st107
|
|
st107:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof107
|
|
}
|
|
fallthrough
|
|
case 107:
|
|
// line 1986 "zparse.go"
|
|
if data[p] == 10 {
|
|
goto tr161
|
|
}
|
|
goto st107
|
|
tr159:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st108
|
|
st108:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof108
|
|
}
|
|
fallthrough
|
|
case 108:
|
|
// line 1998 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr159
|
|
case 10:
|
|
goto tr161
|
|
case 32:
|
|
goto tr159
|
|
}
|
|
goto tr158
|
|
st109:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof109
|
|
}
|
|
fallthrough
|
|
case 109:
|
|
switch data[p] {
|
|
case 86:
|
|
goto st110
|
|
case 118:
|
|
goto st110
|
|
}
|
|
goto st0
|
|
st110:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof110
|
|
}
|
|
fallthrough
|
|
case 110:
|
|
switch data[p] {
|
|
case 9:
|
|
goto st111
|
|
case 32:
|
|
goto st111
|
|
}
|
|
goto st0
|
|
st111:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof111
|
|
}
|
|
fallthrough
|
|
case 111:
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr165
|
|
case 10:
|
|
goto st0
|
|
case 32:
|
|
goto tr165
|
|
}
|
|
goto tr164
|
|
tr164:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st112
|
|
st112:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof112
|
|
}
|
|
fallthrough
|
|
case 112:
|
|
// line 2045 "zparse.go"
|
|
if data[p] == 10 {
|
|
goto tr167
|
|
}
|
|
goto st112
|
|
tr165:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st113
|
|
st113:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof113
|
|
}
|
|
fallthrough
|
|
case 113:
|
|
// line 2057 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr165
|
|
case 10:
|
|
goto tr167
|
|
case 32:
|
|
goto tr165
|
|
}
|
|
goto tr164
|
|
st114:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof114
|
|
}
|
|
fallthrough
|
|
case 114:
|
|
switch data[p] {
|
|
case 72:
|
|
goto st115
|
|
case 104:
|
|
goto st115
|
|
}
|
|
goto st0
|
|
st115:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof115
|
|
}
|
|
fallthrough
|
|
case 115:
|
|
switch data[p] {
|
|
case 70:
|
|
goto st116
|
|
case 102:
|
|
goto st116
|
|
}
|
|
goto st0
|
|
st116:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof116
|
|
}
|
|
fallthrough
|
|
case 116:
|
|
switch data[p] {
|
|
case 80:
|
|
goto st117
|
|
case 112:
|
|
goto st117
|
|
}
|
|
goto st0
|
|
st117:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof117
|
|
}
|
|
fallthrough
|
|
case 117:
|
|
switch data[p] {
|
|
case 9:
|
|
goto st118
|
|
case 32:
|
|
goto st118
|
|
}
|
|
goto st0
|
|
st118:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof118
|
|
}
|
|
fallthrough
|
|
case 118:
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr173
|
|
case 10:
|
|
goto st0
|
|
case 32:
|
|
goto tr173
|
|
}
|
|
goto tr172
|
|
tr172:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st119
|
|
st119:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof119
|
|
}
|
|
fallthrough
|
|
case 119:
|
|
// line 2124 "zparse.go"
|
|
if data[p] == 10 {
|
|
goto tr175
|
|
}
|
|
goto st119
|
|
tr173:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st120
|
|
st120:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof120
|
|
}
|
|
fallthrough
|
|
case 120:
|
|
// line 2136 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr173
|
|
case 10:
|
|
goto tr175
|
|
case 32:
|
|
goto tr173
|
|
}
|
|
goto tr172
|
|
tr13:
|
|
// line 120 "zparse.rl"
|
|
{ // ...
|
|
}
|
|
goto st121
|
|
st121:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof121
|
|
}
|
|
fallthrough
|
|
case 121:
|
|
// line 2152 "zparse.go"
|
|
switch data[p] {
|
|
case 65:
|
|
goto st122
|
|
case 88:
|
|
goto st126
|
|
case 97:
|
|
goto st122
|
|
case 120:
|
|
goto st126
|
|
}
|
|
goto st0
|
|
st122:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof122
|
|
}
|
|
fallthrough
|
|
case 122:
|
|
switch data[p] {
|
|
case 9:
|
|
goto st123
|
|
case 32:
|
|
goto st123
|
|
}
|
|
goto st0
|
|
st123:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof123
|
|
}
|
|
fallthrough
|
|
case 123:
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr180
|
|
case 10:
|
|
goto st0
|
|
case 32:
|
|
goto tr180
|
|
}
|
|
goto tr179
|
|
tr179:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st124
|
|
st124:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof124
|
|
}
|
|
fallthrough
|
|
case 124:
|
|
// line 2190 "zparse.go"
|
|
if data[p] == 10 {
|
|
goto tr182
|
|
}
|
|
goto st124
|
|
tr180:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st125
|
|
st125:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof125
|
|
}
|
|
fallthrough
|
|
case 125:
|
|
// line 2202 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr180
|
|
case 10:
|
|
goto tr182
|
|
case 32:
|
|
goto tr180
|
|
}
|
|
goto tr179
|
|
st126:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof126
|
|
}
|
|
fallthrough
|
|
case 126:
|
|
switch data[p] {
|
|
case 84:
|
|
goto st127
|
|
case 116:
|
|
goto st127
|
|
}
|
|
goto st0
|
|
st127:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof127
|
|
}
|
|
fallthrough
|
|
case 127:
|
|
switch data[p] {
|
|
case 9:
|
|
goto st128
|
|
case 32:
|
|
goto st128
|
|
}
|
|
goto st0
|
|
st128:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof128
|
|
}
|
|
fallthrough
|
|
case 128:
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr186
|
|
case 10:
|
|
goto st0
|
|
case 32:
|
|
goto tr186
|
|
}
|
|
goto tr185
|
|
tr185:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st129
|
|
st129:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof129
|
|
}
|
|
fallthrough
|
|
case 129:
|
|
// line 2249 "zparse.go"
|
|
if data[p] == 10 {
|
|
goto tr188
|
|
}
|
|
goto st129
|
|
tr186:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st130
|
|
st130:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof130
|
|
}
|
|
fallthrough
|
|
case 130:
|
|
// line 2261 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr186
|
|
case 10:
|
|
goto tr188
|
|
case 32:
|
|
goto tr186
|
|
}
|
|
goto tr185
|
|
tr20:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st131
|
|
st131:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof131
|
|
}
|
|
fallthrough
|
|
case 131:
|
|
// line 2277 "zparse.go"
|
|
switch data[p] {
|
|
case 83:
|
|
goto st21
|
|
case 115:
|
|
goto st21
|
|
}
|
|
goto st0
|
|
tr21:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st132
|
|
st132:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof132
|
|
}
|
|
fallthrough
|
|
case 132:
|
|
// line 2292 "zparse.go"
|
|
switch data[p] {
|
|
case 78:
|
|
goto st21
|
|
case 110:
|
|
goto st21
|
|
}
|
|
goto st0
|
|
tr4:
|
|
// line 120 "zparse.rl"
|
|
{ // ...
|
|
}
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st133
|
|
st133:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof133
|
|
}
|
|
fallthrough
|
|
case 133:
|
|
// line 2309 "zparse.go"
|
|
switch data[p] {
|
|
case 69:
|
|
goto st15
|
|
case 72:
|
|
goto st134
|
|
case 78:
|
|
goto st24
|
|
case 101:
|
|
goto st15
|
|
case 104:
|
|
goto st134
|
|
case 110:
|
|
goto st24
|
|
}
|
|
goto st0
|
|
st134:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof134
|
|
}
|
|
fallthrough
|
|
case 134:
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr190
|
|
case 32:
|
|
goto tr190
|
|
}
|
|
goto st0
|
|
tr190:
|
|
// line 119 "zparse.rl"
|
|
{
|
|
hdr.Class = str_class[data[mark:p]]
|
|
}
|
|
goto st135
|
|
st135:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof135
|
|
}
|
|
fallthrough
|
|
case 135:
|
|
// line 2338 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto st135
|
|
case 32:
|
|
goto st135
|
|
case 65:
|
|
goto st4
|
|
case 67:
|
|
goto st23
|
|
case 68:
|
|
goto st31
|
|
case 77:
|
|
goto st55
|
|
case 78:
|
|
goto st60
|
|
case 80:
|
|
goto st89
|
|
case 82:
|
|
goto st95
|
|
case 83:
|
|
goto st103
|
|
case 84:
|
|
goto st121
|
|
case 97:
|
|
goto st4
|
|
case 99:
|
|
goto st23
|
|
case 100:
|
|
goto st31
|
|
case 109:
|
|
goto st55
|
|
case 110:
|
|
goto st60
|
|
case 112:
|
|
goto st89
|
|
case 114:
|
|
goto st95
|
|
case 115:
|
|
goto st103
|
|
case 116:
|
|
goto st121
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 {
|
|
goto tr192
|
|
}
|
|
goto st0
|
|
tr192:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st136
|
|
st136:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof136
|
|
}
|
|
fallthrough
|
|
case 136:
|
|
// line 2372 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr193
|
|
case 32:
|
|
goto tr193
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 {
|
|
goto st136
|
|
}
|
|
goto st0
|
|
tr6:
|
|
// line 120 "zparse.rl"
|
|
{ // ...
|
|
}
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st137
|
|
st137:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof137
|
|
}
|
|
fallthrough
|
|
case 137:
|
|
// line 2390 "zparse.go"
|
|
switch data[p] {
|
|
case 83:
|
|
goto st134
|
|
case 115:
|
|
goto st134
|
|
}
|
|
goto st0
|
|
tr7:
|
|
// line 120 "zparse.rl"
|
|
{ // ...
|
|
}
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st138
|
|
st138:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof138
|
|
}
|
|
fallthrough
|
|
case 138:
|
|
// line 2407 "zparse.go"
|
|
switch data[p] {
|
|
case 78:
|
|
goto st134
|
|
case 110:
|
|
goto st134
|
|
}
|
|
goto st0
|
|
tr199:
|
|
// line 111 "zparse.rl"
|
|
{
|
|
mark = p
|
|
}
|
|
goto st139
|
|
st139:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof139
|
|
}
|
|
fallthrough
|
|
case 139:
|
|
// line 2422 "zparse.go"
|
|
switch data[p] {
|
|
case 9:
|
|
goto tr195
|
|
case 32:
|
|
goto tr195
|
|
case 42:
|
|
goto st139
|
|
case 95:
|
|
goto st139
|
|
}
|
|
if data[p] < 48 {
|
|
if 45 <= data[p] && data[p] <= 46 {
|
|
goto st139
|
|
}
|
|
} else if data[p] > 57 {
|
|
if data[p] > 90 {
|
|
if 97 <= data[p] && data[p] <= 122 {
|
|
goto st139
|
|
}
|
|
} else if data[p] >= 65 {
|
|
goto st139
|
|
}
|
|
} else {
|
|
goto st139
|
|
}
|
|
goto st0
|
|
st140:
|
|
p++
|
|
if p == pe {
|
|
goto _test_eof140
|
|
}
|
|
fallthrough
|
|
case 140:
|
|
if data[p] == 10 {
|
|
goto tr198
|
|
}
|
|
goto st140
|
|
}
|
|
_test_eof141:
|
|
cs = 141
|
|
goto _test_eof
|
|
_test_eof1:
|
|
cs = 1
|
|
goto _test_eof
|
|
_test_eof2:
|
|
cs = 2
|
|
goto _test_eof
|
|
_test_eof3:
|
|
cs = 3
|
|
goto _test_eof
|
|
_test_eof4:
|
|
cs = 4
|
|
goto _test_eof
|
|
_test_eof5:
|
|
cs = 5
|
|
goto _test_eof
|
|
_test_eof6:
|
|
cs = 6
|
|
goto _test_eof
|
|
_test_eof7:
|
|
cs = 7
|
|
goto _test_eof
|
|
_test_eof8:
|
|
cs = 8
|
|
goto _test_eof
|
|
_test_eof9:
|
|
cs = 9
|
|
goto _test_eof
|
|
_test_eof10:
|
|
cs = 10
|
|
goto _test_eof
|
|
_test_eof11:
|
|
cs = 11
|
|
goto _test_eof
|
|
_test_eof12:
|
|
cs = 12
|
|
goto _test_eof
|
|
_test_eof13:
|
|
cs = 13
|
|
goto _test_eof
|
|
_test_eof14:
|
|
cs = 14
|
|
goto _test_eof
|
|
_test_eof15:
|
|
cs = 15
|
|
goto _test_eof
|
|
_test_eof16:
|
|
cs = 16
|
|
goto _test_eof
|
|
_test_eof17:
|
|
cs = 17
|
|
goto _test_eof
|
|
_test_eof18:
|
|
cs = 18
|
|
goto _test_eof
|
|
_test_eof19:
|
|
cs = 19
|
|
goto _test_eof
|
|
_test_eof20:
|
|
cs = 20
|
|
goto _test_eof
|
|
_test_eof21:
|
|
cs = 21
|
|
goto _test_eof
|
|
_test_eof22:
|
|
cs = 22
|
|
goto _test_eof
|
|
_test_eof23:
|
|
cs = 23
|
|
goto _test_eof
|
|
_test_eof24:
|
|
cs = 24
|
|
goto _test_eof
|
|
_test_eof25:
|
|
cs = 25
|
|
goto _test_eof
|
|
_test_eof26:
|
|
cs = 26
|
|
goto _test_eof
|
|
_test_eof27:
|
|
cs = 27
|
|
goto _test_eof
|
|
_test_eof28:
|
|
cs = 28
|
|
goto _test_eof
|
|
_test_eof29:
|
|
cs = 29
|
|
goto _test_eof
|
|
_test_eof30:
|
|
cs = 30
|
|
goto _test_eof
|
|
_test_eof31:
|
|
cs = 31
|
|
goto _test_eof
|
|
_test_eof32:
|
|
cs = 32
|
|
goto _test_eof
|
|
_test_eof33:
|
|
cs = 33
|
|
goto _test_eof
|
|
_test_eof34:
|
|
cs = 34
|
|
goto _test_eof
|
|
_test_eof35:
|
|
cs = 35
|
|
goto _test_eof
|
|
_test_eof36:
|
|
cs = 36
|
|
goto _test_eof
|
|
_test_eof37:
|
|
cs = 37
|
|
goto _test_eof
|
|
_test_eof38:
|
|
cs = 38
|
|
goto _test_eof
|
|
_test_eof39:
|
|
cs = 39
|
|
goto _test_eof
|
|
_test_eof40:
|
|
cs = 40
|
|
goto _test_eof
|
|
_test_eof41:
|
|
cs = 41
|
|
goto _test_eof
|
|
_test_eof42:
|
|
cs = 42
|
|
goto _test_eof
|
|
_test_eof43:
|
|
cs = 43
|
|
goto _test_eof
|
|
_test_eof44:
|
|
cs = 44
|
|
goto _test_eof
|
|
_test_eof45:
|
|
cs = 45
|
|
goto _test_eof
|
|
_test_eof46:
|
|
cs = 46
|
|
goto _test_eof
|
|
_test_eof47:
|
|
cs = 47
|
|
goto _test_eof
|
|
_test_eof48:
|
|
cs = 48
|
|
goto _test_eof
|
|
_test_eof49:
|
|
cs = 49
|
|
goto _test_eof
|
|
_test_eof50:
|
|
cs = 50
|
|
goto _test_eof
|
|
_test_eof51:
|
|
cs = 51
|
|
goto _test_eof
|
|
_test_eof52:
|
|
cs = 52
|
|
goto _test_eof
|
|
_test_eof53:
|
|
cs = 53
|
|
goto _test_eof
|
|
_test_eof54:
|
|
cs = 54
|
|
goto _test_eof
|
|
_test_eof55:
|
|
cs = 55
|
|
goto _test_eof
|
|
_test_eof56:
|
|
cs = 56
|
|
goto _test_eof
|
|
_test_eof57:
|
|
cs = 57
|
|
goto _test_eof
|
|
_test_eof58:
|
|
cs = 58
|
|
goto _test_eof
|
|
_test_eof59:
|
|
cs = 59
|
|
goto _test_eof
|
|
_test_eof60:
|
|
cs = 60
|
|
goto _test_eof
|
|
_test_eof61:
|
|
cs = 61
|
|
goto _test_eof
|
|
_test_eof62:
|
|
cs = 62
|
|
goto _test_eof
|
|
_test_eof63:
|
|
cs = 63
|
|
goto _test_eof
|
|
_test_eof64:
|
|
cs = 64
|
|
goto _test_eof
|
|
_test_eof65:
|
|
cs = 65
|
|
goto _test_eof
|
|
_test_eof66:
|
|
cs = 66
|
|
goto _test_eof
|
|
_test_eof67:
|
|
cs = 67
|
|
goto _test_eof
|
|
_test_eof68:
|
|
cs = 68
|
|
goto _test_eof
|
|
_test_eof69:
|
|
cs = 69
|
|
goto _test_eof
|
|
_test_eof70:
|
|
cs = 70
|
|
goto _test_eof
|
|
_test_eof71:
|
|
cs = 71
|
|
goto _test_eof
|
|
_test_eof72:
|
|
cs = 72
|
|
goto _test_eof
|
|
_test_eof73:
|
|
cs = 73
|
|
goto _test_eof
|
|
_test_eof74:
|
|
cs = 74
|
|
goto _test_eof
|
|
_test_eof75:
|
|
cs = 75
|
|
goto _test_eof
|
|
_test_eof76:
|
|
cs = 76
|
|
goto _test_eof
|
|
_test_eof77:
|
|
cs = 77
|
|
goto _test_eof
|
|
_test_eof78:
|
|
cs = 78
|
|
goto _test_eof
|
|
_test_eof79:
|
|
cs = 79
|
|
goto _test_eof
|
|
_test_eof80:
|
|
cs = 80
|
|
goto _test_eof
|
|
_test_eof81:
|
|
cs = 81
|
|
goto _test_eof
|
|
_test_eof82:
|
|
cs = 82
|
|
goto _test_eof
|
|
_test_eof83:
|
|
cs = 83
|
|
goto _test_eof
|
|
_test_eof84:
|
|
cs = 84
|
|
goto _test_eof
|
|
_test_eof85:
|
|
cs = 85
|
|
goto _test_eof
|
|
_test_eof86:
|
|
cs = 86
|
|
goto _test_eof
|
|
_test_eof87:
|
|
cs = 87
|
|
goto _test_eof
|
|
_test_eof88:
|
|
cs = 88
|
|
goto _test_eof
|
|
_test_eof89:
|
|
cs = 89
|
|
goto _test_eof
|
|
_test_eof90:
|
|
cs = 90
|
|
goto _test_eof
|
|
_test_eof91:
|
|
cs = 91
|
|
goto _test_eof
|
|
_test_eof92:
|
|
cs = 92
|
|
goto _test_eof
|
|
_test_eof93:
|
|
cs = 93
|
|
goto _test_eof
|
|
_test_eof94:
|
|
cs = 94
|
|
goto _test_eof
|
|
_test_eof95:
|
|
cs = 95
|
|
goto _test_eof
|
|
_test_eof96:
|
|
cs = 96
|
|
goto _test_eof
|
|
_test_eof97:
|
|
cs = 97
|
|
goto _test_eof
|
|
_test_eof98:
|
|
cs = 98
|
|
goto _test_eof
|
|
_test_eof99:
|
|
cs = 99
|
|
goto _test_eof
|
|
_test_eof100:
|
|
cs = 100
|
|
goto _test_eof
|
|
_test_eof101:
|
|
cs = 101
|
|
goto _test_eof
|
|
_test_eof102:
|
|
cs = 102
|
|
goto _test_eof
|
|
_test_eof103:
|
|
cs = 103
|
|
goto _test_eof
|
|
_test_eof104:
|
|
cs = 104
|
|
goto _test_eof
|
|
_test_eof105:
|
|
cs = 105
|
|
goto _test_eof
|
|
_test_eof106:
|
|
cs = 106
|
|
goto _test_eof
|
|
_test_eof107:
|
|
cs = 107
|
|
goto _test_eof
|
|
_test_eof108:
|
|
cs = 108
|
|
goto _test_eof
|
|
_test_eof109:
|
|
cs = 109
|
|
goto _test_eof
|
|
_test_eof110:
|
|
cs = 110
|
|
goto _test_eof
|
|
_test_eof111:
|
|
cs = 111
|
|
goto _test_eof
|
|
_test_eof112:
|
|
cs = 112
|
|
goto _test_eof
|
|
_test_eof113:
|
|
cs = 113
|
|
goto _test_eof
|
|
_test_eof114:
|
|
cs = 114
|
|
goto _test_eof
|
|
_test_eof115:
|
|
cs = 115
|
|
goto _test_eof
|
|
_test_eof116:
|
|
cs = 116
|
|
goto _test_eof
|
|
_test_eof117:
|
|
cs = 117
|
|
goto _test_eof
|
|
_test_eof118:
|
|
cs = 118
|
|
goto _test_eof
|
|
_test_eof119:
|
|
cs = 119
|
|
goto _test_eof
|
|
_test_eof120:
|
|
cs = 120
|
|
goto _test_eof
|
|
_test_eof121:
|
|
cs = 121
|
|
goto _test_eof
|
|
_test_eof122:
|
|
cs = 122
|
|
goto _test_eof
|
|
_test_eof123:
|
|
cs = 123
|
|
goto _test_eof
|
|
_test_eof124:
|
|
cs = 124
|
|
goto _test_eof
|
|
_test_eof125:
|
|
cs = 125
|
|
goto _test_eof
|
|
_test_eof126:
|
|
cs = 126
|
|
goto _test_eof
|
|
_test_eof127:
|
|
cs = 127
|
|
goto _test_eof
|
|
_test_eof128:
|
|
cs = 128
|
|
goto _test_eof
|
|
_test_eof129:
|
|
cs = 129
|
|
goto _test_eof
|
|
_test_eof130:
|
|
cs = 130
|
|
goto _test_eof
|
|
_test_eof131:
|
|
cs = 131
|
|
goto _test_eof
|
|
_test_eof132:
|
|
cs = 132
|
|
goto _test_eof
|
|
_test_eof133:
|
|
cs = 133
|
|
goto _test_eof
|
|
_test_eof134:
|
|
cs = 134
|
|
goto _test_eof
|
|
_test_eof135:
|
|
cs = 135
|
|
goto _test_eof
|
|
_test_eof136:
|
|
cs = 136
|
|
goto _test_eof
|
|
_test_eof137:
|
|
cs = 137
|
|
goto _test_eof
|
|
_test_eof138:
|
|
cs = 138
|
|
goto _test_eof
|
|
_test_eof139:
|
|
cs = 139
|
|
goto _test_eof
|
|
_test_eof140:
|
|
cs = 140
|
|
goto _test_eof
|
|
|
|
_test_eof:
|
|
{
|
|
}
|
|
_out:
|
|
{
|
|
}
|
|
}
|
|
|
|
// line 178 "zparse.rl"
|
|
|
|
|
|
if eof > -1 {
|
|
if cs < z_first_final {
|
|
// No clue what I'm doing what so ever
|
|
if p == pe {
|
|
println("p", p, "pe", pe)
|
|
println("cs", cs, "z_first_final", z_first_final)
|
|
println("unexpected eof at line ", l)
|
|
return z, nil
|
|
} else {
|
|
println("error at position ", p, "\"", data[mark:p], "\" at line ", l)
|
|
return z, nil
|
|
}
|
|
}
|
|
}
|
|
*/
|
|
return z, nil
|
|
}
|