diff --git a/schema.prs b/schema.prs index 5db39dc..7dd37f8 100644 --- a/schema.prs +++ b/schema.prs @@ -41,7 +41,7 @@ SimplePattern = ; special builtins: bool, float, double, int, string, bytes, symbol / - ; matches an embedded value in the input: #!p + ; matches an embedded value in the input: #:p / ; =symbol, < any>, or plain non-symbol atom diff --git a/src/preserves/pegs.nim b/src/preserves/pegs.nim index 34ff72c..bf62b39 100644 --- a/src/preserves/pegs.nim +++ b/src/preserves/pegs.nim @@ -68,7 +68,7 @@ grammar "Preserves": SymbolOrNumber <- >(+(Alpha | Digit | sympunct | symuchar)) Symbol <- QuotedSymbol | (SymbolOrNumber * &delimiter) - Embedded <- "#!" * Value + Embedded <- "#:" * Value Annotation <- '@' * Value * Value diff --git a/src/preserves/preserves_schema_nim.nim b/src/preserves/preserves_schema_nim.nim index bcf7692..5ccdf5a 100644 --- a/src/preserves/preserves_schema_nim.nim +++ b/src/preserves/preserves_schema_nim.nim @@ -474,7 +474,7 @@ proc toStrLit(loc: Location; sp: SimplePattern): PNode = result = toStrLit(loc, def) of SimplePatternKind.embedded: doAssert not loc.schema.hasEmbeddedType - result = PNode(kind: nkStrLit, strVal: "#!" & toStrLit(loc, sp.embedded.interface).strVal) + result = PNode(kind: nkStrLit, strVal: "#:" & toStrLit(loc, sp.embedded.interface).strVal) else: raiseAssert $sp proc toFieldIdent(s: string): PNode = diff --git a/src/preserves/private/parsing.nim b/src/preserves/private/parsing.nim index 381d8ac..d6a70ad 100644 --- a/src/preserves/private/parsing.nim +++ b/src/preserves/private/parsing.nim @@ -220,7 +220,7 @@ proc parsePreservesAtom*(text: string): Atom = let pegParser = peg("Atom", a: Atom): # Override rules from pegs.nim - Atom <- ?"#!" * Preserves.Atom + Atom <- ?"#:" * Preserves.Atom Preserves.Boolean <- Preserves.Boolean: case $0 diff --git a/src/preserves/private/texts.nim b/src/preserves/private/texts.nim index f7fd678..e612b9e 100644 --- a/src/preserves/private/texts.nim +++ b/src/preserves/private/texts.nim @@ -44,7 +44,7 @@ proc writeSymbol(stream: Stream; sym: string) = proc writeText*(stream: Stream; pr: Value; mode = textPreserves) = ## Encode Preserves to a `Stream` as text. - if pr.embedded: write(stream, "#!") + if pr.embedded: write(stream, "#:") case pr.kind: of pkBoolean: case pr.bool @@ -139,7 +139,7 @@ proc writeText*(stream: Stream; pr: Value; mode = textPreserves) = writeText(stream, value, mode) write(stream, '}') of pkEmbedded: - if not pr.embedded: write(stream, "#!") + if not pr.embedded: write(stream, "#:") if pr.embeddedRef.isNil: write(stream, "") else: diff --git a/src/preserves/schemaparse.nim b/src/preserves/schemaparse.nim index 39b68f7..1dff4ad 100644 --- a/src/preserves/schemaparse.nim +++ b/src/preserves/schemaparse.nim @@ -180,7 +180,7 @@ const parser = peg("Schema", p: ParseState): Symbol <- "symbol": pushStack initRecord(toSymbol"atom", toSymbol"Symbol") - EmbeddedPattern <- "#!" * SimplePattern: + EmbeddedPattern <- "#:" * SimplePattern: var n = initRecord(toSymbol"embedded", popStack()) pushStack n diff --git a/tests/test_conversions.nim b/tests/test_conversions.nim index 47ba47a..3c9bc34 100644 --- a/tests/test_conversions.nim +++ b/tests/test_conversions.nim @@ -23,7 +23,7 @@ suite "conversions": c = Foobar(a: 1, b: @[2], c: ("ku", ), e: some(true)) b = toPreserves(c) a = preservesTo(b, Foobar) - check($b == """{a: 1 b: [2] c: #!["ku"] e: #t}""") + check($b == """{a: 1 b: [2] c: #:["ku"] e: #t}""") check(a.isSome) if a.isSome: check(get(a) == c) check(b.kind == pkDictionary)