schemaparse: fix parsing of atoms to Preserves

This commit is contained in:
Emery Hemingway 2021-11-17 14:21:15 +00:00
parent 9f29722a0d
commit 21052681b6
1 changed files with 22 additions and 10 deletions

View File

@ -156,16 +156,28 @@ const parser = peg("Schema", p: ParseState):
AnyPattern <- "any":
pushStack toSymbol"any"
AtomKindPattern <-
"bool" |
"float" |
"double" |
"int" |
"string" |
"bytes" |
"symbol":
var n = initRecord(toSymbol"atom", toSymbol(capitalizeAscii $0))
pushStack n
AtomKindPattern <- Boolean | Float | Double | SignedInteger | String | ByteString | Symbol
Boolean <- "bool":
pushStack initRecord(toSymbol"atom", toSymbol"Boolean")
Float <- "float":
pushStack initRecord(toSymbol"atom", toSymbol"Float")
Double <- "double":
pushStack initRecord(toSymbol"atom", toSymbol"Double")
SignedInteger <- "int":
pushStack initRecord(toSymbol"atom", toSymbol"SignedInteger")
String <- "string":
pushStack initRecord(toSymbol"atom", toSymbol"String")
ByteString <- "bytes":
pushStack initRecord(toSymbol"atom", toSymbol"ByteString")
Symbol <- "symbol":
pushStack initRecord(toSymbol"atom", toSymbol"Symbol")
EmbeddedPattern <- "#!" * SimplePattern:
var n = initRecord(toSymbol"embedded", popStack())