Drop '=' when parsing alt symbols

This commit is contained in:
Emery Hemingway 2021-08-15 17:17:20 +02:00
parent 1644736625
commit f6a9d27ca2
1 changed files with 11 additions and 8 deletions

View File

@ -82,7 +82,10 @@ proc `$`*(n: SchemaNode): string =
result.add join(n.nodes, " & ")
of snkAlt:
case n.altBranch.kind
of snkRecord, snkRef, snkLiteral:
of snkRecord, snkRef:
result.add $n.altBranch
of snkLiteral:
result.add '='
result.add $n.altBranch
else:
result.add '@'
@ -252,14 +255,14 @@ const parser = peg("Schema", p: ParseState):
pushStack n
AltLiteralPattern <-
Preserves.Boolean |
Preserves.Float |
Preserves.Double |
Preserves.SignedInteger |
Preserves.String |
Preserves.Symbol:
>Preserves.Boolean |
>Preserves.Float |
>Preserves.Double |
>Preserves.SignedInteger |
>Preserves.String |
'=' * >Preserves.Symbol:
let
branch = SchemaNode(kind: snkLiteral, value: parsePreserves($0))
branch = SchemaNode(kind: snkLiteral, value: parsePreserves($1))
label = case branch.value.kind
of pkBoolean:
if branch.value.bool: "true" else: "false"