Rename NamedSimplePattern_ -> Binding
This commit is contained in:
parent
fdb43f6292
commit
60d1be41a3
|
@ -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);
|
||||
|
|
|
@ -171,7 +171,7 @@ function parseDefinition(name: symbol, pos: Position | null, body: Array<Input>)
|
|||
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<Input>): Pattern {
|
|||
});
|
||||
|
||||
function _maybeNamed<R,P>(
|
||||
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<Input>): 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))) }));
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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)]))
|
||||
|
|
|
@ -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)]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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_ = <named @name symbol @pattern SimplePattern>.
|
||||
Binding = <named @name symbol @pattern SimplePattern>.
|
||||
|
||||
Ref = <ref @module ModulePath @name symbol>.
|
||||
ModulePath = [symbol ...].
|
||||
|
|
|
@ -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)])]
|
||||
|
|
|
@ -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))]
|
||||
|
|
|
@ -4,7 +4,7 @@ title: "Preserves Schema"
|
|||
---
|
||||
|
||||
Tony Garnock-Jones <tonyg@leastfixedpoint.com>
|
||||
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_ = <named @name symbol @pattern SimplePattern>.
|
||||
NamedSimplePattern = @named Binding / @anonymous SimplePattern .
|
||||
NamedPattern = @named Binding / @anonymous Pattern .
|
||||
Binding = <named @name symbol @pattern SimplePattern>.
|
||||
|
||||
[^todo-semantics-of-bundles]: The semantics of module path references
|
||||
remain to be specified!
|
||||
|
@ -486,7 +486,7 @@ metaschema.
|
|||
|
||||
Bundle: <rec <lit bundle> <tuple [<named modules <ref [] Modules>>]>>,
|
||||
|
||||
NamedSimplePattern_: <rec <lit named> <tuple [
|
||||
Binding: <rec <lit named> <tuple [
|
||||
<named name <atom Symbol>>,
|
||||
<named pattern <ref [] SimplePattern>>
|
||||
]>>,
|
||||
|
@ -504,7 +504,7 @@ metaschema.
|
|||
]>,
|
||||
|
||||
NamedSimplePattern: <or [
|
||||
["named", <ref [] NamedSimplePattern_>],
|
||||
["named", <ref [] Binding>],
|
||||
["anonymous", <ref [] SimplePattern>]
|
||||
]>,
|
||||
|
||||
|
@ -530,7 +530,7 @@ metaschema.
|
|||
Version: <lit 1>,
|
||||
|
||||
NamedPattern: <or [
|
||||
["named", <ref [] NamedSimplePattern_>],
|
||||
["named", <ref [] Binding>],
|
||||
["anonymous", <ref [] Pattern>]
|
||||
]>,
|
||||
|
||||
|
@ -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)
|
||||
|
|
|
@ -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€„„
|
||||
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€„„
|
|
@ -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_ = <named @name symbol @pattern SimplePattern>.
|
||||
Binding = <named @name symbol @pattern SimplePattern>.
|
||||
|
||||
Ref = <ref @module ModulePath @name symbol>.
|
||||
ModulePath = [symbol ...].
|
||||
|
|
Loading…
Reference in New Issue