I can parse again

This commit is contained in:
Miek Gieben 2012-01-04 22:30:40 +01:00
parent fa0d78db9e
commit 0d08da5d84
1 changed files with 21 additions and 16 deletions

View File

@ -8,7 +8,7 @@ import (
) )
// Only used when debugging the parser itself. // Only used when debugging the parser itself.
var _DEBUG = true var _DEBUG = false
// Tokinize a RFC 1035 zone file. The tokenizer will normalize it: // Tokinize a RFC 1035 zone file. The tokenizer will normalize it:
// * Add ownernames if they are left blank; // * Add ownernames if they are left blank;
@ -315,7 +315,6 @@ func zlexer(r io.Reader, c chan lex) {
} else if owner { } else if owner {
// If we have a string and its the first, make it an owner // If we have a string and its the first, make it an owner
l.value = _OWNER l.value = _OWNER
println(p, q)
l.token = string(buf[p:q]) l.token = string(buf[p:q])
// escape $... start with a \ not a $, so this will work // escape $... start with a \ not a $, so this will work
if l.token == "$TTL" { if l.token == "$TTL" {
@ -353,7 +352,6 @@ func zlexer(r io.Reader, c chan lex) {
} }
owner = false owner = false
space = true space = true
println("upping", p, q)
case ';': case ';':
if escape { if escape {
escape = false escape = false
@ -413,7 +411,6 @@ func zlexer(r io.Reader, c chan lex) {
} }
p = q + 1 p = q + 1
println("hallo")
commt = false commt = false
rrtype = false rrtype = false
owner = true owner = true
@ -446,6 +443,7 @@ func zlexer(r io.Reader, c chan lex) {
escape = false escape = false
break break
} }
p++
brace++ brace++
case ')': case ')':
if commt { if commt {
@ -463,6 +461,7 @@ func zlexer(r io.Reader, c chan lex) {
p = q + 1 p = q + 1
return return
} }
p++
default: default:
if commt { if commt {
p++ p++
@ -473,20 +472,26 @@ func zlexer(r io.Reader, c chan lex) {
} }
// tok, err = r.ReadByte() read extra bytes // tok, err = r.ReadByte() read extra bytes
q++ q++
if q > n { if q > n-1 { // Funny, 'cause q starts at zero
break // Read in a new chunk. Every thing before p
// can be discarded.
n1 := copy(buf, buf[p:])
// Reset the indices
q = q - p
p = 0
// Read a new chunk
n, err = r.Read(buf[n1:])
} }
} }
println("We crashen gewoon hier", p, q) // It this need anymore???
// It this need anymore??? /*
/* if p != q {
if p != q { // Send remainder
// Send remainder l.token = string(buf[p:q])
l.token = string(buf[p:q]) l.value = _STRING
l.value = _STRING c <- l
c <- l }
} */
*/
} }
func stringToTtl(l lex, t chan Token) (uint32, bool) { func stringToTtl(l lex, t chan Token) (uint32, bool) {