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
version = "2.0.0" # versioned in git
version = "3.0.0" # versioned in git
author = "Emery Hemingway"
description = "data model and serialization format"
license = "Unlicense"

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())