Drop bad assertions, improve error message

This commit is contained in:
Emery Hemingway 2021-08-15 17:16:12 +02:00
parent 50b71b8651
commit c449d41759
1 changed files with 1 additions and 5 deletions

View File

@ -161,7 +161,6 @@ template newSchemaNode(snk: SchemaNodeKind): SchemaNode =
SchemaNode(kind: snk)
template takeStackAt(): seq[SchemaNode] =
assert(p.stack.len > 0, capture[0].s)
var nodes = newSeq[SchemaNode]()
let pos = capture[0].si
var i: int
@ -172,11 +171,9 @@ template takeStackAt(): seq[SchemaNode] =
nodes.add(move p.stack[i].node)
inc i
p.stack.setLen(stop)
assert(nodes.len > 0, "'" & capture[0].s & "'")
nodes
template takeStackAfter(): seq[SchemaNode] =
assert(p.stack.len > 0, capture[0].s)
var nodes = newSeq[SchemaNode]()
let pos = capture[0].si
var i: int
@ -187,7 +184,6 @@ template takeStackAfter(): seq[SchemaNode] =
nodes.add(move p.stack[i].node)
inc i
p.stack.setLen(stop)
assert(nodes.len > 0, "'" & capture[0].s & "'")
nodes
template popStack(): SchemaNode =
@ -409,7 +405,7 @@ const parser = peg("Schema", p: ParseState):
proc match(text: string; p: var ParseState) =
let match = parser.match(text, p)
if not match.ok:
raise newException(ValueError, "failed to parse Preserves schema:\n" & text[match.matchMax..text.high])
raise newException(ValueError, "failed to parse Preserves schema:\n" & text[0..<match.matchMax])
proc parsePreservesSchema*(text: string): Schema =
## Parse a Preserves schema into an abstract syntax tree represented as a `Preserve`.