aontu 0.76.0 → 0.76.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/aontu.d.ts CHANGED
@@ -23,7 +23,7 @@ import { loadProfile } from './profile';
23
23
  import { desugarTemplate, resugarTemplate, markerFor } from './template';
24
24
  import { format, unifiedDiff } from './format';
25
25
  export type { LintFinding, FormatReport, FormatOptions } from './format';
26
- declare const VERSION = "0.76.0";
26
+ declare const VERSION = "0.76.1";
27
27
  declare class Aontu {
28
28
  opts: AontuOptions;
29
29
  lang: Lang;
package/dist/aontu.js CHANGED
@@ -59,7 +59,7 @@ Object.defineProperty(exports, "markerFor", { enumerable: true, get: function ()
59
59
  const format_1 = require("./format");
60
60
  Object.defineProperty(exports, "format", { enumerable: true, get: function () { return format_1.format; } });
61
61
  Object.defineProperty(exports, "unifiedDiff", { enumerable: true, get: function () { return format_1.unifiedDiff; } });
62
- const VERSION = '0.76.0';
62
+ const VERSION = '0.76.1';
63
63
  exports.VERSION = VERSION;
64
64
  function genQuiet(val, aontu) {
65
65
  return val.gen(aontu.ctx({ collect: true }));
package/dist/lsp.d.ts CHANGED
@@ -4,7 +4,7 @@ declare const SEVERITY_ERROR = 1;
4
4
  declare const SEVERITY_WARNING = 2;
5
5
  declare const SEVERITY_INFORMATION = 3;
6
6
  declare const SEVERITY_HINT = 4;
7
- declare const LSP_VERSION = "0.76.0";
7
+ declare const LSP_VERSION = "0.76.1";
8
8
  type Position = {
9
9
  line: number;
10
10
  character: number;
@@ -12,6 +12,8 @@ declare class PrefVal extends FeatureVal {
12
12
  constructor(spec: ValSpec, ctx?: AontuContext);
13
13
  private resuper;
14
14
  private restand;
15
+ private stand;
16
+ private meetPref;
15
17
  unify(peer: Val, ctx: AontuContext): Val;
16
18
  same(peer: Val): boolean;
17
19
  clone(ctx: AontuContext, spec?: ValSpec): Val;
@@ -48,6 +48,41 @@ class PrefVal extends FeatureVal_1.FeatureVal {
48
48
  }
49
49
  return this.place(out);
50
50
  }
51
+ // Unchanged on both counts is the SAME preference, returned as
52
+ // itself: minting a new one every pass would keep the fixpoint
53
+ // moving for ever.
54
+ stand(met, gate, ctx) {
55
+ if (met.same(prefInnerPeg(this)) && gate.same(this.superpeg)) {
56
+ return this;
57
+ }
58
+ const stood = this.restand(met, ctx);
59
+ stood.narrowed = gate;
60
+ stood.superpeg = gate;
61
+ return stood;
62
+ }
63
+ // Scalar defaults meet as the disjunctions they stand for: each
64
+ // stands only where the other's override space admits it, so a value
65
+ // either one has already met survives the other's rank.
66
+ meetPref(peer, ctx) {
67
+ const strong = peer.rank < this.rank ? peer : this;
68
+ const weak = strong === this ? peer : this;
69
+ const gate = (0, FuncBaseVal_1.trialUnify)(ctx, strong.superpeg.clone(ctx), weak.superpeg.clone(ctx));
70
+ if (undefined === gate) {
71
+ return (0, err_1.makeNilErr)(ctx, 'empty', this, peer, 'unify');
72
+ }
73
+ const strongMet = (0, FuncBaseVal_1.trialUnify)(ctx, prefInnerPeg(strong).clone(ctx), weak.superpeg.clone(ctx));
74
+ const weakMet = (0, FuncBaseVal_1.trialUnify)(ctx, strong.superpeg.clone(ctx), prefInnerPeg(weak).clone(ctx));
75
+ if (strong.rank === weak.rank &&
76
+ undefined !== strongMet && undefined !== weakMet) {
77
+ const peg = (0, FuncBaseVal_1.trialUnify)(ctx, prefInnerPeg(this).clone(ctx), prefInnerPeg(peer));
78
+ return undefined === peg
79
+ ? (0, err_1.makeNilErr)(ctx, 'pref_rank_clash', this, peer, 'unify')
80
+ : this.stand(peg, gate, ctx);
81
+ }
82
+ return undefined !== strongMet ? strong.stand(strongMet, gate, ctx)
83
+ : undefined !== weakMet ? weak.stand(weakMet, gate, ctx)
84
+ : gate;
85
+ }
51
86
  // PrefVal unify always returns a PrefVal
52
87
  // PrefVals can only be removed by becoming Nil in a Disjunct
53
88
  unify(peer, ctx) {
@@ -71,6 +106,11 @@ class PrefVal extends FeatureVal_1.FeatureVal {
71
106
  out = this;
72
107
  why += 'same-peg';
73
108
  }
109
+ else if (true === prefInnerPeg(this).isScalar &&
110
+ true === prefInnerPeg(peer).isScalar) {
111
+ out = this.meetPref(peer, ctx);
112
+ why += 'gated';
113
+ }
74
114
  else if (this.rank < peer.rank) {
75
115
  out = this;
76
116
  why += 'rank-win';
@@ -92,18 +132,7 @@ class PrefVal extends FeatureVal_1.FeatureVal {
92
132
  const met = (0, FuncBaseVal_1.trialUnify)(ctx, prefInnerPeg(this).clone(ctx), peer);
93
133
  if (undefined !== met) {
94
134
  const gate = (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'GATE') }) : ctx, this.superpeg.clone(ctx), peer, 'pref-gate/' + this.id);
95
- // Unchanged on both counts is the SAME preference, returned as
96
- // itself: minting a new one every pass would keep the fixpoint
97
- // moving for ever.
98
- if (met.same(prefInnerPeg(this)) && gate.same(this.superpeg)) {
99
- out = this;
100
- }
101
- else {
102
- const stood = this.restand(met, ctx);
103
- stood.narrowed = gate;
104
- stood.superpeg = gate;
105
- out = stood;
106
- }
135
+ out = this.stand(met, gate, ctx);
107
136
  why += 'stands';
108
137
  (0, utility_1.explainClose)(te, out);
109
138
  out.dc = type_1.DONE;
@@ -1 +1 @@
1
- {"version":3,"file":"PrefVal.js","sourceRoot":"","sources":["../../src/val/PrefVal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PrefVal.js","sourceRoot":"","sources":["../../src/val/PrefVal.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aontu",
3
- "version": "0.76.0",
3
+ "version": "0.76.1",
4
4
  "main": "dist/aontu.js",
5
5
  "type": "commonjs",
6
6
  "types": "dist/aontu.d.ts",
package/src/aontu.ts CHANGED
@@ -36,7 +36,7 @@ import { format, unifiedDiff } from './format'
36
36
  export type { LintFinding, FormatReport, FormatOptions } from './format'
37
37
 
38
38
 
39
- const VERSION = '0.76.0'
39
+ const VERSION = '0.76.1'
40
40
 
41
41
 
42
42
  function genQuiet(val: any, aontu: Aontu): any {
@@ -88,6 +88,55 @@ class PrefVal extends FeatureVal {
88
88
  }
89
89
 
90
90
 
91
+ // Unchanged on both counts is the SAME preference, returned as
92
+ // itself: minting a new one every pass would keep the fixpoint
93
+ // moving for ever.
94
+ private stand(met: Val, gate: Val, ctx: AontuContext): Val {
95
+ if (met.same(prefInnerPeg(this)) && gate.same(this.superpeg)) {
96
+ return this
97
+ }
98
+ const stood = this.restand(met, ctx) as PrefVal
99
+ stood.narrowed = gate
100
+ stood.superpeg = gate
101
+ return stood
102
+ }
103
+
104
+
105
+ // Scalar defaults meet as the disjunctions they stand for: each
106
+ // stands only where the other's override space admits it, so a value
107
+ // either one has already met survives the other's rank.
108
+ private meetPref(peer: PrefVal, ctx: AontuContext): Val {
109
+ const strong = peer.rank < this.rank ? peer : this
110
+ const weak = strong === this ? peer : this
111
+
112
+ const gate = trialUnify(ctx, strong.superpeg.clone(ctx),
113
+ weak.superpeg.clone(ctx))
114
+
115
+ if (undefined === gate) {
116
+ return makeNilErr(ctx, 'empty', this, peer, 'unify')
117
+ }
118
+
119
+ const strongMet = trialUnify(ctx, prefInnerPeg(strong).clone(ctx),
120
+ weak.superpeg.clone(ctx))
121
+ const weakMet = trialUnify(ctx, strong.superpeg.clone(ctx),
122
+ prefInnerPeg(weak).clone(ctx))
123
+
124
+ if (strong.rank === weak.rank &&
125
+ undefined !== strongMet && undefined !== weakMet) {
126
+ const peg = trialUnify(ctx, prefInnerPeg(this).clone(ctx),
127
+ prefInnerPeg(peer))
128
+
129
+ return undefined === peg
130
+ ? makeNilErr(ctx, 'pref_rank_clash', this, peer, 'unify')
131
+ : this.stand(peg, gate, ctx)
132
+ }
133
+
134
+ return undefined !== strongMet ? strong.stand(strongMet, gate, ctx)
135
+ : undefined !== weakMet ? weak.stand(weakMet, gate, ctx)
136
+ : gate
137
+ }
138
+
139
+
91
140
  // PrefVal unify always returns a PrefVal
92
141
  // PrefVals can only be removed by becoming Nil in a Disjunct
93
142
  unify(peer: Val, ctx: AontuContext): Val {
@@ -118,6 +167,12 @@ class PrefVal extends FeatureVal {
118
167
  why += 'same-peg'
119
168
  }
120
169
 
170
+ else if (true === (prefInnerPeg(this) as any).isScalar &&
171
+ true === (prefInnerPeg(peer) as any).isScalar) {
172
+ out = this.meetPref(peer, ctx)
173
+ why += 'gated'
174
+ }
175
+
121
176
  else if (this.rank < peer.rank) {
122
177
  out = this
123
178
  why += 'rank-win'
@@ -146,18 +201,7 @@ class PrefVal extends FeatureVal {
146
201
  const gate = unite(te ? ctx.clone({ explain: ec(te, 'GATE') }) : ctx,
147
202
  this.superpeg.clone(ctx), peer, 'pref-gate/' + this.id)
148
203
 
149
- // Unchanged on both counts is the SAME preference, returned as
150
- // itself: minting a new one every pass would keep the fixpoint
151
- // moving for ever.
152
- if (met.same(prefInnerPeg(this)) && gate.same(this.superpeg)) {
153
- out = this
154
- }
155
- else {
156
- const stood = this.restand(met, ctx) as PrefVal
157
- stood.narrowed = gate
158
- stood.superpeg = gate
159
- out = stood
160
- }
204
+ out = this.stand(met, gate, ctx)
161
205
 
162
206
  why += 'stands'
163
207
  explainClose(te, out)