diff --git a/implementations/javascript/packages/schema/src/gen/schema.ts b/implementations/javascript/packages/schema/src/gen/schema.ts index d05352b..4083c91 100644 --- a/implementations/javascript/packages/schema/src/gen/schema.ts +++ b/implementations/javascript/packages/schema/src/gen/schema.ts @@ -108,16 +108,16 @@ export type AtomKind = ( export type NamedAlternative = {"variantLabel": string, "pattern": Pattern}; export type NamedSimplePattern = ( - {"_variant": "named", "value": NamedSimplePattern_} | + {"_variant": "named", "value": Binding} | {"_variant": "anonymous", "value": SimplePattern} ); export type NamedPattern = ( - {"_variant": "named", "value": NamedSimplePattern_} | + {"_variant": "named", "value": Binding} | {"_variant": "anonymous", "value": Pattern} ); -export type NamedSimplePattern_ = {"name": symbol, "pattern": SimplePattern}; +export type Binding = {"name": symbol, "pattern": SimplePattern}; export type Ref = {"module": ModulePath, "name": symbol}; @@ -209,16 +209,16 @@ export namespace AtomKind { export function NamedAlternative({variantLabel, pattern}: {variantLabel: string, pattern: Pattern}): NamedAlternative {return {"variantLabel": variantLabel, "pattern": pattern};} export namespace NamedSimplePattern { - export function named(value: NamedSimplePattern_): NamedSimplePattern {return {"_variant": "named", "value": value};}; + export function named(value: Binding): NamedSimplePattern {return {"_variant": "named", "value": value};}; export function anonymous(value: SimplePattern): NamedSimplePattern {return {"_variant": "anonymous", "value": value};}; } export namespace NamedPattern { - export function named(value: NamedSimplePattern_): NamedPattern {return {"_variant": "named", "value": value};}; + export function named(value: Binding): NamedPattern {return {"_variant": "named", "value": value};}; export function anonymous(value: Pattern): NamedPattern {return {"_variant": "anonymous", "value": value};}; } -export function NamedSimplePattern_({name, pattern}: {name: symbol, pattern: SimplePattern}): NamedSimplePattern_ {return {"name": name, "pattern": pattern};} +export function Binding({name, pattern}: {name: symbol, pattern: SimplePattern}): Binding {return {"name": name, "pattern": pattern};} export function Ref({module, name}: {module: ModulePath, name: symbol}): Ref {return {"module": module, "name": name};} @@ -858,9 +858,9 @@ export function asNamedSimplePattern(v: _val): NamedSimplePattern { } export function toNamedSimplePattern(v: _val): undefined | NamedSimplePattern { - let _tmp0: (NamedSimplePattern_) | undefined; + let _tmp0: (Binding) | undefined; let result: undefined | NamedSimplePattern; - _tmp0 = toNamedSimplePattern_(v); + _tmp0 = toBinding(v); if (_tmp0 !== void 0) {result = {"_variant": "named", "value": _tmp0};}; if (result === void 0) { let _tmp1: (SimplePattern) | undefined; @@ -872,7 +872,7 @@ export function toNamedSimplePattern(v: _val): undefined | NamedSimplePattern { export function fromNamedSimplePattern(_v: NamedSimplePattern): _val { switch (_v._variant) { - case "named": {return fromNamedSimplePattern_(_v.value);}; + case "named": {return fromBinding(_v.value);}; case "anonymous": {return fromSimplePattern(_v.value);}; }; } @@ -884,9 +884,9 @@ export function asNamedPattern(v: _val): NamedPattern { } export function toNamedPattern(v: _val): undefined | NamedPattern { - let _tmp0: (NamedSimplePattern_) | undefined; + let _tmp0: (Binding) | undefined; let result: undefined | NamedPattern; - _tmp0 = toNamedSimplePattern_(v); + _tmp0 = toBinding(v); if (_tmp0 !== void 0) {result = {"_variant": "named", "value": _tmp0};}; if (result === void 0) { let _tmp1: (Pattern) | undefined; @@ -898,19 +898,19 @@ export function toNamedPattern(v: _val): undefined | NamedPattern { export function fromNamedPattern(_v: NamedPattern): _val { switch (_v._variant) { - case "named": {return fromNamedSimplePattern_(_v.value);}; + case "named": {return fromBinding(_v.value);}; case "anonymous": {return fromPattern(_v.value);}; }; } -export function asNamedSimplePattern_(v: _val): NamedSimplePattern_ { - let result = toNamedSimplePattern_(v); - if (result === void 0) throw new TypeError(`Invalid NamedSimplePattern_: ${_.stringify(v)}`); +export function asBinding(v: _val): Binding { + let result = toBinding(v); + if (result === void 0) throw new TypeError(`Invalid Binding: ${_.stringify(v)}`); return result; } -export function toNamedSimplePattern_(v: _val): undefined | NamedSimplePattern_ { - let result: undefined | NamedSimplePattern_; +export function toBinding(v: _val): undefined | Binding { + let result: undefined | Binding; if (_.Record.isRecord<_val, _.Tuple<_val>, _embedded>(v)) { let _tmp0: (null) | undefined; _tmp0 = _.is(v.label, $named) ? null : void 0; @@ -927,7 +927,7 @@ export function toNamedSimplePattern_(v: _val): undefined | NamedSimplePattern_ return result; } -export function fromNamedSimplePattern_(_v: NamedSimplePattern_): _val {return _.Record($named, [_v["name"], fromSimplePattern(_v["pattern"])]);} +export function fromBinding(_v: Binding): _val {return _.Record($named, [_v["name"], fromSimplePattern(_v["pattern"])]);} export function asRef(v: _val): Ref { let result = toRef(v); diff --git a/implementations/javascript/packages/schema/src/reader.ts b/implementations/javascript/packages/schema/src/reader.ts index 7f47ba4..8996b9d 100644 --- a/implementations/javascript/packages/schema/src/reader.ts +++ b/implementations/javascript/packages/schema/src/reader.ts @@ -171,7 +171,7 @@ function parseDefinition(name: symbol, pos: Position | null, body: Array) const p = parsePattern(name, input); if (n !== false) { if (p._variant !== 'SimplePattern') namedMustBeSimple(position(input[0])); - return M.NamedPattern.named(M.NamedSimplePattern_({ name: n, pattern: p.value })); + return M.NamedPattern.named(M.Binding({ name: n, pattern: p.value })); } return M.NamedPattern.anonymous(p); } @@ -330,7 +330,7 @@ function parsePattern(name: symbol, body0: Array): Pattern { }); function _maybeNamed( - named: (p: M.NamedSimplePattern_) => R, + named: (p: M.Binding) => R, anonymous: (p: P) => R, recur: (b: Input) => P, literalName?: Input): (b: Input) => R @@ -348,7 +348,7 @@ function parsePattern(name: symbol, body0: Array): Pattern { if (name === false) { return anonymous(recur(b)); } - return named(M.NamedSimplePattern_({ name, pattern: parseSimple(b, p => p, () => + return named(M.Binding({ name, pattern: parseSimple(b, p => p, () => namedMustBeSimple(position(b))) })); }; } diff --git a/implementations/racket/preserves/preserves-schema/checker.rkt b/implementations/racket/preserves/preserves-schema/checker.rkt index dd5c977..5b7547c 100644 --- a/implementations/racket/preserves/preserves-schema/checker.rkt +++ b/implementations/racket/preserves/preserves-schema/checker.rkt @@ -54,7 +54,7 @@ (define (check-named-pattern context scope p) (match (unwrap p) - [(NamedSimplePattern_ n p) + [(Binding n p) (check-binding context scope n) (check-pattern (cons n context) scope p #t)] [p (check-pattern context scope p #f)])) diff --git a/implementations/racket/preserves/preserves-schema/compiler.rkt b/implementations/racket/preserves/preserves-schema/compiler.rkt index 75ea3fb..c3e1c31 100644 --- a/implementations/racket/preserves/preserves-schema/compiler.rkt +++ b/implementations/racket/preserves/preserves-schema/compiler.rkt @@ -59,7 +59,7 @@ [(Definition-Pattern p) (walk p)] [(Definition-or p0 p1 pN) (for-each walk (list* p0 p1 pN))] [(Definition-and p0 p1 pN) (for-each walk (list* p0 p1 pN))] - [(NamedSimplePattern_ n p) (walk p)] + [(Binding n p) (walk p)] [(NamedAlternative _ p) (walk p)] [(SimplePattern-seqof p) (walk p)] [(SimplePattern-setof p) (walk p)] diff --git a/implementations/racket/preserves/preserves-schema/gen/schema.rkt b/implementations/racket/preserves/preserves-schema/gen/schema.rkt index 17dafe8..a6efbc6 100644 --- a/implementations/racket/preserves/preserves-schema/gen/schema.rkt +++ b/implementations/racket/preserves/preserves-schema/gen/schema.rkt @@ -96,6 +96,30 @@ (_ eof))) (define parse-AtomKind! (parse-success-or-error 'parse-AtomKind parse-AtomKind)) + (struct + Binding + (name pattern) + #:transparent + #:methods + gen:preservable + ((define/generic *->preserve ->preserve) + (define (->preserve preservable) + (match + preservable + ((Binding ?name ?pattern) + (record 'named (list (*->preserve ?name) (*->preserve ?pattern)))))))) + (define (parse-Binding input) + (match + input + ((and dest + (record + 'named + (list + (and ?name (? symbol?)) + (app parse-SimplePattern (and ?pattern (not (== eof))))))) + (Binding ?name ?pattern)) + (_ eof))) + (define parse-Binding! (parse-success-or-error 'parse-Binding parse-Binding)) (struct Bundle (modules) @@ -467,8 +491,7 @@ (define (parse-NamedPattern input) (match input - ((app parse-NamedSimplePattern_ (and dest (not (== eof)))) - (NamedPattern-named dest)) + ((app parse-Binding (and dest (not (== eof)))) (NamedPattern-named dest)) ((app parse-Pattern (and dest (not (== eof)))) (NamedPattern-anonymous dest)) (_ eof))) @@ -499,7 +522,7 @@ (define (parse-NamedSimplePattern input) (match input - ((app parse-NamedSimplePattern_ (and dest (not (== eof)))) + ((app parse-Binding (and dest (not (== eof)))) (NamedSimplePattern-named dest)) ((app parse-SimplePattern (and dest (not (== eof)))) (NamedSimplePattern-anonymous dest)) @@ -508,33 +531,6 @@ (parse-success-or-error 'parse-NamedSimplePattern parse-NamedSimplePattern)) - (struct - NamedSimplePattern_ - (name pattern) - #:transparent - #:methods - gen:preservable - ((define/generic *->preserve ->preserve) - (define (->preserve preservable) - (match - preservable - ((NamedSimplePattern_ ?name ?pattern) - (record 'named (list (*->preserve ?name) (*->preserve ?pattern)))))))) - (define (parse-NamedSimplePattern_ input) - (match - input - ((and dest - (record - 'named - (list - (and ?name (? symbol?)) - (app parse-SimplePattern (and ?pattern (not (== eof))))))) - (NamedSimplePattern_ ?name ?pattern)) - (_ eof))) - (define parse-NamedSimplePattern_! - (parse-success-or-error - 'parse-NamedSimplePattern_ - parse-NamedSimplePattern_)) (define (Pattern? p) (or (Pattern-SimplePattern? p) (Pattern-CompoundPattern? p))) (struct diff --git a/implementations/racket/preserves/preserves-schema/parser.rkt b/implementations/racket/preserves/preserves-schema/parser.rkt index 8b30bf8..17e05e2 100644 --- a/implementations/racket/preserves/preserves-schema/parser.rkt +++ b/implementations/racket/preserves/preserves-schema/parser.rkt @@ -20,7 +20,7 @@ (define (pattern->match-pattern pattern dest-pat-stx) (match (unwrap pattern) - [(NamedSimplePattern_ n p) (pattern->match-pattern p (maybe-dest dest-pat-stx (escape n)))] + [(Binding n p) (pattern->match-pattern p (maybe-dest dest-pat-stx (escape n)))] [(SimplePattern-any) dest-pat-stx] [(SimplePattern-atom atom-kind) (maybe-dest dest-pat-stx diff --git a/implementations/racket/preserves/preserves-schema/reader.rkt b/implementations/racket/preserves/preserves-schema/reader.rkt index 9118516..4803173 100644 --- a/implementations/racket/preserves/preserves-schema/reader.rkt +++ b/implementations/racket/preserves/preserves-schema/reader.rkt @@ -95,7 +95,7 @@ [n (when (not (Pattern-SimplePattern? p)) (error 'parse-def-dsl "Named pattern in 'and' must be simple: ~a" (input->string input))) - (NamedPattern-named (NamedSimplePattern_ n (Pattern-SimplePattern-value p)))])) + (NamedPattern-named (Binding n (Pattern-SimplePattern-value p)))])) (define (or-branch input) (define p (parse-pattern-dsl name input)) (match (or (find-name input) (find-name (car input))) @@ -203,7 +203,7 @@ values (lambda () (error 'parse-pattern-dsl "Named pattern must be simple: ~a" (input->string b)))))) - (knamed (NamedSimplePattern_ n p))) + (knamed (Binding n p))) (kanonymous (recur b)))) (define maybe-named diff --git a/implementations/racket/preserves/preserves-schema/schema.prs b/implementations/racket/preserves/preserves-schema/schema.prs index 2cf2df8..5db39dc 100644 --- a/implementations/racket/preserves/preserves-schema/schema.prs +++ b/implementations/racket/preserves/preserves-schema/schema.prs @@ -83,10 +83,10 @@ AtomKind = =Boolean / =Float / =Double / =SignedInteger / =String / =ByteString NamedAlternative = [@variantLabel string @pattern Pattern]. -NamedSimplePattern = @named NamedSimplePattern_ / @anonymous SimplePattern . -NamedPattern = @named NamedSimplePattern_ / @anonymous Pattern . +NamedSimplePattern = @named Binding / @anonymous SimplePattern . +NamedPattern = @named Binding / @anonymous Pattern . -NamedSimplePattern_ = . +Binding = . Ref = . ModulePath = [symbol ...]. diff --git a/implementations/racket/preserves/preserves-schema/type.rkt b/implementations/racket/preserves/preserves-schema/type.rkt index b60bb16..5112ac0 100644 --- a/implementations/racket/preserves/preserves-schema/type.rkt +++ b/implementations/racket/preserves/preserves-schema/type.rkt @@ -66,7 +66,7 @@ (define (gather-fields named-pat acc) (match (unwrap named-pat) - [(NamedSimplePattern_ n p) + [(Binding n p) (match (pattern-ty p) [(ty-unit) acc] [ty (cons (ty-field n ty p) acc)])] diff --git a/implementations/racket/preserves/preserves-schema/unparser.rkt b/implementations/racket/preserves/preserves-schema/unparser.rkt index 920c089..598ca58 100644 --- a/implementations/racket/preserves/preserves-schema/unparser.rkt +++ b/implementations/racket/preserves/preserves-schema/unparser.rkt @@ -12,7 +12,7 @@ (define (pattern->unparser pattern src-stx) (match (unwrap pattern) - [(NamedSimplePattern_ n p) (pattern->unparser p (escape n))] + [(Binding n p) (pattern->unparser p (escape n))] [(SimplePattern-any) `(*->preserve ,src-stx)] [(SimplePattern-atom (AtomKind-Float)) `(->float (*->preserve ,src-stx))] [(SimplePattern-atom (AtomKind-Double)) `(exact->inexact (*->preserve ,src-stx))] diff --git a/preserves-schema.md b/preserves-schema.md index 96ba373..8f61cfd 100644 --- a/preserves-schema.md +++ b/preserves-schema.md @@ -4,7 +4,7 @@ title: "Preserves Schema" --- Tony Garnock-Jones -June 2021. Version 0.1.1. +June 2021. Version 0.1.2. [abnf]: https://tools.ietf.org/html/rfc7405 @@ -441,9 +441,9 @@ Explicitly-named subpatterns are always `SimplePattern`s; but, depending on context, if a name is omitted, the pattern may be a `Pattern` or may be restricted to `SimplePattern` as well: - NamedSimplePattern = @named NamedSimplePattern_ / @anonymous SimplePattern . - NamedPattern = @named NamedSimplePattern_ / @anonymous Pattern . - NamedSimplePattern_ = . + NamedSimplePattern = @named Binding / @anonymous SimplePattern . + NamedPattern = @named Binding / @anonymous Pattern . + Binding = . [^todo-semantics-of-bundles]: The semantics of module path references remain to be specified! @@ -486,7 +486,7 @@ metaschema. Bundle: >]>>, - NamedSimplePattern_: >, > ]>>, @@ -504,7 +504,7 @@ metaschema. ]>, NamedSimplePattern: ], + ["named", ], ["anonymous", ] ]>, @@ -530,7 +530,7 @@ metaschema. Version: , NamedPattern: ], + ["named", ], ["anonymous", ] ]>, @@ -651,16 +651,16 @@ definitions for the metaschema. export type NamedAlternative = {"variantLabel": string, "pattern": Pattern}; export type NamedSimplePattern = ( - {"_variant": "named", "value": NamedSimplePattern_} | + {"_variant": "named", "value": Binding} | {"_variant": "anonymous", "value": SimplePattern} ); export type NamedPattern = ( - {"_variant": "named", "value": NamedSimplePattern_} | + {"_variant": "named", "value": Binding} | {"_variant": "anonymous", "value": Pattern} ); - export type NamedSimplePattern_ = {"name": symbol, "pattern": SimplePattern}; + export type Binding = {"name": symbol, "pattern": SimplePattern}; export type Ref = {"module": ModulePath, "name": symbol}; @@ -698,7 +698,7 @@ definitions for the metaschema. (struct NamedSimplePattern-anonymous (value) #:prefab) (struct NamedSimplePattern-named (value) #:prefab) - (struct NamedSimplePattern_ (name pattern) #:prefab) + (struct Binding (name pattern) #:prefab) (struct Pattern-CompoundPattern (value) #:prefab) (struct Pattern-SimplePattern (value) #:prefab) diff --git a/schema/schema.bin b/schema/schema.bin index 79d4165..a248064 100644 --- a/schema/schema.bin +++ b/schema/schema.bin @@ -1,8 +1,8 @@ ´³schema·³version‘³ definitions·³Ref´³rec´³lit³ref„´³tupleµ´³named³module´³refµ„³ -ModulePath„„´³named³name´³atom³Symbol„„„„„³Bundle´³rec´³lit³bundle„´³tupleµ´³named³modules´³refµ„³Modules„„„„„³Schema´³rec´³lit³schema„´³tupleµ´³dict·³version´³named³version´³refµ„³Version„„³ definitions´³named³ definitions´³refµ„³ Definitions„„³ embeddedType´³named³ embeddedType´³refµ„³EmbeddedTypeName„„„„„„„³Modules´³dictof´³refµ„³ +ModulePath„„´³named³name´³atom³Symbol„„„„„³Bundle´³rec´³lit³bundle„´³tupleµ´³named³modules´³refµ„³Modules„„„„„³Schema´³rec´³lit³schema„´³tupleµ´³dict·³version´³named³version´³refµ„³Version„„³ definitions´³named³ definitions´³refµ„³ Definitions„„³ embeddedType´³named³ embeddedType´³refµ„³EmbeddedTypeName„„„„„„„³Binding´³rec´³lit³named„´³tupleµ´³named³name´³atom³Symbol„„´³named³pattern´³refµ„³ SimplePattern„„„„„³Modules´³dictof´³refµ„³ ModulePath„´³refµ„³Schema„„³Pattern´³orµµ± SimplePattern´³refµ„³ SimplePattern„„µ±CompoundPattern´³refµ„³CompoundPattern„„„„³Version´³lit‘„³AtomKind´³orµµ±Boolean´³lit³Boolean„„µ±Float´³lit³Float„„µ±Double´³lit³Double„„µ± SignedInteger´³lit³ SignedInteger„„µ±String´³lit³String„„µ± ByteString´³lit³ ByteString„„µ±Symbol´³lit³Symbol„„„„³ Definition´³orµµ±or´³rec´³lit³or„´³tupleµ´³ tuplePrefixµ´³named³pattern0´³refµ„³NamedAlternative„„´³named³pattern1´³refµ„³NamedAlternative„„„´³named³patternN´³seqof´³refµ„³NamedAlternative„„„„„„„„µ±and´³rec´³lit³and„´³tupleµ´³ tuplePrefixµ´³named³pattern0´³refµ„³ NamedPattern„„´³named³pattern1´³refµ„³ NamedPattern„„„´³named³patternN´³seqof´³refµ„³ NamedPattern„„„„„„„„µ±Pattern´³refµ„³Pattern„„„„³ ModulePath´³seqof´³atom³Symbol„„³ Definitions´³dictof´³atom³Symbol„´³refµ„³ -Definition„„³ NamedPattern´³orµµ±named´³refµ„³NamedSimplePattern_„„µ± anonymous´³refµ„³Pattern„„„„³ SimplePattern´³orµµ±any´³lit³any„„µ±atom´³rec´³lit³atom„´³tupleµ´³named³atomKind´³refµ„³AtomKind„„„„„„µ±embedded´³rec´³lit³embedded„´³tupleµ´³named³ interface´³refµ„³ SimplePattern„„„„„„µ±lit´³rec´³lit³lit„´³tupleµ´³named³value³any„„„„„µ±seqof´³rec´³lit³seqof„´³tupleµ´³named³pattern´³refµ„³ SimplePattern„„„„„„µ±setof´³rec´³lit³setof„´³tupleµ´³named³pattern´³refµ„³ SimplePattern„„„„„„µ±dictof´³rec´³lit³dictof„´³tupleµ´³named³key´³refµ„³ SimplePattern„„´³named³value´³refµ„³ SimplePattern„„„„„„µ±Ref´³refµ„³Ref„„„„³CompoundPattern´³orµµ±rec´³rec´³lit³rec„´³tupleµ´³named³label´³refµ„³ NamedPattern„„´³named³fields´³refµ„³ NamedPattern„„„„„„µ±tuple´³rec´³lit³tuple„´³tupleµ´³named³patterns´³seqof´³refµ„³ NamedPattern„„„„„„„µ± tuplePrefix´³rec´³lit³ tuplePrefix„´³tupleµ´³named³fixed´³seqof´³refµ„³ NamedPattern„„„´³named³variable´³refµ„³NamedSimplePattern„„„„„„µ±dict´³rec´³lit³dict„´³tupleµ´³named³entries´³refµ„³DictionaryEntries„„„„„„„„³EmbeddedTypeName´³orµµ±Ref´³refµ„³Ref„„µ±false´³lit€„„„„³NamedAlternative´³tupleµ´³named³ variantLabel´³atom³String„„´³named³pattern´³refµ„³Pattern„„„„³DictionaryEntries´³dictof³any´³refµ„³NamedSimplePattern„„³NamedSimplePattern´³orµµ±named´³refµ„³NamedSimplePattern_„„µ± anonymous´³refµ„³ SimplePattern„„„„³NamedSimplePattern_´³rec´³lit³named„´³tupleµ´³named³name´³atom³Symbol„„´³named³pattern´³refµ„³ SimplePattern„„„„„„³ embeddedType€„„ \ No newline at end of file +Definition„„³ NamedPattern´³orµµ±named´³refµ„³Binding„„µ± anonymous´³refµ„³Pattern„„„„³ SimplePattern´³orµµ±any´³lit³any„„µ±atom´³rec´³lit³atom„´³tupleµ´³named³atomKind´³refµ„³AtomKind„„„„„„µ±embedded´³rec´³lit³embedded„´³tupleµ´³named³ interface´³refµ„³ SimplePattern„„„„„„µ±lit´³rec´³lit³lit„´³tupleµ´³named³value³any„„„„„µ±seqof´³rec´³lit³seqof„´³tupleµ´³named³pattern´³refµ„³ SimplePattern„„„„„„µ±setof´³rec´³lit³setof„´³tupleµ´³named³pattern´³refµ„³ SimplePattern„„„„„„µ±dictof´³rec´³lit³dictof„´³tupleµ´³named³key´³refµ„³ SimplePattern„„´³named³value´³refµ„³ SimplePattern„„„„„„µ±Ref´³refµ„³Ref„„„„³CompoundPattern´³orµµ±rec´³rec´³lit³rec„´³tupleµ´³named³label´³refµ„³ NamedPattern„„´³named³fields´³refµ„³ NamedPattern„„„„„„µ±tuple´³rec´³lit³tuple„´³tupleµ´³named³patterns´³seqof´³refµ„³ NamedPattern„„„„„„„µ± tuplePrefix´³rec´³lit³ tuplePrefix„´³tupleµ´³named³fixed´³seqof´³refµ„³ NamedPattern„„„´³named³variable´³refµ„³NamedSimplePattern„„„„„„µ±dict´³rec´³lit³dict„´³tupleµ´³named³entries´³refµ„³DictionaryEntries„„„„„„„„³EmbeddedTypeName´³orµµ±Ref´³refµ„³Ref„„µ±false´³lit€„„„„³NamedAlternative´³tupleµ´³named³ variantLabel´³atom³String„„´³named³pattern´³refµ„³Pattern„„„„³DictionaryEntries´³dictof³any´³refµ„³NamedSimplePattern„„³NamedSimplePattern´³orµµ±named´³refµ„³Binding„„µ± anonymous´³refµ„³ SimplePattern„„„„„³ embeddedType€„„ \ No newline at end of file diff --git a/schema/schema.prs b/schema/schema.prs index 2cf2df8..5db39dc 100644 --- a/schema/schema.prs +++ b/schema/schema.prs @@ -83,10 +83,10 @@ AtomKind = =Boolean / =Float / =Double / =SignedInteger / =String / =ByteString NamedAlternative = [@variantLabel string @pattern Pattern]. -NamedSimplePattern = @named NamedSimplePattern_ / @anonymous SimplePattern . -NamedPattern = @named NamedSimplePattern_ / @anonymous Pattern . +NamedSimplePattern = @named Binding / @anonymous SimplePattern . +NamedPattern = @named Binding / @anonymous Pattern . -NamedSimplePattern_ = . +Binding = . Ref = . ModulePath = [symbol ...].