WIP: disallow 'nil' for strings and seqs
This commit is contained in:
parent
32afc1a562
commit
dae5450947
43 changed files with 207 additions and 173 deletions
|
|
@ -95,6 +95,7 @@ type
|
|||
kind: XmlEventKind
|
||||
err: XmlErrorKind
|
||||
state: ParserState
|
||||
cIsEmpty: bool
|
||||
filename: string
|
||||
options: set[XmlParseOption]
|
||||
|
||||
|
|
@ -125,7 +126,8 @@ proc open*(my: var XmlParser, input: Stream, filename: string,
|
|||
my.kind = xmlError
|
||||
my.a = ""
|
||||
my.b = ""
|
||||
my.c = nil
|
||||
my.c = ""
|
||||
my.cIsEmpty = true
|
||||
my.options = options
|
||||
|
||||
proc close*(my: var XmlParser) {.inline.} =
|
||||
|
|
@ -482,6 +484,7 @@ proc parseTag(my: var XmlParser) =
|
|||
my.kind = xmlElementOpen
|
||||
my.state = stateAttr
|
||||
my.c = my.a # save for later
|
||||
my.cIsEmpty = false
|
||||
else:
|
||||
my.kind = xmlElementStart
|
||||
let slash = my.buf[my.bufpos] == '/'
|
||||
|
|
@ -490,7 +493,8 @@ proc parseTag(my: var XmlParser) =
|
|||
if slash and my.buf[my.bufpos] == '>':
|
||||
inc(my.bufpos)
|
||||
my.state = stateEmptyElementTag
|
||||
my.c = nil
|
||||
my.c = ""
|
||||
my.cIsEmpty = true
|
||||
elif my.buf[my.bufpos] == '>':
|
||||
inc(my.bufpos)
|
||||
else:
|
||||
|
|
@ -678,7 +682,7 @@ proc next*(my: var XmlParser) =
|
|||
of stateEmptyElementTag:
|
||||
my.state = stateNormal
|
||||
my.kind = xmlElementEnd
|
||||
if not my.c.isNil:
|
||||
if not my.cIsEmpty:
|
||||
my.a = my.c
|
||||
of stateError:
|
||||
my.kind = xmlError
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue