@bablr/language-en-spamex 0.7.0 → 0.8.0
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/lib/grammar.js +12 -16
- package/lib/grammar.macro.js +11 -10
- package/package.json +9 -9
package/lib/grammar.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/* @macrome
|
|
2
2
|
* @generatedby @bablr/macrome-generator-bablr
|
|
3
|
-
* @generatedfrom ./grammar.macro.js#
|
|
3
|
+
* @generatedfrom ./grammar.macro.js#9ab9bbc4fe3575128046794948beb9a3e1ef7178
|
|
4
4
|
* This file is autogenerated. Please do not edit it directly.
|
|
5
5
|
* When editing run `npx macrome watch` then change the file this is generated from.
|
|
6
6
|
*/
|
|
7
7
|
import _applyDecs from "@babel/runtime/helpers/applyDecs2305";
|
|
8
8
|
let _initProto, _MatcherDecs, _GapNodeMatcherDecs, _ArrayNodeMatcherDecs, _NullNodeMatcherDecs, _PropertyMatcherDecs, _BasicNodeMatcherDecs, _CloseNodeMatcherDecs, _StringMatcherDecs, _StringDecs, _RegexDecs, _ListDecs, _PunctuatorDecs, _AnyDecs;
|
|
9
9
|
import { re, spam as m } from '@bablr/boot';
|
|
10
|
-
import { Node, CoveredBy, InjectFrom,
|
|
10
|
+
import { Node, CoveredBy, InjectFrom, Literal } from '@bablr/helpers/decorators';
|
|
11
11
|
import * as productions from '@bablr/helpers/productions';
|
|
12
|
-
import {
|
|
12
|
+
import { eat, eatMatch, match, fail } from '@bablr/helpers/grammar';
|
|
13
13
|
import * as Regex from '@bablr/language-en-regex-vm-pattern';
|
|
14
14
|
import * as CSTML from '@bablr/language-en-cstml';
|
|
15
15
|
import * as JSON from '@bablr/language-en-cstml-json';
|
|
@@ -32,11 +32,11 @@ export const grammar = class SpamexGrammar {
|
|
|
32
32
|
constructor() {
|
|
33
33
|
_initProto(this);
|
|
34
34
|
}
|
|
35
|
-
*[(_MatcherDecs = CoveredBy('Expression'), _GapNodeMatcherDecs = [Node, CoveredBy('NodeMatcher')], _ArrayNodeMatcherDecs = [Node, CoveredBy('NodeMatcher')], _NullNodeMatcherDecs = [Node, CoveredBy('NodeMatcher')], _PropertyMatcherDecs = [Node, CoveredBy('Matcher')], _BasicNodeMatcherDecs = [Node, CoveredBy('NodeMatcher')], _CloseNodeMatcherDecs = [Node, CoveredBy('Matcher')], _StringMatcherDecs = [CoveredBy('Matcher'), CoveredBy('Expression')], _StringDecs = [CoveredBy('StringMatcher'), CoveredBy('Matcher'), CoveredBy('Expression'), Node], _RegexDecs = [CoveredBy('StringMatcher'), CoveredBy('Matcher'), CoveredBy('Expression'), Node], _ListDecs = InjectFrom(productions), _PunctuatorDecs = [Node, InjectFrom(productions)], _AnyDecs = InjectFrom(productions), "Matcher")]() {
|
|
36
|
-
yield eat(m`<
|
|
35
|
+
*[(_MatcherDecs = CoveredBy('Expression'), _GapNodeMatcherDecs = [Node, CoveredBy('NodeMatcher')], _ArrayNodeMatcherDecs = [Node, CoveredBy('NodeMatcher')], _NullNodeMatcherDecs = [Node, CoveredBy('NodeMatcher')], _PropertyMatcherDecs = [Node, CoveredBy('Matcher')], _BasicNodeMatcherDecs = [Node, CoveredBy('NodeMatcher')], _CloseNodeMatcherDecs = [Node, CoveredBy('Matcher')], _StringMatcherDecs = [CoveredBy('Matcher'), CoveredBy('Expression')], _StringDecs = [CoveredBy('StringMatcher'), CoveredBy('Matcher'), CoveredBy('Expression'), Node], _RegexDecs = [CoveredBy('StringMatcher'), CoveredBy('Matcher'), CoveredBy('Expression'), Node], _ListDecs = InjectFrom(productions), _PunctuatorDecs = [Literal, Node, InjectFrom(productions)], _AnyDecs = InjectFrom(productions), "Matcher")]() {
|
|
36
|
+
yield eat(m`<_Any />`, [m`<PropertyMatcher /[a-zA-Z.@#<]/ />`, m`<__StringMatcher /[/'"]/ />`]);
|
|
37
37
|
}
|
|
38
38
|
*NodeMatcher() {
|
|
39
|
-
yield eat(m`<
|
|
39
|
+
yield eat(m`<_Any />`, [m`<GapNodeMatcher '<//>' />`, m`<BasicNodeMatcher '<' />`, m`<ArrayNodeMatcher '[' />`, m`<NullNodeMatcher 'null' />`]);
|
|
40
40
|
}
|
|
41
41
|
*GapNodeMatcher() {
|
|
42
42
|
yield eat(m`sigilToken: <*Punctuator '<//>' />`);
|
|
@@ -50,14 +50,14 @@ export const grammar = class SpamexGrammar {
|
|
|
50
50
|
*PropertyMatcher() {
|
|
51
51
|
yield eatMatch(m`refMatcher: <ReferenceMatcher />`);
|
|
52
52
|
yield* eatMatchTrivia();
|
|
53
|
-
yield eat(m`nodeMatcher: <
|
|
53
|
+
yield eat(m`nodeMatcher: <__NodeMatcher />`);
|
|
54
54
|
}
|
|
55
55
|
*ReferenceMatcher() {
|
|
56
56
|
let name;
|
|
57
57
|
if (yield match(re`/[.#@]/`)) {
|
|
58
58
|
name = yield eatMatch(m`name$: <*Punctuator /[.#@]/ />`);
|
|
59
59
|
} else {
|
|
60
|
-
name = yield eatMatch(m`name$:
|
|
60
|
+
name = yield eatMatch(m`name$: <CSTML:Identifier />`);
|
|
61
61
|
}
|
|
62
62
|
if (name && (yield eatMatch(m`openIndexToken: <*Punctuator '[' { balanced: ']' } />`))) {
|
|
63
63
|
yield* eatMatchTrivia();
|
|
@@ -85,7 +85,7 @@ export const grammar = class SpamexGrammar {
|
|
|
85
85
|
*OpenNodeMatcher() {
|
|
86
86
|
yield eat(m`open: <*Punctuator '<' { balancedSpan: 'Tag', balanced: '>' } />`);
|
|
87
87
|
yield eat(m`flags: <CSTML:NodeFlags />`);
|
|
88
|
-
if (yield eatMatch(m`<
|
|
88
|
+
if (yield eatMatch(m`<_CSTML:TagType /[a-zA-Z'"\g]/ />`)) {
|
|
89
89
|
// continue
|
|
90
90
|
} else if (yield eatMatch(m`type$: <*Punctuator /[ \t]+|?/ />`)) {
|
|
91
91
|
// continue
|
|
@@ -93,7 +93,7 @@ export const grammar = class SpamexGrammar {
|
|
|
93
93
|
yield fail();
|
|
94
94
|
}
|
|
95
95
|
let sp = yield* eatMatchTrivia();
|
|
96
|
-
if (sp && !(yield match(re`/\/$/`)) && (yield eatMatch(m`intrinsicValue$: <
|
|
96
|
+
if (sp && !(yield match(re`/\/$/`)) && (yield eatMatch(m`intrinsicValue$: <__StringMatcher />`))) {
|
|
97
97
|
sp = yield* eatMatchTrivia();
|
|
98
98
|
}
|
|
99
99
|
while (sp && (yield match('{'))) {
|
|
@@ -115,14 +115,10 @@ export const grammar = class SpamexGrammar {
|
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
117
|
*String() {
|
|
118
|
-
yield eat(m`<
|
|
119
|
-
suppressNode: true
|
|
120
|
-
}));
|
|
118
|
+
yield eat(m`<_JSON:String />`);
|
|
121
119
|
}
|
|
122
120
|
*Regex() {
|
|
123
|
-
yield eat(m`<
|
|
124
|
-
suppressNode: true
|
|
125
|
-
}));
|
|
121
|
+
yield eat(m`<_Regex:Pattern />`);
|
|
126
122
|
}
|
|
127
123
|
List() {}
|
|
128
124
|
Punctuator() {}
|
package/lib/grammar.macro.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { re, spam as m } from '@bablr/boot';
|
|
2
|
-
import { Node, CoveredBy, InjectFrom,
|
|
2
|
+
import { Node, CoveredBy, InjectFrom, Literal } from '@bablr/helpers/decorators';
|
|
3
3
|
import * as productions from '@bablr/helpers/productions';
|
|
4
|
-
import {
|
|
4
|
+
import { eat, eatMatch, match, fail } from '@bablr/helpers/grammar';
|
|
5
5
|
import * as Regex from '@bablr/language-en-regex-vm-pattern';
|
|
6
6
|
import * as CSTML from '@bablr/language-en-cstml';
|
|
7
7
|
import * as JSON from '@bablr/language-en-cstml-json';
|
|
@@ -17,11 +17,11 @@ const { eatMatchTrivia } = CSTML;
|
|
|
17
17
|
export const grammar = class SpamexGrammar {
|
|
18
18
|
@CoveredBy('Expression')
|
|
19
19
|
*Matcher() {
|
|
20
|
-
yield eat(m`<
|
|
20
|
+
yield eat(m`<_Any />`, [m`<PropertyMatcher /[a-zA-Z.@#<]/ />`, m`<__StringMatcher /[/'"]/ />`]);
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
*NodeMatcher() {
|
|
24
|
-
yield eat(m`<
|
|
24
|
+
yield eat(m`<_Any />`, [
|
|
25
25
|
m`<GapNodeMatcher '<//>' />`,
|
|
26
26
|
m`<BasicNodeMatcher '<' />`,
|
|
27
27
|
m`<ArrayNodeMatcher '[' />`,
|
|
@@ -52,7 +52,7 @@ export const grammar = class SpamexGrammar {
|
|
|
52
52
|
*PropertyMatcher() {
|
|
53
53
|
yield eatMatch(m`refMatcher: <ReferenceMatcher />`);
|
|
54
54
|
yield* eatMatchTrivia();
|
|
55
|
-
yield eat(m`nodeMatcher: <
|
|
55
|
+
yield eat(m`nodeMatcher: <__NodeMatcher />`);
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
@Node
|
|
@@ -61,7 +61,7 @@ export const grammar = class SpamexGrammar {
|
|
|
61
61
|
if (yield match(re`/[.#@]/`)) {
|
|
62
62
|
name = yield eatMatch(m`name$: <*Punctuator /[.#@]/ />`);
|
|
63
63
|
} else {
|
|
64
|
-
name = yield eatMatch(m`name$:
|
|
64
|
+
name = yield eatMatch(m`name$: <CSTML:Identifier />`);
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
if (name && (yield eatMatch(m`openIndexToken: <*Punctuator '[' { balanced: ']' } />`))) {
|
|
@@ -100,7 +100,7 @@ export const grammar = class SpamexGrammar {
|
|
|
100
100
|
yield eat(m`open: <*Punctuator '<' { balancedSpan: 'Tag', balanced: '>' } />`);
|
|
101
101
|
yield eat(m`flags: <CSTML:NodeFlags />`);
|
|
102
102
|
|
|
103
|
-
if (yield eatMatch(m`<
|
|
103
|
+
if (yield eatMatch(m`<_CSTML:TagType /[a-zA-Z'"\g]/ />`)) {
|
|
104
104
|
// continue
|
|
105
105
|
} else if (yield eatMatch(m`type$: <*Punctuator /[ \t]+|?/ />`)) {
|
|
106
106
|
// continue
|
|
@@ -113,7 +113,7 @@ export const grammar = class SpamexGrammar {
|
|
|
113
113
|
if (
|
|
114
114
|
sp &&
|
|
115
115
|
!(yield match(re`/\/$/`)) &&
|
|
116
|
-
(yield eatMatch(m`intrinsicValue$: <
|
|
116
|
+
(yield eatMatch(m`intrinsicValue$: <__StringMatcher />`))
|
|
117
117
|
) {
|
|
118
118
|
sp = yield* eatMatchTrivia();
|
|
119
119
|
}
|
|
@@ -149,7 +149,7 @@ export const grammar = class SpamexGrammar {
|
|
|
149
149
|
@CoveredBy('Expression')
|
|
150
150
|
@Node
|
|
151
151
|
*String() {
|
|
152
|
-
yield eat(m`<
|
|
152
|
+
yield eat(m`<_JSON:String />`);
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
@CoveredBy('StringMatcher')
|
|
@@ -157,12 +157,13 @@ export const grammar = class SpamexGrammar {
|
|
|
157
157
|
@CoveredBy('Expression')
|
|
158
158
|
@Node
|
|
159
159
|
*Regex() {
|
|
160
|
-
yield eat(m`<
|
|
160
|
+
yield eat(m`<_Regex:Pattern />`);
|
|
161
161
|
}
|
|
162
162
|
|
|
163
163
|
@InjectFrom(productions)
|
|
164
164
|
List() {}
|
|
165
165
|
|
|
166
|
+
@Literal
|
|
166
167
|
@Node
|
|
167
168
|
@InjectFrom(productions)
|
|
168
169
|
Punctuator() {}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bablr/language-en-spamex",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "A BABLR language for SPAM Expressions",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=12.0.0"
|
|
@@ -22,16 +22,16 @@
|
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@babel/runtime": "^7.23.2",
|
|
25
|
-
"@bablr/agast-helpers": "0.
|
|
26
|
-
"@bablr/agast-vm-helpers": "0.
|
|
27
|
-
"@bablr/
|
|
28
|
-
"@bablr/
|
|
29
|
-
"@bablr/language-en-
|
|
30
|
-
"@bablr/language-en-cstml
|
|
31
|
-
"@bablr/language-en-
|
|
25
|
+
"@bablr/agast-helpers": "0.7.1",
|
|
26
|
+
"@bablr/agast-vm-helpers": "0.7.1",
|
|
27
|
+
"@bablr/boot": "0.8.1",
|
|
28
|
+
"@bablr/helpers": "0.22.1",
|
|
29
|
+
"@bablr/language-en-blank-space": "0.7.0",
|
|
30
|
+
"@bablr/language-en-cstml": "0.9.0",
|
|
31
|
+
"@bablr/language-en-cstml-json": "0.2.0",
|
|
32
|
+
"@bablr/language-en-regex-vm-pattern": "0.9.0"
|
|
32
33
|
},
|
|
33
34
|
"devDependencies": {
|
|
34
|
-
"@bablr/boot": "^0.7.0",
|
|
35
35
|
"@bablr/eslint-config-base": "github:bablr-lang/eslint-config-base#49f5952efed27f94ee9b94340eb1563c440bf64e",
|
|
36
36
|
"@bablr/macrome": "^0.1.3",
|
|
37
37
|
"@bablr/macrome-generator-bablr": "^0.3.2",
|