mirror of
https://github.com/miekg/dns.git
synced 2025-08-12 04:26:58 +02:00
From cznic: Let me suggest something like: x := rr.(*RR_SOA) x.Hdr = *hdr x.Ns = tok.T[0] ... to avoid repeated type assertion - unnecessary for the still same 'rr'.
2702 lines
52 KiB
Go
2702 lines
52 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"
|
|
"strconv"
|
|
)
|
|
|
|
const _RDATAMAX = 7
|
|
const _IOBUF = 65365
|
|
|
|
// Save up tokens, after we've seen the entire rdata
|
|
// we can use this.
|
|
type token struct {
|
|
T []string // text
|
|
N []int // number
|
|
ti int // text counter
|
|
ni int // number counter
|
|
}
|
|
|
|
func newToken() *token {
|
|
to := new(token)
|
|
to.T = make([]string, _RDATAMAX)
|
|
to.N = make([]int, _RDATAMAX)
|
|
to.ni, to.ti = 0, 0
|
|
return to
|
|
}
|
|
|
|
// Only push functions are provided. Reading is done, by directly
|
|
// accessing the members (T and N). See types.rl.
|
|
func (to *token) pushInt(s string) {
|
|
i, err := strconv.Atoi(s)
|
|
if err != nil {
|
|
panic("Failure to parse to int: " + s)
|
|
}
|
|
to.N[to.ni] = i
|
|
to.ni++
|
|
if to.ni > _RDATAMAX {
|
|
panic("Too much rdata (int)")
|
|
}
|
|
}
|
|
|
|
func (to *token) pushString(s string) {
|
|
to.T[to.ti] = s
|
|
to.ti++
|
|
if to.ti > _RDATAMAX {
|
|
panic("Too much rdata (string)")
|
|
}
|
|
}
|
|
|
|
func (to *token) reset() {
|
|
to.ni, to.ti = 0, 0
|
|
}
|
|
|
|
|
|
// line 63 "zparse.go"
|
|
var z_start int = 1
|
|
var z_first_final int = 106
|
|
var z_error int = 0
|
|
|
|
var z_en_main int = 1
|
|
|
|
|
|
// line 62 "zparse.rl"
|
|
|
|
|
|
// SetString
|
|
// All the NewReader stuff is expensive...
|
|
// only works for short io.Readers as we put the whole thing
|
|
// in a string -- needs to be extended for large files (sliding window).
|
|
func Zparse(q io.Reader) (z *Zone, err os.Error) {
|
|
buf := make([]byte, _IOBUF)
|
|
n, err := q.Read(buf)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
buf = buf[:n]
|
|
z = new(Zone)
|
|
|
|
data := string(buf)
|
|
cs, p, pe, eof := 0, 0, len(data), len(data)
|
|
mark := 0
|
|
hdr := new(RR_Header)
|
|
tok := newToken()
|
|
var rr RR
|
|
|
|
|
|
// line 95 "zparse.go"
|
|
cs = z_start
|
|
|
|
// line 98 "zparse.go"
|
|
{
|
|
if p == pe { goto _test_eof }
|
|
switch cs {
|
|
case -666: // i am a hack D:
|
|
fallthrough
|
|
case 1:
|
|
switch data[p] {
|
|
case 9: goto st2
|
|
case 32: goto st2
|
|
case 92: goto st7
|
|
case 95: goto st7
|
|
}
|
|
if data[p] < 48 {
|
|
if 45 <= data[p] && data[p] <= 46 { goto st7 }
|
|
} else if data[p] > 57 {
|
|
if data[p] > 90 {
|
|
if 97 <= data[p] && data[p] <= 122 { goto st7 }
|
|
} else if data[p] >= 65 {
|
|
goto st7
|
|
}
|
|
} else {
|
|
goto st7
|
|
}
|
|
goto st0
|
|
st0:
|
|
cs = 0;
|
|
goto _out;
|
|
tr30:
|
|
// line 87 "zparse.rl"
|
|
{ hdr.Name = data[mark:p] }
|
|
goto st2
|
|
tr176:
|
|
// line 92 "zparse.rl"
|
|
{ tok.pushString(data[mark:p]) }
|
|
// line 4 "types.rl"
|
|
{
|
|
x := rr.(*RR_A)
|
|
x.Hdr = *hdr
|
|
x.A = net.ParseIP(tok.T[0])
|
|
}
|
|
// line 94 "zparse.rl"
|
|
{ z.Push(rr); tok.reset(); println("setting") }
|
|
goto st2
|
|
tr179:
|
|
// line 92 "zparse.rl"
|
|
{ tok.pushString(data[mark:p]) }
|
|
// line 9 "types.rl"
|
|
{
|
|
x := rr.(*RR_AAAA)
|
|
x.Hdr = *hdr
|
|
x.AAAA = net.ParseIP(tok.T[0])
|
|
}
|
|
// line 94 "zparse.rl"
|
|
{ z.Push(rr); tok.reset(); println("setting") }
|
|
goto st2
|
|
tr182:
|
|
// line 92 "zparse.rl"
|
|
{ tok.pushString(data[mark:p]) }
|
|
// line 19 "types.rl"
|
|
{
|
|
x := rr.(*RR_CNAME)
|
|
x.Hdr = *hdr
|
|
x.Cname = tok.T[0]
|
|
}
|
|
// line 94 "zparse.rl"
|
|
{ z.Push(rr); tok.reset(); println("setting") }
|
|
goto st2
|
|
tr185:
|
|
// line 92 "zparse.rl"
|
|
{ tok.pushString(data[mark:p]) }
|
|
// line 49 "types.rl"
|
|
{
|
|
x := rr.(*RR_DNSKEY)
|
|
x.Hdr = *hdr;
|
|
x.Flags = uint16(tok.N[0])
|
|
x.Protocol = uint8(tok.N[1])
|
|
x.Algorithm = uint8(tok.N[2])
|
|
x.PublicKey = tok.T[0]
|
|
}
|
|
// line 94 "zparse.rl"
|
|
{ z.Push(rr); tok.reset(); println("setting") }
|
|
goto st2
|
|
tr188:
|
|
// line 92 "zparse.rl"
|
|
{ tok.pushString(data[mark:p]) }
|
|
// line 41 "types.rl"
|
|
{
|
|
x := rr.(*RR_DS)
|
|
x.Hdr = *hdr;
|
|
x.KeyTag = uint16(tok.N[0])
|
|
x.Algorithm = uint8(tok.N[1])
|
|
x.DigestType = uint8(tok.N[2])
|
|
x.Digest = tok.T[0]
|
|
}
|
|
// line 94 "zparse.rl"
|
|
{ z.Push(rr); tok.reset(); println("setting") }
|
|
goto st2
|
|
tr191:
|
|
// line 92 "zparse.rl"
|
|
{ tok.pushString(data[mark:p]) }
|
|
// line 35 "types.rl"
|
|
{
|
|
x := rr.(*RR_MX)
|
|
x.Hdr = *hdr;
|
|
x.Pref = uint16(tok.N[0])
|
|
x.Mx = tok.T[0]
|
|
}
|
|
// line 94 "zparse.rl"
|
|
{ z.Push(rr); tok.reset(); println("setting") }
|
|
goto st2
|
|
tr194:
|
|
// line 92 "zparse.rl"
|
|
{ tok.pushString(data[mark:p]) }
|
|
// line 14 "types.rl"
|
|
{
|
|
x := rr.(*RR_NS)
|
|
x.Hdr = *hdr
|
|
x.Ns = tok.T[0]
|
|
}
|
|
// line 94 "zparse.rl"
|
|
{ z.Push(rr); tok.reset(); println("setting") }
|
|
goto st2
|
|
tr197:
|
|
// line 92 "zparse.rl"
|
|
{ tok.pushString(data[mark:p]) }
|
|
// line 57 "types.rl"
|
|
{
|
|
x := rr.(*RR_RRSIG)
|
|
x.Hdr = *hdr;
|
|
x.TypeCovered = uint16(tok.N[0])
|
|
x.Algorithm = uint8(tok.N[1])
|
|
x.Labels = uint8(tok.N[2])
|
|
x.OrigTtl = uint32(tok.N[3])
|
|
x.Expiration = uint32(tok.N[4])
|
|
x.Inception = uint32(tok.N[5])
|
|
x.KeyTag = uint16(tok.N[6])
|
|
x.SignerName = tok.T[0]
|
|
x.Signature = tok.T[1]
|
|
}
|
|
// line 94 "zparse.rl"
|
|
{ z.Push(rr); tok.reset(); println("setting") }
|
|
goto st2
|
|
tr200:
|
|
// line 91 "zparse.rl"
|
|
{ tok.pushInt(data[mark:p]) }
|
|
// line 24 "types.rl"
|
|
{
|
|
x := rr.(*RR_SOA)
|
|
x.Hdr = *hdr
|
|
x.Ns = tok.T[0]
|
|
x.Mbox = tok.T[1]
|
|
x.Serial = uint32(tok.N[0])
|
|
x.Refresh = uint32(tok.N[1])
|
|
x.Retry = uint32(tok.N[2])
|
|
x.Expire = uint32(tok.N[3])
|
|
x.Minttl = uint32(tok.N[4])
|
|
}
|
|
// line 94 "zparse.rl"
|
|
{ z.Push(rr); tok.reset(); println("setting") }
|
|
goto st2
|
|
st2:
|
|
p++
|
|
if p == pe { goto _test_eof2 }
|
|
fallthrough
|
|
case 2:
|
|
// line 264 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st2
|
|
case 32: goto st2
|
|
case 65: goto tr4
|
|
case 67: goto tr5
|
|
case 68: goto tr6
|
|
case 72: goto tr7
|
|
case 73: goto tr8
|
|
case 77: goto tr9
|
|
case 78: goto tr10
|
|
case 82: goto tr11
|
|
case 83: goto tr12
|
|
case 97: goto tr4
|
|
case 99: goto tr5
|
|
case 100: goto tr6
|
|
case 104: goto tr7
|
|
case 105: goto tr8
|
|
case 109: goto tr9
|
|
case 110: goto tr10
|
|
case 114: goto tr11
|
|
case 115: goto tr12
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto tr3 }
|
|
goto st0
|
|
tr3:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
// line 89 "zparse.rl"
|
|
{ /* ... */ }
|
|
goto st3
|
|
st3:
|
|
p++
|
|
if p == pe { goto _test_eof3 }
|
|
fallthrough
|
|
case 3:
|
|
// line 300 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr13
|
|
case 32: goto tr13
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto st3 }
|
|
goto st0
|
|
tr13:
|
|
// line 90 "zparse.rl"
|
|
{ ttl, _ := strconv.Atoi(data[mark:p]); hdr.Ttl = uint32(ttl) }
|
|
goto st4
|
|
st4:
|
|
p++
|
|
if p == pe { goto _test_eof4 }
|
|
fallthrough
|
|
case 4:
|
|
// line 316 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st4
|
|
case 32: goto st4
|
|
case 65: goto tr16
|
|
case 67: goto tr17
|
|
case 68: goto tr18
|
|
case 72: goto tr19
|
|
case 73: goto tr20
|
|
case 77: goto tr21
|
|
case 78: goto tr22
|
|
case 82: goto tr23
|
|
case 83: goto tr24
|
|
case 97: goto tr16
|
|
case 99: goto tr17
|
|
case 100: goto tr18
|
|
case 104: goto tr19
|
|
case 105: goto tr20
|
|
case 109: goto tr21
|
|
case 110: goto tr22
|
|
case 114: goto tr23
|
|
case 115: goto tr24
|
|
}
|
|
goto st0
|
|
tr16:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st5
|
|
st5:
|
|
p++
|
|
if p == pe { goto _test_eof5 }
|
|
fallthrough
|
|
case 5:
|
|
// line 349 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr25
|
|
case 32: goto tr25
|
|
case 65: goto st8
|
|
case 78: goto st12
|
|
case 97: goto st8
|
|
case 110: goto st12
|
|
}
|
|
goto st0
|
|
tr25:
|
|
// line 96 "zparse.rl"
|
|
{
|
|
i := Str_rr[data[mark:p]]
|
|
mk, known := rr_mk[int(i)]
|
|
if ! known {
|
|
println("Unknown type seen: " + data[mark:p])
|
|
// panic?
|
|
}
|
|
rr = mk()
|
|
hdr.Rrtype = i
|
|
}
|
|
goto st6
|
|
st6:
|
|
p++
|
|
if p == pe { goto _test_eof6 }
|
|
fallthrough
|
|
case 6:
|
|
// line 377 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st6
|
|
case 32: goto st6
|
|
case 43: goto tr29
|
|
case 61: goto tr29
|
|
case 92: goto tr29
|
|
}
|
|
if data[p] < 65 {
|
|
if 45 <= data[p] && data[p] <= 58 { goto tr29 }
|
|
} else if data[p] > 90 {
|
|
if 97 <= data[p] && data[p] <= 122 { goto tr29 }
|
|
} else {
|
|
goto tr29
|
|
}
|
|
goto st0
|
|
tr29:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st106
|
|
st106:
|
|
p++
|
|
if p == pe { goto _test_eof106 }
|
|
fallthrough
|
|
case 106:
|
|
// line 402 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr176
|
|
case 32: goto tr176
|
|
case 43: goto st106
|
|
case 61: goto st106
|
|
case 92: goto st106
|
|
case 95: goto tr178
|
|
}
|
|
if data[p] < 65 {
|
|
if 45 <= data[p] && data[p] <= 58 { goto st106 }
|
|
} else if data[p] > 90 {
|
|
if 97 <= data[p] && data[p] <= 122 { goto st106 }
|
|
} else {
|
|
goto st106
|
|
}
|
|
goto st0
|
|
tr178:
|
|
// line 92 "zparse.rl"
|
|
{ tok.pushString(data[mark:p]) }
|
|
// line 4 "types.rl"
|
|
{
|
|
x := rr.(*RR_A)
|
|
x.Hdr = *hdr
|
|
x.A = net.ParseIP(tok.T[0])
|
|
}
|
|
// line 94 "zparse.rl"
|
|
{ z.Push(rr); tok.reset(); println("setting") }
|
|
goto st7
|
|
tr181:
|
|
// line 92 "zparse.rl"
|
|
{ tok.pushString(data[mark:p]) }
|
|
// line 9 "types.rl"
|
|
{
|
|
x := rr.(*RR_AAAA)
|
|
x.Hdr = *hdr
|
|
x.AAAA = net.ParseIP(tok.T[0])
|
|
}
|
|
// line 94 "zparse.rl"
|
|
{ z.Push(rr); tok.reset(); println("setting") }
|
|
goto st7
|
|
tr184:
|
|
// line 92 "zparse.rl"
|
|
{ tok.pushString(data[mark:p]) }
|
|
// line 19 "types.rl"
|
|
{
|
|
x := rr.(*RR_CNAME)
|
|
x.Hdr = *hdr
|
|
x.Cname = tok.T[0]
|
|
}
|
|
// line 94 "zparse.rl"
|
|
{ z.Push(rr); tok.reset(); println("setting") }
|
|
goto st7
|
|
tr187:
|
|
// line 92 "zparse.rl"
|
|
{ tok.pushString(data[mark:p]) }
|
|
// line 49 "types.rl"
|
|
{
|
|
x := rr.(*RR_DNSKEY)
|
|
x.Hdr = *hdr;
|
|
x.Flags = uint16(tok.N[0])
|
|
x.Protocol = uint8(tok.N[1])
|
|
x.Algorithm = uint8(tok.N[2])
|
|
x.PublicKey = tok.T[0]
|
|
}
|
|
// line 94 "zparse.rl"
|
|
{ z.Push(rr); tok.reset(); println("setting") }
|
|
goto st7
|
|
tr190:
|
|
// line 92 "zparse.rl"
|
|
{ tok.pushString(data[mark:p]) }
|
|
// line 41 "types.rl"
|
|
{
|
|
x := rr.(*RR_DS)
|
|
x.Hdr = *hdr;
|
|
x.KeyTag = uint16(tok.N[0])
|
|
x.Algorithm = uint8(tok.N[1])
|
|
x.DigestType = uint8(tok.N[2])
|
|
x.Digest = tok.T[0]
|
|
}
|
|
// line 94 "zparse.rl"
|
|
{ z.Push(rr); tok.reset(); println("setting") }
|
|
goto st7
|
|
tr193:
|
|
// line 92 "zparse.rl"
|
|
{ tok.pushString(data[mark:p]) }
|
|
// line 35 "types.rl"
|
|
{
|
|
x := rr.(*RR_MX)
|
|
x.Hdr = *hdr;
|
|
x.Pref = uint16(tok.N[0])
|
|
x.Mx = tok.T[0]
|
|
}
|
|
// line 94 "zparse.rl"
|
|
{ z.Push(rr); tok.reset(); println("setting") }
|
|
goto st7
|
|
tr196:
|
|
// line 92 "zparse.rl"
|
|
{ tok.pushString(data[mark:p]) }
|
|
// line 14 "types.rl"
|
|
{
|
|
x := rr.(*RR_NS)
|
|
x.Hdr = *hdr
|
|
x.Ns = tok.T[0]
|
|
}
|
|
// line 94 "zparse.rl"
|
|
{ z.Push(rr); tok.reset(); println("setting") }
|
|
goto st7
|
|
tr199:
|
|
// line 92 "zparse.rl"
|
|
{ tok.pushString(data[mark:p]) }
|
|
// line 57 "types.rl"
|
|
{
|
|
x := rr.(*RR_RRSIG)
|
|
x.Hdr = *hdr;
|
|
x.TypeCovered = uint16(tok.N[0])
|
|
x.Algorithm = uint8(tok.N[1])
|
|
x.Labels = uint8(tok.N[2])
|
|
x.OrigTtl = uint32(tok.N[3])
|
|
x.Expiration = uint32(tok.N[4])
|
|
x.Inception = uint32(tok.N[5])
|
|
x.KeyTag = uint16(tok.N[6])
|
|
x.SignerName = tok.T[0]
|
|
x.Signature = tok.T[1]
|
|
}
|
|
// line 94 "zparse.rl"
|
|
{ z.Push(rr); tok.reset(); println("setting") }
|
|
goto st7
|
|
tr201:
|
|
// line 91 "zparse.rl"
|
|
{ tok.pushInt(data[mark:p]) }
|
|
// line 24 "types.rl"
|
|
{
|
|
x := rr.(*RR_SOA)
|
|
x.Hdr = *hdr
|
|
x.Ns = tok.T[0]
|
|
x.Mbox = tok.T[1]
|
|
x.Serial = uint32(tok.N[0])
|
|
x.Refresh = uint32(tok.N[1])
|
|
x.Retry = uint32(tok.N[2])
|
|
x.Expire = uint32(tok.N[3])
|
|
x.Minttl = uint32(tok.N[4])
|
|
}
|
|
// line 94 "zparse.rl"
|
|
{ z.Push(rr); tok.reset(); println("setting") }
|
|
goto st7
|
|
st7:
|
|
p++
|
|
if p == pe { goto _test_eof7 }
|
|
fallthrough
|
|
case 7:
|
|
// line 553 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr30
|
|
case 32: goto tr30
|
|
case 92: goto st7
|
|
case 95: goto st7
|
|
}
|
|
if data[p] < 48 {
|
|
if 45 <= data[p] && data[p] <= 46 { goto st7 }
|
|
} else if data[p] > 57 {
|
|
if data[p] > 90 {
|
|
if 97 <= data[p] && data[p] <= 122 { goto st7 }
|
|
} else if data[p] >= 65 {
|
|
goto st7
|
|
}
|
|
} else {
|
|
goto st7
|
|
}
|
|
goto st0
|
|
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 tr33
|
|
case 32: goto tr33
|
|
}
|
|
goto st0
|
|
tr33:
|
|
// line 96 "zparse.rl"
|
|
{
|
|
i := Str_rr[data[mark:p]]
|
|
mk, known := rr_mk[int(i)]
|
|
if ! known {
|
|
println("Unknown type seen: " + data[mark:p])
|
|
// panic?
|
|
}
|
|
rr = mk()
|
|
hdr.Rrtype = i
|
|
}
|
|
goto st11
|
|
st11:
|
|
p++
|
|
if p == pe { goto _test_eof11 }
|
|
fallthrough
|
|
case 11:
|
|
// line 620 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st11
|
|
case 32: goto st11
|
|
case 43: goto tr35
|
|
case 61: goto tr35
|
|
case 92: goto tr35
|
|
}
|
|
if data[p] < 65 {
|
|
if 45 <= data[p] && data[p] <= 58 { goto tr35 }
|
|
} else if data[p] > 90 {
|
|
if 97 <= data[p] && data[p] <= 122 { goto tr35 }
|
|
} else {
|
|
goto tr35
|
|
}
|
|
goto st0
|
|
tr35:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st107
|
|
st107:
|
|
p++
|
|
if p == pe { goto _test_eof107 }
|
|
fallthrough
|
|
case 107:
|
|
// line 645 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr179
|
|
case 32: goto tr179
|
|
case 43: goto st107
|
|
case 61: goto st107
|
|
case 92: goto st107
|
|
case 95: goto tr181
|
|
}
|
|
if data[p] < 65 {
|
|
if 45 <= data[p] && data[p] <= 58 { goto st107 }
|
|
} else if data[p] > 90 {
|
|
if 97 <= data[p] && data[p] <= 122 { goto st107 }
|
|
} else {
|
|
goto st107
|
|
}
|
|
goto st0
|
|
st12:
|
|
p++
|
|
if p == pe { goto _test_eof12 }
|
|
fallthrough
|
|
case 12:
|
|
switch data[p] {
|
|
case 89: goto st13
|
|
case 121: goto st13
|
|
}
|
|
goto st0
|
|
st13:
|
|
p++
|
|
if p == pe { goto _test_eof13 }
|
|
fallthrough
|
|
case 13:
|
|
switch data[p] {
|
|
case 9: goto tr37
|
|
case 32: goto tr37
|
|
}
|
|
goto st0
|
|
tr172:
|
|
// line 90 "zparse.rl"
|
|
{ ttl, _ := strconv.Atoi(data[mark:p]); hdr.Ttl = uint32(ttl) }
|
|
goto st14
|
|
tr37:
|
|
// line 88 "zparse.rl"
|
|
{ hdr.Class = Str_class[data[mark:p]] }
|
|
goto st14
|
|
st14:
|
|
p++
|
|
if p == pe { goto _test_eof14 }
|
|
fallthrough
|
|
case 14:
|
|
// line 695 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st14
|
|
case 32: goto st14
|
|
case 65: goto tr39
|
|
case 67: goto tr40
|
|
case 68: goto tr18
|
|
case 77: goto tr21
|
|
case 78: goto tr41
|
|
case 82: goto tr23
|
|
case 83: goto tr24
|
|
case 97: goto tr39
|
|
case 99: goto tr40
|
|
case 100: goto tr18
|
|
case 109: goto tr21
|
|
case 110: goto tr41
|
|
case 114: goto tr23
|
|
case 115: goto tr24
|
|
}
|
|
goto st0
|
|
tr39:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st15
|
|
st15:
|
|
p++
|
|
if p == pe { goto _test_eof15 }
|
|
fallthrough
|
|
case 15:
|
|
// line 724 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr25
|
|
case 32: goto tr25
|
|
case 65: goto st8
|
|
case 97: goto st8
|
|
}
|
|
goto st0
|
|
tr40:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st16
|
|
st16:
|
|
p++
|
|
if p == pe { goto _test_eof16 }
|
|
fallthrough
|
|
case 16:
|
|
// line 741 "zparse.go"
|
|
switch data[p] {
|
|
case 78: goto st17
|
|
case 110: goto st17
|
|
}
|
|
goto st0
|
|
st17:
|
|
p++
|
|
if p == pe { goto _test_eof17 }
|
|
fallthrough
|
|
case 17:
|
|
switch data[p] {
|
|
case 65: goto st18
|
|
case 97: goto st18
|
|
}
|
|
goto st0
|
|
st18:
|
|
p++
|
|
if p == pe { goto _test_eof18 }
|
|
fallthrough
|
|
case 18:
|
|
switch data[p] {
|
|
case 77: goto st19
|
|
case 109: goto st19
|
|
}
|
|
goto st0
|
|
st19:
|
|
p++
|
|
if p == pe { goto _test_eof19 }
|
|
fallthrough
|
|
case 19:
|
|
switch data[p] {
|
|
case 69: goto st20
|
|
case 101: goto st20
|
|
}
|
|
goto st0
|
|
st20:
|
|
p++
|
|
if p == pe { goto _test_eof20 }
|
|
fallthrough
|
|
case 20:
|
|
switch data[p] {
|
|
case 9: goto tr46
|
|
case 32: goto tr46
|
|
}
|
|
goto st0
|
|
tr46:
|
|
// line 96 "zparse.rl"
|
|
{
|
|
i := Str_rr[data[mark:p]]
|
|
mk, known := rr_mk[int(i)]
|
|
if ! known {
|
|
println("Unknown type seen: " + data[mark:p])
|
|
// panic?
|
|
}
|
|
rr = mk()
|
|
hdr.Rrtype = i
|
|
}
|
|
goto st21
|
|
st21:
|
|
p++
|
|
if p == pe { goto _test_eof21 }
|
|
fallthrough
|
|
case 21:
|
|
// line 805 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st21
|
|
case 32: goto st21
|
|
case 43: goto tr48
|
|
case 61: goto tr48
|
|
case 92: goto tr48
|
|
}
|
|
if data[p] < 65 {
|
|
if 45 <= data[p] && data[p] <= 58 { goto tr48 }
|
|
} else if data[p] > 90 {
|
|
if 97 <= data[p] && data[p] <= 122 { goto tr48 }
|
|
} else {
|
|
goto tr48
|
|
}
|
|
goto st0
|
|
tr48:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st108
|
|
st108:
|
|
p++
|
|
if p == pe { goto _test_eof108 }
|
|
fallthrough
|
|
case 108:
|
|
// line 830 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr182
|
|
case 32: goto tr182
|
|
case 43: goto st108
|
|
case 61: goto st108
|
|
case 92: goto st108
|
|
case 95: goto tr184
|
|
}
|
|
if data[p] < 65 {
|
|
if 45 <= data[p] && data[p] <= 58 { goto st108 }
|
|
} else if data[p] > 90 {
|
|
if 97 <= data[p] && data[p] <= 122 { goto st108 }
|
|
} else {
|
|
goto st108
|
|
}
|
|
goto st0
|
|
tr6:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
// line 89 "zparse.rl"
|
|
{ /* ... */ }
|
|
goto st22
|
|
tr18:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st22
|
|
st22:
|
|
p++
|
|
if p == pe { goto _test_eof22 }
|
|
fallthrough
|
|
case 22:
|
|
// line 862 "zparse.go"
|
|
switch data[p] {
|
|
case 78: goto st23
|
|
case 83: goto st35
|
|
case 110: goto st23
|
|
case 115: goto st35
|
|
}
|
|
goto st0
|
|
st23:
|
|
p++
|
|
if p == pe { goto _test_eof23 }
|
|
fallthrough
|
|
case 23:
|
|
switch data[p] {
|
|
case 83: goto st24
|
|
case 115: goto st24
|
|
}
|
|
goto st0
|
|
st24:
|
|
p++
|
|
if p == pe { goto _test_eof24 }
|
|
fallthrough
|
|
case 24:
|
|
switch data[p] {
|
|
case 75: goto st25
|
|
case 107: goto st25
|
|
}
|
|
goto st0
|
|
st25:
|
|
p++
|
|
if p == pe { goto _test_eof25 }
|
|
fallthrough
|
|
case 25:
|
|
switch data[p] {
|
|
case 69: goto st26
|
|
case 101: goto st26
|
|
}
|
|
goto st0
|
|
st26:
|
|
p++
|
|
if p == pe { goto _test_eof26 }
|
|
fallthrough
|
|
case 26:
|
|
switch data[p] {
|
|
case 89: goto st27
|
|
case 121: goto st27
|
|
}
|
|
goto st0
|
|
st27:
|
|
p++
|
|
if p == pe { goto _test_eof27 }
|
|
fallthrough
|
|
case 27:
|
|
switch data[p] {
|
|
case 9: goto tr55
|
|
case 32: goto tr55
|
|
}
|
|
goto st0
|
|
tr55:
|
|
// line 96 "zparse.rl"
|
|
{
|
|
i := Str_rr[data[mark:p]]
|
|
mk, known := rr_mk[int(i)]
|
|
if ! known {
|
|
println("Unknown type seen: " + data[mark:p])
|
|
// panic?
|
|
}
|
|
rr = mk()
|
|
hdr.Rrtype = i
|
|
}
|
|
goto st28
|
|
st28:
|
|
p++
|
|
if p == pe { goto _test_eof28 }
|
|
fallthrough
|
|
case 28:
|
|
// line 938 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st28
|
|
case 32: goto st28
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto tr57 }
|
|
goto st0
|
|
tr57:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st29
|
|
st29:
|
|
p++
|
|
if p == pe { goto _test_eof29 }
|
|
fallthrough
|
|
case 29:
|
|
// line 954 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr58
|
|
case 32: goto tr58
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto st29 }
|
|
goto st0
|
|
tr58:
|
|
// line 91 "zparse.rl"
|
|
{ tok.pushInt(data[mark:p]) }
|
|
goto st30
|
|
st30:
|
|
p++
|
|
if p == pe { goto _test_eof30 }
|
|
fallthrough
|
|
case 30:
|
|
// line 970 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st30
|
|
case 32: goto st30
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto tr61 }
|
|
goto st0
|
|
tr61:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st31
|
|
st31:
|
|
p++
|
|
if p == pe { goto _test_eof31 }
|
|
fallthrough
|
|
case 31:
|
|
// line 986 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr62
|
|
case 32: goto tr62
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto st31 }
|
|
goto st0
|
|
tr62:
|
|
// line 91 "zparse.rl"
|
|
{ tok.pushInt(data[mark:p]) }
|
|
goto st32
|
|
st32:
|
|
p++
|
|
if p == pe { goto _test_eof32 }
|
|
fallthrough
|
|
case 32:
|
|
// line 1002 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st32
|
|
case 32: goto st32
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto tr65 }
|
|
goto st0
|
|
tr65:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st33
|
|
st33:
|
|
p++
|
|
if p == pe { goto _test_eof33 }
|
|
fallthrough
|
|
case 33:
|
|
// line 1018 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr66
|
|
case 32: goto tr66
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto st33 }
|
|
goto st0
|
|
tr66:
|
|
// line 91 "zparse.rl"
|
|
{ tok.pushInt(data[mark:p]) }
|
|
goto st34
|
|
st34:
|
|
p++
|
|
if p == pe { goto _test_eof34 }
|
|
fallthrough
|
|
case 34:
|
|
// line 1034 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st34
|
|
case 32: goto st34
|
|
case 43: goto tr69
|
|
case 61: goto tr69
|
|
case 92: goto tr69
|
|
}
|
|
if data[p] < 65 {
|
|
if 45 <= data[p] && data[p] <= 58 { goto tr69 }
|
|
} else if data[p] > 90 {
|
|
if 97 <= data[p] && data[p] <= 122 { goto tr69 }
|
|
} else {
|
|
goto tr69
|
|
}
|
|
goto st0
|
|
tr69:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st109
|
|
st109:
|
|
p++
|
|
if p == pe { goto _test_eof109 }
|
|
fallthrough
|
|
case 109:
|
|
// line 1059 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr185
|
|
case 32: goto tr185
|
|
case 43: goto st109
|
|
case 61: goto st109
|
|
case 92: goto st109
|
|
case 95: goto tr187
|
|
}
|
|
if data[p] < 65 {
|
|
if 45 <= data[p] && data[p] <= 58 { goto st109 }
|
|
} else if data[p] > 90 {
|
|
if 97 <= data[p] && data[p] <= 122 { goto st109 }
|
|
} else {
|
|
goto st109
|
|
}
|
|
goto st0
|
|
st35:
|
|
p++
|
|
if p == pe { goto _test_eof35 }
|
|
fallthrough
|
|
case 35:
|
|
switch data[p] {
|
|
case 9: goto tr70
|
|
case 32: goto tr70
|
|
}
|
|
goto st0
|
|
tr70:
|
|
// line 96 "zparse.rl"
|
|
{
|
|
i := Str_rr[data[mark:p]]
|
|
mk, known := rr_mk[int(i)]
|
|
if ! known {
|
|
println("Unknown type seen: " + data[mark:p])
|
|
// panic?
|
|
}
|
|
rr = mk()
|
|
hdr.Rrtype = i
|
|
}
|
|
goto st36
|
|
st36:
|
|
p++
|
|
if p == pe { goto _test_eof36 }
|
|
fallthrough
|
|
case 36:
|
|
// line 1104 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st36
|
|
case 32: goto st36
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto tr72 }
|
|
goto st0
|
|
tr72:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st37
|
|
st37:
|
|
p++
|
|
if p == pe { goto _test_eof37 }
|
|
fallthrough
|
|
case 37:
|
|
// line 1120 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr73
|
|
case 32: goto tr73
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto st37 }
|
|
goto st0
|
|
tr73:
|
|
// line 91 "zparse.rl"
|
|
{ tok.pushInt(data[mark:p]) }
|
|
goto st38
|
|
st38:
|
|
p++
|
|
if p == pe { goto _test_eof38 }
|
|
fallthrough
|
|
case 38:
|
|
// line 1136 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st38
|
|
case 32: goto st38
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto tr76 }
|
|
goto st0
|
|
tr76:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st39
|
|
st39:
|
|
p++
|
|
if p == pe { goto _test_eof39 }
|
|
fallthrough
|
|
case 39:
|
|
// line 1152 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr77
|
|
case 32: goto tr77
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto st39 }
|
|
goto st0
|
|
tr77:
|
|
// line 91 "zparse.rl"
|
|
{ tok.pushInt(data[mark:p]) }
|
|
goto st40
|
|
st40:
|
|
p++
|
|
if p == pe { goto _test_eof40 }
|
|
fallthrough
|
|
case 40:
|
|
// line 1168 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st40
|
|
case 32: goto st40
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto tr80 }
|
|
goto st0
|
|
tr80:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st41
|
|
st41:
|
|
p++
|
|
if p == pe { goto _test_eof41 }
|
|
fallthrough
|
|
case 41:
|
|
// line 1184 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr81
|
|
case 32: goto tr81
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto st41 }
|
|
goto st0
|
|
tr81:
|
|
// line 91 "zparse.rl"
|
|
{ tok.pushInt(data[mark:p]) }
|
|
goto st42
|
|
st42:
|
|
p++
|
|
if p == pe { goto _test_eof42 }
|
|
fallthrough
|
|
case 42:
|
|
// line 1200 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st42
|
|
case 32: goto st42
|
|
case 43: goto tr84
|
|
case 61: goto tr84
|
|
case 92: goto tr84
|
|
}
|
|
if data[p] < 65 {
|
|
if 45 <= data[p] && data[p] <= 58 { goto tr84 }
|
|
} else if data[p] > 90 {
|
|
if 97 <= data[p] && data[p] <= 122 { goto tr84 }
|
|
} else {
|
|
goto tr84
|
|
}
|
|
goto st0
|
|
tr84:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st110
|
|
st110:
|
|
p++
|
|
if p == pe { goto _test_eof110 }
|
|
fallthrough
|
|
case 110:
|
|
// line 1225 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr188
|
|
case 32: goto tr188
|
|
case 43: goto st110
|
|
case 61: goto st110
|
|
case 92: goto st110
|
|
case 95: goto tr190
|
|
}
|
|
if data[p] < 65 {
|
|
if 45 <= data[p] && data[p] <= 58 { goto st110 }
|
|
} else if data[p] > 90 {
|
|
if 97 <= data[p] && data[p] <= 122 { goto st110 }
|
|
} else {
|
|
goto st110
|
|
}
|
|
goto st0
|
|
tr9:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
// line 89 "zparse.rl"
|
|
{ /* ... */ }
|
|
goto st43
|
|
tr21:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st43
|
|
st43:
|
|
p++
|
|
if p == pe { goto _test_eof43 }
|
|
fallthrough
|
|
case 43:
|
|
// line 1257 "zparse.go"
|
|
switch data[p] {
|
|
case 88: goto st44
|
|
case 120: goto st44
|
|
}
|
|
goto st0
|
|
st44:
|
|
p++
|
|
if p == pe { goto _test_eof44 }
|
|
fallthrough
|
|
case 44:
|
|
switch data[p] {
|
|
case 9: goto tr86
|
|
case 32: goto tr86
|
|
}
|
|
goto st0
|
|
tr86:
|
|
// line 96 "zparse.rl"
|
|
{
|
|
i := Str_rr[data[mark:p]]
|
|
mk, known := rr_mk[int(i)]
|
|
if ! known {
|
|
println("Unknown type seen: " + data[mark:p])
|
|
// panic?
|
|
}
|
|
rr = mk()
|
|
hdr.Rrtype = i
|
|
}
|
|
goto st45
|
|
st45:
|
|
p++
|
|
if p == pe { goto _test_eof45 }
|
|
fallthrough
|
|
case 45:
|
|
// line 1291 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st45
|
|
case 32: goto st45
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto tr88 }
|
|
goto st0
|
|
tr88:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st46
|
|
st46:
|
|
p++
|
|
if p == pe { goto _test_eof46 }
|
|
fallthrough
|
|
case 46:
|
|
// line 1307 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr89
|
|
case 32: goto tr89
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto st46 }
|
|
goto st0
|
|
tr89:
|
|
// line 91 "zparse.rl"
|
|
{ tok.pushInt(data[mark:p]) }
|
|
goto st47
|
|
st47:
|
|
p++
|
|
if p == pe { goto _test_eof47 }
|
|
fallthrough
|
|
case 47:
|
|
// line 1323 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st47
|
|
case 32: goto st47
|
|
case 43: goto tr92
|
|
case 61: goto tr92
|
|
case 92: goto tr92
|
|
}
|
|
if data[p] < 65 {
|
|
if 45 <= data[p] && data[p] <= 58 { goto tr92 }
|
|
} else if data[p] > 90 {
|
|
if 97 <= data[p] && data[p] <= 122 { goto tr92 }
|
|
} else {
|
|
goto tr92
|
|
}
|
|
goto st0
|
|
tr92:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st111
|
|
st111:
|
|
p++
|
|
if p == pe { goto _test_eof111 }
|
|
fallthrough
|
|
case 111:
|
|
// line 1348 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr191
|
|
case 32: goto tr191
|
|
case 43: goto st111
|
|
case 61: goto st111
|
|
case 92: goto st111
|
|
case 95: goto tr193
|
|
}
|
|
if data[p] < 65 {
|
|
if 45 <= data[p] && data[p] <= 58 { goto st111 }
|
|
} else if data[p] > 90 {
|
|
if 97 <= data[p] && data[p] <= 122 { goto st111 }
|
|
} else {
|
|
goto st111
|
|
}
|
|
goto st0
|
|
tr41:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st48
|
|
st48:
|
|
p++
|
|
if p == pe { goto _test_eof48 }
|
|
fallthrough
|
|
case 48:
|
|
// line 1374 "zparse.go"
|
|
switch data[p] {
|
|
case 83: goto st49
|
|
case 115: goto st49
|
|
}
|
|
goto st0
|
|
st49:
|
|
p++
|
|
if p == pe { goto _test_eof49 }
|
|
fallthrough
|
|
case 49:
|
|
switch data[p] {
|
|
case 9: goto tr94
|
|
case 32: goto tr94
|
|
}
|
|
goto st0
|
|
tr94:
|
|
// line 96 "zparse.rl"
|
|
{
|
|
i := Str_rr[data[mark:p]]
|
|
mk, known := rr_mk[int(i)]
|
|
if ! known {
|
|
println("Unknown type seen: " + data[mark:p])
|
|
// panic?
|
|
}
|
|
rr = mk()
|
|
hdr.Rrtype = i
|
|
}
|
|
goto st50
|
|
st50:
|
|
p++
|
|
if p == pe { goto _test_eof50 }
|
|
fallthrough
|
|
case 50:
|
|
// line 1408 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st50
|
|
case 32: goto st50
|
|
case 43: goto tr96
|
|
case 61: goto tr96
|
|
case 92: goto tr96
|
|
}
|
|
if data[p] < 65 {
|
|
if 45 <= data[p] && data[p] <= 58 { goto tr96 }
|
|
} else if data[p] > 90 {
|
|
if 97 <= data[p] && data[p] <= 122 { goto tr96 }
|
|
} else {
|
|
goto tr96
|
|
}
|
|
goto st0
|
|
tr96:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st112
|
|
st112:
|
|
p++
|
|
if p == pe { goto _test_eof112 }
|
|
fallthrough
|
|
case 112:
|
|
// line 1433 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr194
|
|
case 32: goto tr194
|
|
case 43: goto st112
|
|
case 61: goto st112
|
|
case 92: goto st112
|
|
case 95: goto tr196
|
|
}
|
|
if data[p] < 65 {
|
|
if 45 <= data[p] && data[p] <= 58 { goto st112 }
|
|
} else if data[p] > 90 {
|
|
if 97 <= data[p] && data[p] <= 122 { goto st112 }
|
|
} else {
|
|
goto st112
|
|
}
|
|
goto st0
|
|
tr11:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
// line 89 "zparse.rl"
|
|
{ /* ... */ }
|
|
goto st51
|
|
tr23:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st51
|
|
st51:
|
|
p++
|
|
if p == pe { goto _test_eof51 }
|
|
fallthrough
|
|
case 51:
|
|
// line 1465 "zparse.go"
|
|
switch data[p] {
|
|
case 82: goto st52
|
|
case 114: goto st52
|
|
}
|
|
goto st0
|
|
st52:
|
|
p++
|
|
if p == pe { goto _test_eof52 }
|
|
fallthrough
|
|
case 52:
|
|
switch data[p] {
|
|
case 83: goto st53
|
|
case 115: goto st53
|
|
}
|
|
goto st0
|
|
st53:
|
|
p++
|
|
if p == pe { goto _test_eof53 }
|
|
fallthrough
|
|
case 53:
|
|
switch data[p] {
|
|
case 73: goto st54
|
|
case 105: goto st54
|
|
}
|
|
goto st0
|
|
st54:
|
|
p++
|
|
if p == pe { goto _test_eof54 }
|
|
fallthrough
|
|
case 54:
|
|
switch data[p] {
|
|
case 71: goto st55
|
|
case 103: goto st55
|
|
}
|
|
goto st0
|
|
st55:
|
|
p++
|
|
if p == pe { goto _test_eof55 }
|
|
fallthrough
|
|
case 55:
|
|
switch data[p] {
|
|
case 9: goto tr101
|
|
case 32: goto tr101
|
|
}
|
|
goto st0
|
|
tr101:
|
|
// line 96 "zparse.rl"
|
|
{
|
|
i := Str_rr[data[mark:p]]
|
|
mk, known := rr_mk[int(i)]
|
|
if ! known {
|
|
println("Unknown type seen: " + data[mark:p])
|
|
// panic?
|
|
}
|
|
rr = mk()
|
|
hdr.Rrtype = i
|
|
}
|
|
goto st56
|
|
st56:
|
|
p++
|
|
if p == pe { goto _test_eof56 }
|
|
fallthrough
|
|
case 56:
|
|
// line 1529 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st56
|
|
case 32: goto st56
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto tr103 }
|
|
goto st0
|
|
tr103:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st57
|
|
st57:
|
|
p++
|
|
if p == pe { goto _test_eof57 }
|
|
fallthrough
|
|
case 57:
|
|
// line 1545 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr104
|
|
case 32: goto tr104
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto st57 }
|
|
goto st0
|
|
tr104:
|
|
// line 91 "zparse.rl"
|
|
{ tok.pushInt(data[mark:p]) }
|
|
goto st58
|
|
st58:
|
|
p++
|
|
if p == pe { goto _test_eof58 }
|
|
fallthrough
|
|
case 58:
|
|
// line 1561 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st58
|
|
case 32: goto st58
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto tr107 }
|
|
goto st0
|
|
tr107:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st59
|
|
st59:
|
|
p++
|
|
if p == pe { goto _test_eof59 }
|
|
fallthrough
|
|
case 59:
|
|
// line 1577 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr108
|
|
case 32: goto tr108
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto st59 }
|
|
goto st0
|
|
tr108:
|
|
// line 91 "zparse.rl"
|
|
{ tok.pushInt(data[mark:p]) }
|
|
goto st60
|
|
st60:
|
|
p++
|
|
if p == pe { goto _test_eof60 }
|
|
fallthrough
|
|
case 60:
|
|
// line 1593 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st60
|
|
case 32: goto st60
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto tr111 }
|
|
goto st0
|
|
tr111:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st61
|
|
st61:
|
|
p++
|
|
if p == pe { goto _test_eof61 }
|
|
fallthrough
|
|
case 61:
|
|
// line 1609 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr112
|
|
case 32: goto tr112
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto st61 }
|
|
goto st0
|
|
tr112:
|
|
// line 91 "zparse.rl"
|
|
{ tok.pushInt(data[mark:p]) }
|
|
goto st62
|
|
st62:
|
|
p++
|
|
if p == pe { goto _test_eof62 }
|
|
fallthrough
|
|
case 62:
|
|
// line 1625 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st62
|
|
case 32: goto st62
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto tr115 }
|
|
goto st0
|
|
tr115:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st63
|
|
st63:
|
|
p++
|
|
if p == pe { goto _test_eof63 }
|
|
fallthrough
|
|
case 63:
|
|
// line 1641 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr116
|
|
case 32: goto tr116
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto st63 }
|
|
goto st0
|
|
tr116:
|
|
// line 91 "zparse.rl"
|
|
{ tok.pushInt(data[mark:p]) }
|
|
goto st64
|
|
st64:
|
|
p++
|
|
if p == pe { goto _test_eof64 }
|
|
fallthrough
|
|
case 64:
|
|
// line 1657 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st64
|
|
case 32: goto st64
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto tr119 }
|
|
goto st0
|
|
tr119:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st65
|
|
st65:
|
|
p++
|
|
if p == pe { goto _test_eof65 }
|
|
fallthrough
|
|
case 65:
|
|
// line 1673 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr120
|
|
case 32: goto tr120
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto st65 }
|
|
goto st0
|
|
tr120:
|
|
// line 91 "zparse.rl"
|
|
{ tok.pushInt(data[mark:p]) }
|
|
goto st66
|
|
st66:
|
|
p++
|
|
if p == pe { goto _test_eof66 }
|
|
fallthrough
|
|
case 66:
|
|
// line 1689 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st66
|
|
case 32: goto st66
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto tr123 }
|
|
goto st0
|
|
tr123:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st67
|
|
st67:
|
|
p++
|
|
if p == pe { goto _test_eof67 }
|
|
fallthrough
|
|
case 67:
|
|
// line 1705 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr124
|
|
case 32: goto tr124
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto st67 }
|
|
goto st0
|
|
tr124:
|
|
// line 91 "zparse.rl"
|
|
{ tok.pushInt(data[mark:p]) }
|
|
goto st68
|
|
st68:
|
|
p++
|
|
if p == pe { goto _test_eof68 }
|
|
fallthrough
|
|
case 68:
|
|
// line 1721 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st68
|
|
case 32: goto st68
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto tr127 }
|
|
goto st0
|
|
tr127:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st69
|
|
st69:
|
|
p++
|
|
if p == pe { goto _test_eof69 }
|
|
fallthrough
|
|
case 69:
|
|
// line 1737 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr128
|
|
case 32: goto tr128
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto st69 }
|
|
goto st0
|
|
tr128:
|
|
// line 91 "zparse.rl"
|
|
{ tok.pushInt(data[mark:p]) }
|
|
goto st70
|
|
st70:
|
|
p++
|
|
if p == pe { goto _test_eof70 }
|
|
fallthrough
|
|
case 70:
|
|
// line 1753 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st70
|
|
case 32: goto st70
|
|
case 43: goto tr131
|
|
case 61: goto tr131
|
|
case 92: goto tr131
|
|
}
|
|
if data[p] < 65 {
|
|
if 45 <= data[p] && data[p] <= 58 { goto tr131 }
|
|
} else if data[p] > 90 {
|
|
if 97 <= data[p] && data[p] <= 122 { goto tr131 }
|
|
} else {
|
|
goto tr131
|
|
}
|
|
goto st0
|
|
tr131:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st71
|
|
st71:
|
|
p++
|
|
if p == pe { goto _test_eof71 }
|
|
fallthrough
|
|
case 71:
|
|
// line 1778 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr132
|
|
case 32: goto tr132
|
|
case 43: goto st71
|
|
case 61: goto st71
|
|
case 92: goto st71
|
|
}
|
|
if data[p] < 65 {
|
|
if 45 <= data[p] && data[p] <= 58 { goto st71 }
|
|
} else if data[p] > 90 {
|
|
if 97 <= data[p] && data[p] <= 122 { goto st71 }
|
|
} else {
|
|
goto st71
|
|
}
|
|
goto st0
|
|
tr132:
|
|
// line 92 "zparse.rl"
|
|
{ tok.pushString(data[mark:p]) }
|
|
goto st72
|
|
st72:
|
|
p++
|
|
if p == pe { goto _test_eof72 }
|
|
fallthrough
|
|
case 72:
|
|
// line 1803 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st72
|
|
case 32: goto st72
|
|
case 43: goto tr135
|
|
case 61: goto tr135
|
|
case 92: goto tr135
|
|
}
|
|
if data[p] < 65 {
|
|
if 45 <= data[p] && data[p] <= 58 { goto tr135 }
|
|
} else if data[p] > 90 {
|
|
if 97 <= data[p] && data[p] <= 122 { goto tr135 }
|
|
} else {
|
|
goto tr135
|
|
}
|
|
goto st0
|
|
tr135:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st113
|
|
st113:
|
|
p++
|
|
if p == pe { goto _test_eof113 }
|
|
fallthrough
|
|
case 113:
|
|
// line 1828 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr197
|
|
case 32: goto tr197
|
|
case 43: goto st113
|
|
case 61: goto st113
|
|
case 92: goto st113
|
|
case 95: goto tr199
|
|
}
|
|
if data[p] < 65 {
|
|
if 45 <= data[p] && data[p] <= 58 { goto st113 }
|
|
} else if data[p] > 90 {
|
|
if 97 <= data[p] && data[p] <= 122 { goto st113 }
|
|
} else {
|
|
goto st113
|
|
}
|
|
goto st0
|
|
tr12:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
// line 89 "zparse.rl"
|
|
{ /* ... */ }
|
|
goto st73
|
|
tr24:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st73
|
|
st73:
|
|
p++
|
|
if p == pe { goto _test_eof73 }
|
|
fallthrough
|
|
case 73:
|
|
// line 1860 "zparse.go"
|
|
switch data[p] {
|
|
case 79: goto st74
|
|
case 111: goto st74
|
|
}
|
|
goto st0
|
|
st74:
|
|
p++
|
|
if p == pe { goto _test_eof74 }
|
|
fallthrough
|
|
case 74:
|
|
switch data[p] {
|
|
case 65: goto st75
|
|
case 97: goto st75
|
|
}
|
|
goto st0
|
|
st75:
|
|
p++
|
|
if p == pe { goto _test_eof75 }
|
|
fallthrough
|
|
case 75:
|
|
switch data[p] {
|
|
case 9: goto tr138
|
|
case 32: goto tr138
|
|
}
|
|
goto st0
|
|
tr138:
|
|
// line 96 "zparse.rl"
|
|
{
|
|
i := Str_rr[data[mark:p]]
|
|
mk, known := rr_mk[int(i)]
|
|
if ! known {
|
|
println("Unknown type seen: " + data[mark:p])
|
|
// panic?
|
|
}
|
|
rr = mk()
|
|
hdr.Rrtype = i
|
|
}
|
|
goto st76
|
|
st76:
|
|
p++
|
|
if p == pe { goto _test_eof76 }
|
|
fallthrough
|
|
case 76:
|
|
// line 1904 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st76
|
|
case 32: goto st76
|
|
case 43: goto tr140
|
|
case 61: goto tr140
|
|
case 92: goto tr140
|
|
}
|
|
if data[p] < 65 {
|
|
if 45 <= data[p] && data[p] <= 58 { goto tr140 }
|
|
} else if data[p] > 90 {
|
|
if 97 <= data[p] && data[p] <= 122 { goto tr140 }
|
|
} else {
|
|
goto tr140
|
|
}
|
|
goto st0
|
|
tr140:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st77
|
|
st77:
|
|
p++
|
|
if p == pe { goto _test_eof77 }
|
|
fallthrough
|
|
case 77:
|
|
// line 1929 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr141
|
|
case 32: goto tr141
|
|
case 43: goto st77
|
|
case 61: goto st77
|
|
case 92: goto st77
|
|
}
|
|
if data[p] < 65 {
|
|
if 45 <= data[p] && data[p] <= 58 { goto st77 }
|
|
} else if data[p] > 90 {
|
|
if 97 <= data[p] && data[p] <= 122 { goto st77 }
|
|
} else {
|
|
goto st77
|
|
}
|
|
goto st0
|
|
tr141:
|
|
// line 92 "zparse.rl"
|
|
{ tok.pushString(data[mark:p]) }
|
|
goto st78
|
|
st78:
|
|
p++
|
|
if p == pe { goto _test_eof78 }
|
|
fallthrough
|
|
case 78:
|
|
// line 1954 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st78
|
|
case 32: goto st78
|
|
case 43: goto tr144
|
|
case 61: goto tr144
|
|
case 92: goto tr144
|
|
}
|
|
if data[p] < 65 {
|
|
if 45 <= data[p] && data[p] <= 58 { goto tr144 }
|
|
} else if data[p] > 90 {
|
|
if 97 <= data[p] && data[p] <= 122 { goto tr144 }
|
|
} else {
|
|
goto tr144
|
|
}
|
|
goto st0
|
|
tr144:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st79
|
|
st79:
|
|
p++
|
|
if p == pe { goto _test_eof79 }
|
|
fallthrough
|
|
case 79:
|
|
// line 1979 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr145
|
|
case 32: goto tr145
|
|
case 43: goto st79
|
|
case 61: goto st79
|
|
case 92: goto st79
|
|
}
|
|
if data[p] < 65 {
|
|
if 45 <= data[p] && data[p] <= 58 { goto st79 }
|
|
} else if data[p] > 90 {
|
|
if 97 <= data[p] && data[p] <= 122 { goto st79 }
|
|
} else {
|
|
goto st79
|
|
}
|
|
goto st0
|
|
tr145:
|
|
// line 92 "zparse.rl"
|
|
{ tok.pushString(data[mark:p]) }
|
|
goto st80
|
|
st80:
|
|
p++
|
|
if p == pe { goto _test_eof80 }
|
|
fallthrough
|
|
case 80:
|
|
// line 2004 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st80
|
|
case 32: goto st80
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto tr148 }
|
|
goto st0
|
|
tr148:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st81
|
|
st81:
|
|
p++
|
|
if p == pe { goto _test_eof81 }
|
|
fallthrough
|
|
case 81:
|
|
// line 2020 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr149
|
|
case 32: goto tr149
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto st81 }
|
|
goto st0
|
|
tr149:
|
|
// line 91 "zparse.rl"
|
|
{ tok.pushInt(data[mark:p]) }
|
|
goto st82
|
|
st82:
|
|
p++
|
|
if p == pe { goto _test_eof82 }
|
|
fallthrough
|
|
case 82:
|
|
// line 2036 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st82
|
|
case 32: goto st82
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto tr152 }
|
|
goto st0
|
|
tr152:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st83
|
|
st83:
|
|
p++
|
|
if p == pe { goto _test_eof83 }
|
|
fallthrough
|
|
case 83:
|
|
// line 2052 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr153
|
|
case 32: goto tr153
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto st83 }
|
|
goto st0
|
|
tr153:
|
|
// line 91 "zparse.rl"
|
|
{ tok.pushInt(data[mark:p]) }
|
|
goto st84
|
|
st84:
|
|
p++
|
|
if p == pe { goto _test_eof84 }
|
|
fallthrough
|
|
case 84:
|
|
// line 2068 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st84
|
|
case 32: goto st84
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto tr156 }
|
|
goto st0
|
|
tr156:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st85
|
|
st85:
|
|
p++
|
|
if p == pe { goto _test_eof85 }
|
|
fallthrough
|
|
case 85:
|
|
// line 2084 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr157
|
|
case 32: goto tr157
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto st85 }
|
|
goto st0
|
|
tr157:
|
|
// line 91 "zparse.rl"
|
|
{ tok.pushInt(data[mark:p]) }
|
|
goto st86
|
|
st86:
|
|
p++
|
|
if p == pe { goto _test_eof86 }
|
|
fallthrough
|
|
case 86:
|
|
// line 2100 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st86
|
|
case 32: goto st86
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto tr160 }
|
|
goto st0
|
|
tr160:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st87
|
|
st87:
|
|
p++
|
|
if p == pe { goto _test_eof87 }
|
|
fallthrough
|
|
case 87:
|
|
// line 2116 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr161
|
|
case 32: goto tr161
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto st87 }
|
|
goto st0
|
|
tr161:
|
|
// line 91 "zparse.rl"
|
|
{ tok.pushInt(data[mark:p]) }
|
|
goto st88
|
|
st88:
|
|
p++
|
|
if p == pe { goto _test_eof88 }
|
|
fallthrough
|
|
case 88:
|
|
// line 2132 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st88
|
|
case 32: goto st88
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto tr164 }
|
|
goto st0
|
|
tr164:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st114
|
|
st114:
|
|
p++
|
|
if p == pe { goto _test_eof114 }
|
|
fallthrough
|
|
case 114:
|
|
// line 2148 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr200
|
|
case 32: goto tr200
|
|
case 92: goto tr201
|
|
case 95: goto tr201
|
|
}
|
|
if data[p] < 48 {
|
|
if 45 <= data[p] && data[p] <= 46 { goto tr201 }
|
|
} else if data[p] > 57 {
|
|
if data[p] > 90 {
|
|
if 97 <= data[p] && data[p] <= 122 { goto tr201 }
|
|
} else if data[p] >= 65 {
|
|
goto tr201
|
|
}
|
|
} else {
|
|
goto st114
|
|
}
|
|
goto st0
|
|
tr17:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st89
|
|
st89:
|
|
p++
|
|
if p == pe { goto _test_eof89 }
|
|
fallthrough
|
|
case 89:
|
|
// line 2176 "zparse.go"
|
|
switch data[p] {
|
|
case 72: goto st13
|
|
case 78: goto st17
|
|
case 83: goto st13
|
|
case 104: goto st13
|
|
case 110: goto st17
|
|
case 115: goto st13
|
|
}
|
|
goto st0
|
|
tr19:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st90
|
|
st90:
|
|
p++
|
|
if p == pe { goto _test_eof90 }
|
|
fallthrough
|
|
case 90:
|
|
// line 2195 "zparse.go"
|
|
switch data[p] {
|
|
case 83: goto st13
|
|
case 115: goto st13
|
|
}
|
|
goto st0
|
|
tr20:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st91
|
|
st91:
|
|
p++
|
|
if p == pe { goto _test_eof91 }
|
|
fallthrough
|
|
case 91:
|
|
// line 2210 "zparse.go"
|
|
switch data[p] {
|
|
case 78: goto st13
|
|
case 110: goto st13
|
|
}
|
|
goto st0
|
|
tr22:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st92
|
|
st92:
|
|
p++
|
|
if p == pe { goto _test_eof92 }
|
|
fallthrough
|
|
case 92:
|
|
// line 2225 "zparse.go"
|
|
switch data[p] {
|
|
case 79: goto st93
|
|
case 83: goto st49
|
|
case 111: goto st93
|
|
case 115: goto st49
|
|
}
|
|
goto st0
|
|
st93:
|
|
p++
|
|
if p == pe { goto _test_eof93 }
|
|
fallthrough
|
|
case 93:
|
|
switch data[p] {
|
|
case 78: goto st94
|
|
case 110: goto st94
|
|
}
|
|
goto st0
|
|
st94:
|
|
p++
|
|
if p == pe { goto _test_eof94 }
|
|
fallthrough
|
|
case 94:
|
|
switch data[p] {
|
|
case 69: goto st13
|
|
case 101: goto st13
|
|
}
|
|
goto st0
|
|
tr4:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
// line 89 "zparse.rl"
|
|
{ /* ... */ }
|
|
goto st95
|
|
st95:
|
|
p++
|
|
if p == pe { goto _test_eof95 }
|
|
fallthrough
|
|
case 95:
|
|
// line 2264 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr25
|
|
case 32: goto tr25
|
|
case 65: goto st8
|
|
case 78: goto st96
|
|
case 97: goto st8
|
|
case 110: goto st96
|
|
}
|
|
goto st0
|
|
st96:
|
|
p++
|
|
if p == pe { goto _test_eof96 }
|
|
fallthrough
|
|
case 96:
|
|
switch data[p] {
|
|
case 89: goto st97
|
|
case 121: goto st97
|
|
}
|
|
goto st0
|
|
st97:
|
|
p++
|
|
if p == pe { goto _test_eof97 }
|
|
fallthrough
|
|
case 97:
|
|
switch data[p] {
|
|
case 9: goto tr169
|
|
case 32: goto tr169
|
|
}
|
|
goto st0
|
|
tr169:
|
|
// line 88 "zparse.rl"
|
|
{ hdr.Class = Str_class[data[mark:p]] }
|
|
goto st98
|
|
st98:
|
|
p++
|
|
if p == pe { goto _test_eof98 }
|
|
fallthrough
|
|
case 98:
|
|
// line 2303 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto st98
|
|
case 32: goto st98
|
|
case 65: goto tr39
|
|
case 67: goto tr40
|
|
case 68: goto tr18
|
|
case 77: goto tr21
|
|
case 78: goto tr41
|
|
case 82: goto tr23
|
|
case 83: goto tr24
|
|
case 97: goto tr39
|
|
case 99: goto tr40
|
|
case 100: goto tr18
|
|
case 109: goto tr21
|
|
case 110: goto tr41
|
|
case 114: goto tr23
|
|
case 115: goto tr24
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto tr171 }
|
|
goto st0
|
|
tr171:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
goto st99
|
|
st99:
|
|
p++
|
|
if p == pe { goto _test_eof99 }
|
|
fallthrough
|
|
case 99:
|
|
// line 2333 "zparse.go"
|
|
switch data[p] {
|
|
case 9: goto tr172
|
|
case 32: goto tr172
|
|
}
|
|
if 48 <= data[p] && data[p] <= 57 { goto st99 }
|
|
goto st0
|
|
tr5:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
// line 89 "zparse.rl"
|
|
{ /* ... */ }
|
|
goto st100
|
|
st100:
|
|
p++
|
|
if p == pe { goto _test_eof100 }
|
|
fallthrough
|
|
case 100:
|
|
// line 2351 "zparse.go"
|
|
switch data[p] {
|
|
case 72: goto st97
|
|
case 78: goto st17
|
|
case 83: goto st97
|
|
case 104: goto st97
|
|
case 110: goto st17
|
|
case 115: goto st97
|
|
}
|
|
goto st0
|
|
tr7:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
// line 89 "zparse.rl"
|
|
{ /* ... */ }
|
|
goto st101
|
|
st101:
|
|
p++
|
|
if p == pe { goto _test_eof101 }
|
|
fallthrough
|
|
case 101:
|
|
// line 2372 "zparse.go"
|
|
switch data[p] {
|
|
case 83: goto st97
|
|
case 115: goto st97
|
|
}
|
|
goto st0
|
|
tr8:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
// line 89 "zparse.rl"
|
|
{ /* ... */ }
|
|
goto st102
|
|
st102:
|
|
p++
|
|
if p == pe { goto _test_eof102 }
|
|
fallthrough
|
|
case 102:
|
|
// line 2389 "zparse.go"
|
|
switch data[p] {
|
|
case 78: goto st97
|
|
case 110: goto st97
|
|
}
|
|
goto st0
|
|
tr10:
|
|
// line 86 "zparse.rl"
|
|
{ mark = p }
|
|
// line 89 "zparse.rl"
|
|
{ /* ... */ }
|
|
goto st103
|
|
st103:
|
|
p++
|
|
if p == pe { goto _test_eof103 }
|
|
fallthrough
|
|
case 103:
|
|
// line 2406 "zparse.go"
|
|
switch data[p] {
|
|
case 79: goto st104
|
|
case 83: goto st49
|
|
case 111: goto st104
|
|
case 115: goto st49
|
|
}
|
|
goto st0
|
|
st104:
|
|
p++
|
|
if p == pe { goto _test_eof104 }
|
|
fallthrough
|
|
case 104:
|
|
switch data[p] {
|
|
case 78: goto st105
|
|
case 110: goto st105
|
|
}
|
|
goto st0
|
|
st105:
|
|
p++
|
|
if p == pe { goto _test_eof105 }
|
|
fallthrough
|
|
case 105:
|
|
switch data[p] {
|
|
case 69: goto st97
|
|
case 101: goto st97
|
|
}
|
|
goto st0
|
|
}
|
|
_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_eof106: cs = 106; 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_eof107: cs = 107; 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_eof108: cs = 108; 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_eof109: cs = 109; 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_eof110: cs = 110; 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_eof111: cs = 111; 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_eof112: cs = 112; 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_eof113: cs = 113; 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_eof114: cs = 114; 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_eof: {}
|
|
if p == eof {
|
|
switch cs {
|
|
case 114:
|
|
// line 91 "zparse.rl"
|
|
{ tok.pushInt(data[mark:p]) }
|
|
// line 24 "types.rl"
|
|
{
|
|
x := rr.(*RR_SOA)
|
|
x.Hdr = *hdr
|
|
x.Ns = tok.T[0]
|
|
x.Mbox = tok.T[1]
|
|
x.Serial = uint32(tok.N[0])
|
|
x.Refresh = uint32(tok.N[1])
|
|
x.Retry = uint32(tok.N[2])
|
|
x.Expire = uint32(tok.N[3])
|
|
x.Minttl = uint32(tok.N[4])
|
|
}
|
|
// line 94 "zparse.rl"
|
|
{ z.Push(rr); tok.reset(); println("setting") }
|
|
break
|
|
case 106:
|
|
// line 92 "zparse.rl"
|
|
{ tok.pushString(data[mark:p]) }
|
|
// line 4 "types.rl"
|
|
{
|
|
x := rr.(*RR_A)
|
|
x.Hdr = *hdr
|
|
x.A = net.ParseIP(tok.T[0])
|
|
}
|
|
// line 94 "zparse.rl"
|
|
{ z.Push(rr); tok.reset(); println("setting") }
|
|
break
|
|
case 107:
|
|
// line 92 "zparse.rl"
|
|
{ tok.pushString(data[mark:p]) }
|
|
// line 9 "types.rl"
|
|
{
|
|
x := rr.(*RR_AAAA)
|
|
x.Hdr = *hdr
|
|
x.AAAA = net.ParseIP(tok.T[0])
|
|
}
|
|
// line 94 "zparse.rl"
|
|
{ z.Push(rr); tok.reset(); println("setting") }
|
|
break
|
|
case 112:
|
|
// line 92 "zparse.rl"
|
|
{ tok.pushString(data[mark:p]) }
|
|
// line 14 "types.rl"
|
|
{
|
|
x := rr.(*RR_NS)
|
|
x.Hdr = *hdr
|
|
x.Ns = tok.T[0]
|
|
}
|
|
// line 94 "zparse.rl"
|
|
{ z.Push(rr); tok.reset(); println("setting") }
|
|
break
|
|
case 108:
|
|
// line 92 "zparse.rl"
|
|
{ tok.pushString(data[mark:p]) }
|
|
// line 19 "types.rl"
|
|
{
|
|
x := rr.(*RR_CNAME)
|
|
x.Hdr = *hdr
|
|
x.Cname = tok.T[0]
|
|
}
|
|
// line 94 "zparse.rl"
|
|
{ z.Push(rr); tok.reset(); println("setting") }
|
|
break
|
|
case 111:
|
|
// line 92 "zparse.rl"
|
|
{ tok.pushString(data[mark:p]) }
|
|
// line 35 "types.rl"
|
|
{
|
|
x := rr.(*RR_MX)
|
|
x.Hdr = *hdr;
|
|
x.Pref = uint16(tok.N[0])
|
|
x.Mx = tok.T[0]
|
|
}
|
|
// line 94 "zparse.rl"
|
|
{ z.Push(rr); tok.reset(); println("setting") }
|
|
break
|
|
case 110:
|
|
// line 92 "zparse.rl"
|
|
{ tok.pushString(data[mark:p]) }
|
|
// line 41 "types.rl"
|
|
{
|
|
x := rr.(*RR_DS)
|
|
x.Hdr = *hdr;
|
|
x.KeyTag = uint16(tok.N[0])
|
|
x.Algorithm = uint8(tok.N[1])
|
|
x.DigestType = uint8(tok.N[2])
|
|
x.Digest = tok.T[0]
|
|
}
|
|
// line 94 "zparse.rl"
|
|
{ z.Push(rr); tok.reset(); println("setting") }
|
|
break
|
|
case 109:
|
|
// line 92 "zparse.rl"
|
|
{ tok.pushString(data[mark:p]) }
|
|
// line 49 "types.rl"
|
|
{
|
|
x := rr.(*RR_DNSKEY)
|
|
x.Hdr = *hdr;
|
|
x.Flags = uint16(tok.N[0])
|
|
x.Protocol = uint8(tok.N[1])
|
|
x.Algorithm = uint8(tok.N[2])
|
|
x.PublicKey = tok.T[0]
|
|
}
|
|
// line 94 "zparse.rl"
|
|
{ z.Push(rr); tok.reset(); println("setting") }
|
|
break
|
|
case 113:
|
|
// line 92 "zparse.rl"
|
|
{ tok.pushString(data[mark:p]) }
|
|
// line 57 "types.rl"
|
|
{
|
|
x := rr.(*RR_RRSIG)
|
|
x.Hdr = *hdr;
|
|
x.TypeCovered = uint16(tok.N[0])
|
|
x.Algorithm = uint8(tok.N[1])
|
|
x.Labels = uint8(tok.N[2])
|
|
x.OrigTtl = uint32(tok.N[3])
|
|
x.Expiration = uint32(tok.N[4])
|
|
x.Inception = uint32(tok.N[5])
|
|
x.KeyTag = uint16(tok.N[6])
|
|
x.SignerName = tok.T[0]
|
|
x.Signature = tok.T[1]
|
|
}
|
|
// line 94 "zparse.rl"
|
|
{ z.Push(rr); tok.reset(); println("setting") }
|
|
break
|
|
// line 2681 "zparse.go"
|
|
}
|
|
}
|
|
|
|
_out: {}
|
|
}
|
|
|
|
// line 145 "zparse.rl"
|
|
|
|
|
|
if cs < z_first_final {
|
|
// No clue what I'm doing what so ever
|
|
if p == pe {
|
|
println("unexpected eof")
|
|
return z, nil
|
|
} else {
|
|
println("error at position ", p)
|
|
return z, nil
|
|
}
|
|
}
|
|
return z, nil
|
|
}
|