Compare commits

...

2 Commits

Author SHA1 Message Date
Emery Hemingway 21052681b6 schemaparse: fix parsing of atoms to Preserves 2021-11-17 14:21:15 +00:00
Emery Hemingway 9f29722a0d Version 3.0.0 2021-11-12 12:28:39 +01:00
2 changed files with 23 additions and 11 deletions

View File

@ -1,6 +1,6 @@
# Package # Package
version = "2.0.0" # versioned in git version = "3.0.0" # versioned in git
author = "Emery Hemingway" author = "Emery Hemingway"
description = "data model and serialization format" description = "data model and serialization format"
license = "Unlicense" license = "Unlicense"

View File

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