grammar-composer 0.3.1 → 0.5.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/README.md +144 -89
- package/dist/exports/Exports.d.ts +2 -0
- package/dist/exports/Exports.d.ts.map +1 -1
- package/dist/exports/Exports.js +2 -0
- package/dist/exports/Exports.js.map +1 -1
- package/dist/parser-generator/Grammar.d.ts +12 -5
- package/dist/parser-generator/Grammar.d.ts.map +1 -1
- package/dist/parser-generator/Grammar.js +81 -263
- package/dist/parser-generator/Grammar.js.map +1 -1
- package/dist/parser-generator/ParseError.d.ts +37 -0
- package/dist/parser-generator/ParseError.d.ts.map +1 -0
- package/dist/parser-generator/ParseError.js +226 -0
- package/dist/parser-generator/ParseError.js.map +1 -0
- package/dist/parser-generator/StaticAnalysis.d.ts +6 -0
- package/dist/parser-generator/StaticAnalysis.d.ts.map +1 -0
- package/dist/parser-generator/StaticAnalysis.js +283 -0
- package/dist/parser-generator/StaticAnalysis.js.map +1 -0
- package/dist/parser-generator/TerminalToText.d.ts +15 -0
- package/dist/parser-generator/TerminalToText.d.ts.map +1 -0
- package/dist/parser-generator/TerminalToText.js +158 -0
- package/dist/parser-generator/TerminalToText.js.map +1 -0
- package/dist/parser-generator/TopDownParser.d.ts +4 -2
- package/dist/parser-generator/TopDownParser.d.ts.map +1 -1
- package/dist/parser-generator/TopDownParser.js +52 -52
- package/dist/parser-generator/TopDownParser.js.map +1 -1
- package/dist/tests/Test.js +36 -26
- package/dist/tests/Test.js.map +1 -1
- package/dist/tests/test-grammars/JsonGrammar.d.ts +12 -11
- package/dist/tests/test-grammars/JsonGrammar.d.ts.map +1 -1
- package/dist/tests/test-grammars/JsonGrammar.js +25 -10
- package/dist/tests/test-grammars/JsonGrammar.js.map +1 -1
- package/dist/tests/test-grammars/RegExpGrammar.d.ts +34 -28
- package/dist/tests/test-grammars/RegExpGrammar.d.ts.map +1 -1
- package/dist/tests/test-grammars/RegExpGrammar.js +104 -60
- package/dist/tests/test-grammars/RegExpGrammar.js.map +1 -1
- package/dist/tests/test-grammars/SimpleTestGrammar1.d.ts +5 -0
- package/dist/tests/test-grammars/SimpleTestGrammar1.d.ts.map +1 -0
- package/dist/tests/test-grammars/SimpleTestGrammar1.js +7 -0
- package/dist/tests/test-grammars/SimpleTestGrammar1.js.map +1 -0
- package/dist/tests/test-grammars/XmlGrammar.d.ts +11 -10
- package/dist/tests/test-grammars/XmlGrammar.d.ts.map +1 -1
- package/dist/tests/test-grammars/XmlGrammar.js +19 -8
- package/dist/tests/test-grammars/XmlGrammar.js.map +1 -1
- package/dist/utilities/LineAndColumn.d.ts +7 -0
- package/dist/utilities/LineAndColumn.d.ts.map +1 -0
- package/dist/utilities/LineAndColumn.js +52 -0
- package/dist/utilities/LineAndColumn.js.map +1 -0
- package/dist/utilities/Utilities.d.ts +7 -7
- package/dist/utilities/Utilities.d.ts.map +1 -1
- package/dist/utilities/Utilities.js.map +1 -1
- package/package.json +2 -2
- package/src/exports/Exports.ts +2 -0
- package/src/parser-generator/Grammar.ts +120 -308
- package/src/parser-generator/ParseError.ts +337 -0
- package/src/parser-generator/StaticAnalysis.ts +340 -0
- package/src/parser-generator/TerminalToText.ts +196 -0
- package/src/parser-generator/TopDownParser.ts +76 -64
- package/src/tests/Test.ts +44 -28
- package/src/tests/test-grammars/JsonGrammar.ts +28 -10
- package/src/tests/test-grammars/RegExpGrammar.ts +193 -96
- package/src/tests/test-grammars/SimpleTestGrammar1.ts +10 -0
- package/src/tests/test-grammars/XmlGrammar.ts +20 -8
- package/src/utilities/LineAndColumn.ts +61 -0
- package/src/utilities/Utilities.ts +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonGrammar.js","sourceRoot":"","sources":["../../../src/tests/test-grammars/JsonGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,0BAA0B,CAAA;AAC7C,OAAO,KAAK,CAAC,MAAM,iBAAiB,CAAA;AAEpC,MAAM,OAAO,WAAW;IACvB,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CACzB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,eAAe,CACpB,CAAA;IAED,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"JsonGrammar.js","sourceRoot":"","sources":["../../../src/tests/test-grammars/JsonGrammar.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,31 @@
|
|
|
1
1
|
import * as G from '../../exports/Exports.js';
|
|
2
|
-
import * as R from 'regexp-composer';
|
|
3
2
|
export declare class RegExpGrammar {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
root: () => () => G.Choice[];
|
|
4
|
+
disjunctionOrSequence: () => G.Choice[];
|
|
5
|
+
disjunction: () => (G.Repetition | (() => G.Production))[];
|
|
6
|
+
sequence: () => G.Production;
|
|
7
|
+
sequenceElement: () => G.Choice;
|
|
8
|
+
quantifiableExpression: () => G.Production;
|
|
9
|
+
quantifiedExpression: () => (() => G.Production)[];
|
|
10
|
+
starQuantifier: () => G.Production[];
|
|
11
|
+
plusQuantifier: () => G.Production[];
|
|
12
|
+
optionalQuantifier: () => G.Production[];
|
|
13
|
+
exactCountQuantifier: () => G.Production[];
|
|
14
|
+
countRangeQuantifier: () => G.Production[];
|
|
15
|
+
nongreedyQuantifier: () => string;
|
|
16
|
+
quantifier: () => G.Choice;
|
|
17
|
+
uncapturedGroup: () => (string | (() => G.Choice[]))[];
|
|
18
|
+
namedCaptureGroup: () => (string | G.PatternTerminal | (() => G.Choice[]))[];
|
|
19
|
+
unnamedCaptureGroup: () => (string | (() => G.Choice[]))[];
|
|
10
20
|
group: () => G.Choice;
|
|
11
|
-
uncapturedGroup: () => (string | (() => G.Production[]))[];
|
|
12
|
-
namedCaptureGroup: () => (string | G.PatternTerminal | (() => G.Production[]))[];
|
|
13
|
-
unnamedCaptureGroup: () => (string | (() => G.Production[]))[];
|
|
14
21
|
unnamedBackreference: () => G.PatternTerminal;
|
|
15
22
|
namedBackreference: () => G.PatternTerminal;
|
|
16
|
-
backReference: G.Choice;
|
|
17
|
-
positiveLookahead: () => (string | (() => G.
|
|
18
|
-
negativeLookahead: () => (string | (() => G.
|
|
19
|
-
positiveLookbehind: () => (string | (() => G.
|
|
20
|
-
negativeLookbehind: () => (string | (() => G.
|
|
21
|
-
lookaround: G.Choice;
|
|
23
|
+
backReference: () => G.Choice;
|
|
24
|
+
positiveLookahead: () => (string | (() => G.Choice[]))[];
|
|
25
|
+
negativeLookahead: () => (string | (() => G.Choice[]))[];
|
|
26
|
+
positiveLookbehind: () => (string | (() => G.Choice[]))[];
|
|
27
|
+
negativeLookbehind: () => (string | (() => G.Choice[]))[];
|
|
28
|
+
lookaround: () => G.Choice;
|
|
22
29
|
singleCharExpression: () => G.Choice;
|
|
23
30
|
unreservedCharLiteral: () => G.PatternTerminal;
|
|
24
31
|
escapedCharLiteral: () => G.PatternTerminal;
|
|
@@ -27,23 +34,22 @@ export declare class RegExpGrammar {
|
|
|
27
34
|
nullCharcode: () => G.PatternTerminal;
|
|
28
35
|
codepoint: () => G.Choice;
|
|
29
36
|
codepointRange: () => G.PatternTerminal;
|
|
30
|
-
unicodeProperty: () => G.PatternTerminal;
|
|
31
|
-
notUnicodeProperty: () => G.PatternTerminal;
|
|
32
|
-
unicodePropertyBodyPattern:
|
|
33
|
-
charClassChar: () => G.PatternTerminal;
|
|
37
|
+
unicodeProperty: () => (string | (() => G.PatternTerminal))[];
|
|
38
|
+
notUnicodeProperty: () => (string | (() => G.PatternTerminal))[];
|
|
39
|
+
unicodePropertyBodyPattern: () => G.PatternTerminal;
|
|
34
40
|
charClass: () => G.Production[];
|
|
35
|
-
charcodeOrEscapedChar: G.Choice;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
+
charcodeOrEscapedChar: () => G.Choice;
|
|
42
|
+
charClassLiteral: () => G.PatternTerminal;
|
|
43
|
+
charRangeElement: () => G.Choice;
|
|
44
|
+
charRangeStart: () => () => G.Choice;
|
|
45
|
+
charRangeEnd: () => () => G.Choice;
|
|
46
|
+
charRange: () => (string | (() => () => G.Choice))[];
|
|
41
47
|
charClassNegator: () => string;
|
|
42
48
|
inputStartAnchor: () => string;
|
|
43
49
|
inputEndAnchor: () => string;
|
|
44
50
|
anyCharWildcard: () => string;
|
|
45
|
-
|
|
46
|
-
anchor: G.Choice;
|
|
51
|
+
anchor: () => G.Choice;
|
|
47
52
|
escapedCharacterClass: () => G.PatternTerminal;
|
|
48
53
|
}
|
|
54
|
+
export declare const regExpGrammarUnwrappedNonterminalNames: G.GrammarNonterminalNames<RegExpGrammar>;
|
|
49
55
|
//# sourceMappingURL=RegExpGrammar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegExpGrammar.d.ts","sourceRoot":"","sources":["../../../src/tests/test-grammars/RegExpGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"RegExpGrammar.d.ts","sourceRoot":"","sources":["../../../src/tests/test-grammars/RegExpGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,0BAA0B,CAAA;AAG7C,qBAAa,aAAa;IAIzB,IAAI,yBAAmC;IAEvC,qBAAqB,mBAKpB;IAED,WAAW,gDAOV;IAED,QAAQ,qBAEP;IAED,eAAe,iBAKd;IAKD,sBAAsB,qBAMrB;IAED,oBAAoB,+BAGnB;IAKD,cAAc,uBAGb;IAED,cAAc,uBAGb;IAED,kBAAkB,uBAGjB;IAED,oBAAoB,uBASnB;IAED,oBAAoB,uBAanB;IAED,mBAAmB,eAAY;IAE/B,UAAU,iBAMT;IAKD,eAAe,wCAId;IAED,iBAAiB,4DAQhB;IAED,mBAAmB,wCAIlB;IAED,KAAK,iBAIJ;IAKD,oBAAoB,0BAMjB;IAEH,kBAAkB,0BAOf;IAEH,aAAa,iBAGZ;IAKD,iBAAiB,wCAIhB;IAED,iBAAiB,wCAIhB;IAED,kBAAkB,wCAIjB;IAED,kBAAkB,wCAIjB;IAED,UAAU,iBAKT;IAKD,oBAAoB,iBAQnB;IAED,qBAAqB,0BAIpB;IAED,kBAAkB,0BAKhB;IAEF,WAAW,0BAMR;IAEH,eAAe,0BAKb;IAEF,YAAY,0BAAyB;IAErC,SAAS,iBAeR;IAED,cAAc,0BAWZ;IAEF,eAAe,+CAGd;IAED,kBAAkB,+CAGjB;IAED,0BAA0B,0BAYxB;IAEF,SAAS,uBAaR;IAED,qBAAqB,iBAMpB;IAED,gBAAgB,0BAIf;IAED,gBAAgB,iBAGf;IAED,cAAc,uBAA8B;IAC5C,YAAY,uBAA8B;IAE1C,SAAS,4CAIR;IAKD,gBAAgB,eAAY;IAE5B,gBAAgB,eAAY;IAC5B,cAAc,eAAY;IAE1B,eAAe,eAAY;IAE3B,MAAM,iBAC8C;IAEpD,qBAAqB,0BAenB;CACF;AAiCD,eAAO,MAAM,sCAAsC,EAAE,CAAC,CAAC,uBAAuB,CAAC,aAAa,CAa3F,CAAA"}
|
|
@@ -4,56 +4,83 @@ export class RegExpGrammar {
|
|
|
4
4
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
5
5
|
// High-level productions
|
|
6
6
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
7
|
+
root = () => this.disjunctionOrSequence;
|
|
8
|
+
disjunctionOrSequence = () => [
|
|
9
|
+
G.anyOf(this.disjunction, this.sequence)
|
|
10
|
+
];
|
|
7
11
|
disjunction = () => [
|
|
8
12
|
this.sequence,
|
|
9
|
-
G.
|
|
10
|
-
|
|
11
|
-
this.
|
|
13
|
+
G.oneOrMore([
|
|
14
|
+
'|',
|
|
15
|
+
this.sequence,
|
|
12
16
|
])
|
|
13
17
|
];
|
|
14
|
-
sequence = () => G.zeroOrMore(this.
|
|
15
|
-
|
|
18
|
+
sequence = () => G.cached(G.zeroOrMore(this.sequenceElement));
|
|
19
|
+
sequenceElement = () => G.anyOf(this.anchor, this.lookaround, this.quantifiedExpression, this.quantifiableExpression);
|
|
16
20
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
17
|
-
//
|
|
21
|
+
// Quantifiable expression
|
|
18
22
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
+
quantifiableExpression = () => G.cached(G.anyOf(this.group, this.backReference, this.singleCharExpression));
|
|
24
|
+
quantifiedExpression = () => [
|
|
25
|
+
this.quantifiableExpression,
|
|
26
|
+
this.quantifier,
|
|
23
27
|
];
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
'
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
28
|
+
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
29
|
+
// Quantifier expressions
|
|
30
|
+
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
31
|
+
starQuantifier = () => [
|
|
32
|
+
'*',
|
|
33
|
+
G.possibly(this.nongreedyQuantifier)
|
|
34
|
+
];
|
|
35
|
+
plusQuantifier = () => [
|
|
36
|
+
'+',
|
|
37
|
+
G.possibly(this.nongreedyQuantifier)
|
|
38
|
+
];
|
|
39
|
+
optionalQuantifier = () => [
|
|
40
|
+
'?',
|
|
41
|
+
G.possibly(this.nongreedyQuantifier)
|
|
42
|
+
];
|
|
43
|
+
exactCountQuantifier = () => [
|
|
44
|
+
G.pattern([
|
|
45
|
+
'{',
|
|
46
|
+
R.captureAs('count', R.oneOrMore(digit)),
|
|
47
|
+
'}',
|
|
48
|
+
]),
|
|
49
|
+
G.possibly(this.nongreedyQuantifier)
|
|
50
|
+
];
|
|
51
|
+
countRangeQuantifier = () => [
|
|
52
|
+
G.pattern([
|
|
53
|
+
'{',
|
|
54
|
+
R.captureAs('start', R.oneOrMore(digit)),
|
|
55
|
+
',',
|
|
56
|
+
R.possibly(R.captureAs('end', R.oneOrMore(digit))),
|
|
57
|
+
'}',
|
|
58
|
+
]),
|
|
59
|
+
G.possibly(this.nongreedyQuantifier)
|
|
60
|
+
];
|
|
61
|
+
nongreedyQuantifier = () => '?';
|
|
62
|
+
quantifier = () => G.anyOf(this.starQuantifier, this.plusQuantifier, this.optionalQuantifier, this.exactCountQuantifier, this.countRangeQuantifier);
|
|
36
63
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
37
64
|
// Group expressions
|
|
38
65
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
39
|
-
group = () => G.anyOf(this.uncapturedGroup, this.namedCaptureGroup, this.unnamedCaptureGroup);
|
|
40
66
|
uncapturedGroup = () => [
|
|
41
67
|
'(?:',
|
|
42
|
-
this.
|
|
68
|
+
this.disjunctionOrSequence,
|
|
43
69
|
')',
|
|
44
70
|
];
|
|
45
71
|
namedCaptureGroup = () => [
|
|
46
72
|
'(?<',
|
|
47
73
|
G.pattern(R.captureAs('name', R.oneOrMore(identifierChar))),
|
|
48
74
|
'>',
|
|
49
|
-
this.
|
|
75
|
+
this.disjunctionOrSequence,
|
|
50
76
|
')',
|
|
51
77
|
];
|
|
52
78
|
unnamedCaptureGroup = () => [
|
|
53
79
|
'(',
|
|
54
|
-
this.
|
|
80
|
+
this.disjunctionOrSequence,
|
|
55
81
|
')',
|
|
56
82
|
];
|
|
83
|
+
group = () => G.anyOf(this.uncapturedGroup, this.namedCaptureGroup, this.unnamedCaptureGroup);
|
|
57
84
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
58
85
|
// Backreferences
|
|
59
86
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
@@ -66,48 +93,47 @@ export class RegExpGrammar {
|
|
|
66
93
|
R.captureAs('name', R.oneOrMore(identifierChar)),
|
|
67
94
|
'>',
|
|
68
95
|
]);
|
|
69
|
-
backReference = G.anyOf(this.unnamedBackreference, this.namedBackreference);
|
|
96
|
+
backReference = () => G.anyOf(this.unnamedBackreference, this.namedBackreference);
|
|
70
97
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
71
98
|
// Lookahead and lookbehind expressions
|
|
72
99
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
73
100
|
positiveLookahead = () => [
|
|
74
101
|
'(?=',
|
|
75
|
-
this.
|
|
102
|
+
this.disjunctionOrSequence,
|
|
76
103
|
')',
|
|
77
104
|
];
|
|
78
105
|
negativeLookahead = () => [
|
|
79
106
|
'(?!',
|
|
80
|
-
this.
|
|
107
|
+
this.disjunctionOrSequence,
|
|
81
108
|
')',
|
|
82
109
|
];
|
|
83
110
|
positiveLookbehind = () => [
|
|
84
111
|
'(?<=',
|
|
85
|
-
this.
|
|
112
|
+
this.disjunctionOrSequence,
|
|
86
113
|
')',
|
|
87
114
|
];
|
|
88
115
|
negativeLookbehind = () => [
|
|
89
116
|
'(?<!',
|
|
90
|
-
this.
|
|
117
|
+
this.disjunctionOrSequence,
|
|
91
118
|
')',
|
|
92
119
|
];
|
|
93
|
-
lookaround = G.anyOf(this.positiveLookahead, this.negativeLookahead, this.positiveLookbehind, this.negativeLookbehind);
|
|
120
|
+
lookaround = () => G.anyOf(this.positiveLookahead, this.negativeLookahead, this.positiveLookbehind, this.negativeLookbehind);
|
|
94
121
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
95
122
|
// Single character expressions
|
|
96
123
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
97
124
|
singleCharExpression = () => G.anyOf(this.anyCharWildcard, this.charClass, this.unicodeProperty, this.notUnicodeProperty, this.escapedCharacterClass, this.charcodeOrEscapedChar, this.unreservedCharLiteral);
|
|
98
|
-
unreservedCharLiteral = () => G.pattern(R.notAnyOfChars('[', '.', '*', '+', '?', '^', '$', '{', '}', '(', ')', '|', ']', '\\'));
|
|
125
|
+
unreservedCharLiteral = () => G.pattern(R.captureAs('char', R.notAnyOfChars('[', '.', '*', '+', '?', '^', '$', '{', '}', '(', ')', '|', ']', '\\')));
|
|
99
126
|
escapedCharLiteral = () => G.pattern([
|
|
100
127
|
'\\',
|
|
101
|
-
R.anyChar
|
|
128
|
+
R.captureAs('char', R.anyChar)
|
|
102
129
|
]);
|
|
103
130
|
hexCharcode = () => G.pattern([
|
|
104
131
|
'\\x',
|
|
105
|
-
hexDigit
|
|
106
|
-
hexDigit
|
|
132
|
+
R.captureAs('value', R.repeated(2, hexDigit))
|
|
107
133
|
]);
|
|
108
134
|
controlCharcode = () => G.pattern([
|
|
109
135
|
'\\c',
|
|
110
|
-
R.anyOf(R.charRange('A', 'Z'), R.charRange('a', 'z'))
|
|
136
|
+
R.captureAs('value', R.anyOf(R.charRange('A', 'Z'), R.charRange('a', 'z')))
|
|
111
137
|
]);
|
|
112
138
|
nullCharcode = () => G.pattern('\\0');
|
|
113
139
|
codepoint = () => G.anyOf(G.pattern([
|
|
@@ -117,10 +143,7 @@ export class RegExpGrammar {
|
|
|
117
143
|
'}',
|
|
118
144
|
]), G.pattern([
|
|
119
145
|
'\\u',
|
|
120
|
-
hexDigit
|
|
121
|
-
hexDigit,
|
|
122
|
-
hexDigit,
|
|
123
|
-
hexDigit
|
|
146
|
+
R.captureAs('value', R.repeated(4, hexDigit))
|
|
124
147
|
]));
|
|
125
148
|
codepointRange = () => G.pattern([
|
|
126
149
|
'\\u',
|
|
@@ -130,15 +153,15 @@ export class RegExpGrammar {
|
|
|
130
153
|
R.captureAs('end', R.oneOrMore(hexDigit)),
|
|
131
154
|
'}',
|
|
132
155
|
]);
|
|
133
|
-
unicodeProperty = () =>
|
|
156
|
+
unicodeProperty = () => [
|
|
134
157
|
'\\p',
|
|
135
158
|
this.unicodePropertyBodyPattern,
|
|
136
|
-
]
|
|
137
|
-
notUnicodeProperty = () =>
|
|
159
|
+
];
|
|
160
|
+
notUnicodeProperty = () => [
|
|
138
161
|
'\\P',
|
|
139
162
|
this.unicodePropertyBodyPattern,
|
|
140
|
-
]
|
|
141
|
-
unicodePropertyBodyPattern = [
|
|
163
|
+
];
|
|
164
|
+
unicodePropertyBodyPattern = () => G.pattern([
|
|
142
165
|
'{',
|
|
143
166
|
R.captureAs('property', R.oneOrMore(R.anyOf(letter, digit, '_', '-'))),
|
|
144
167
|
R.possibly([
|
|
@@ -146,40 +169,44 @@ export class RegExpGrammar {
|
|
|
146
169
|
R.captureAs('value', R.oneOrMore(R.anyOf(letter, digit, '_', '-'))),
|
|
147
170
|
]),
|
|
148
171
|
'}',
|
|
149
|
-
];
|
|
150
|
-
charClassChar = () => G.pattern(R.notAnyOfChars(']'));
|
|
172
|
+
]);
|
|
151
173
|
charClass = () => [
|
|
152
174
|
'[',
|
|
153
175
|
G.possibly(this.charClassNegator),
|
|
154
|
-
G.oneOrMore(G.anyOf(this.charRange, this.codepointRange, this.unicodeProperty, this.notUnicodeProperty, this.escapedCharacterClass, this.charcodeOrEscapedChar, this.
|
|
176
|
+
G.oneOrMore(G.anyOf(this.charRange, this.codepointRange, this.unicodeProperty, this.notUnicodeProperty, this.escapedCharacterClass, this.charcodeOrEscapedChar, this.charClassLiteral)),
|
|
155
177
|
']',
|
|
156
178
|
];
|
|
157
|
-
charcodeOrEscapedChar = G.anyOf(this.codepoint, this.hexCharcode, this.controlCharcode, this.escapedCharLiteral);
|
|
158
|
-
|
|
179
|
+
charcodeOrEscapedChar = () => G.anyOf(this.codepoint, this.hexCharcode, this.controlCharcode, this.nullCharcode, this.escapedCharLiteral);
|
|
180
|
+
charClassLiteral = () => G.pattern(R.captureAs('char', R.notAnyOfChars(']')));
|
|
181
|
+
charRangeElement = () => G.anyOf(this.charcodeOrEscapedChar, this.charClassLiteral);
|
|
182
|
+
charRangeStart = () => this.charRangeElement;
|
|
183
|
+
charRangeEnd = () => this.charRangeElement;
|
|
159
184
|
charRange = () => [
|
|
160
|
-
this.
|
|
185
|
+
this.charRangeStart,
|
|
161
186
|
'-',
|
|
162
|
-
this.
|
|
187
|
+
this.charRangeEnd,
|
|
163
188
|
];
|
|
164
189
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
165
190
|
// Special symbols
|
|
166
191
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
167
|
-
starQuantifier = () => '*';
|
|
168
|
-
plusQuantifier = () => '+';
|
|
169
|
-
nongreedyQuantifier = () => '?';
|
|
170
192
|
charClassNegator = () => '^';
|
|
171
193
|
inputStartAnchor = () => '^';
|
|
172
194
|
inputEndAnchor = () => '$';
|
|
173
195
|
anyCharWildcard = () => '.';
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
escapedCharacterClass = () => G.pattern(R.anyOf(R.captureAs('whitespace', escapedCharString.whitespace), R.captureAs('nonWhitespace', escapedCharString.nonWhitespace), R.captureAs('digit', escapedCharString.digit), R.captureAs('nonDigit', escapedCharString.nonDigit), R.captureAs('word', escapedCharString.word), R.captureAs('nonWord', escapedCharString.nonWord), R.captureAs('wordBoundary', escapedCharString.wordBoundary), R.captureAs('nonWordBoundary', escapedCharString.nonWordBoundary), R.captureAs('formFeed', escapedCharString.formFeed), R.captureAs('carriageReturn', escapedCharString.carriageReturn), R.captureAs('lineFeed', escapedCharString.lineFeed), R.captureAs('tab', escapedCharString.tab), R.captureAs('verticalTab', escapedCharString.verticalTab), R.captureAs('backwardSlash', escapedCharString.backwardSlash)));
|
|
196
|
+
anchor = () => G.anyOf(this.inputStartAnchor, this.inputEndAnchor);
|
|
197
|
+
escapedCharacterClass = () => G.pattern(R.anyOf(R.captureAs('whitespace', escapedChars.whitespace), R.captureAs('nonWhitespace', escapedChars.nonWhitespace), R.captureAs('digit', escapedChars.digit), R.captureAs('nonDigit', escapedChars.nonDigit), R.captureAs('word', escapedChars.word), R.captureAs('nonWord', escapedChars.nonWord), R.captureAs('wordBoundary', escapedChars.wordBoundary), R.captureAs('nonWordBoundary', escapedChars.nonWordBoundary), R.captureAs('formFeed', escapedChars.formFeed), R.captureAs('carriageReturn', escapedChars.carriageReturn), R.captureAs('lineFeed', escapedChars.lineFeed), R.captureAs('tab', escapedChars.tab), R.captureAs('verticalTab', escapedChars.verticalTab), R.captureAs('backwardSlash', escapedChars.backwardSlash)));
|
|
177
198
|
}
|
|
199
|
+
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
200
|
+
// Shared regular expressions
|
|
201
|
+
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
178
202
|
const digit = R.charRange('0', '9');
|
|
179
203
|
const letter = R.anyOf(R.charRange('a', 'z'), R.charRange('A', 'Z'));
|
|
180
204
|
const hexDigit = R.anyOf(digit, R.charRange('a', 'f'), R.charRange('A', 'F'));
|
|
181
205
|
const identifierChar = R.anyOf(letter, digit, '_', '$');
|
|
182
|
-
|
|
206
|
+
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
207
|
+
// Escaped characters lookup
|
|
208
|
+
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
209
|
+
const escapedChars = {
|
|
183
210
|
whitespace: '\\s',
|
|
184
211
|
nonWhitespace: '\\S',
|
|
185
212
|
digit: '\\d',
|
|
@@ -195,4 +222,21 @@ const escapedCharString = {
|
|
|
195
222
|
verticalTab: '\\v',
|
|
196
223
|
backwardSlash: '\\\\'
|
|
197
224
|
};
|
|
225
|
+
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
226
|
+
// Wrapped nonterminal names
|
|
227
|
+
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
228
|
+
export const regExpGrammarUnwrappedNonterminalNames = [
|
|
229
|
+
'disjunctionOrSequence',
|
|
230
|
+
'group',
|
|
231
|
+
'backReference',
|
|
232
|
+
'lookaround',
|
|
233
|
+
'unicodeProperty',
|
|
234
|
+
'notUnicodeProperty',
|
|
235
|
+
'unicodePropertyBodyPattern',
|
|
236
|
+
'charcodeOrEscapedChar',
|
|
237
|
+
'charRangeElement',
|
|
238
|
+
'anchor',
|
|
239
|
+
'quantifiableExpression',
|
|
240
|
+
'sequenceElement',
|
|
241
|
+
];
|
|
198
242
|
//# sourceMappingURL=RegExpGrammar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegExpGrammar.js","sourceRoot":"","sources":["../../../src/tests/test-grammars/RegExpGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,0BAA0B,CAAA;AAC7C,OAAO,KAAK,CAAC,MAAM,iBAAiB,CAAA;AAEpC,MAAM,OAAO,aAAa;IACzB,8FAA8F;IAC9F,yBAAyB;IACzB,8FAA8F;IAC9F,
|
|
1
|
+
{"version":3,"file":"RegExpGrammar.js","sourceRoot":"","sources":["../../../src/tests/test-grammars/RegExpGrammar.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SimpleTestGrammar1.d.ts","sourceRoot":"","sources":["../../../src/tests/test-grammars/SimpleTestGrammar1.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,0BAA0B,CAAA;AAE7C,qBAAa,kBAAkB;IAC9B,IAAI,mBAKH;CACD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SimpleTestGrammar1.js","sourceRoot":"","sources":["../../../src/tests/test-grammars/SimpleTestGrammar1.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,0BAA0B,CAAA;AAE7C,MAAM,OAAO,kBAAkB;IAC9B,IAAI,GAAG,GAAG,EAAE,CAAC;QACZ,CAAC,CAAC,KAAK,CACN,KAAK,EACL,SAAS,CACT;KACD,CAAA;CACD"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import * as G from '../../exports/Exports.js';
|
|
2
2
|
export declare class XmlGrammar {
|
|
3
3
|
document: () => G.Repetition[];
|
|
4
|
-
textFragment: G.PatternTerminal;
|
|
5
|
-
openingTag: () => (G.
|
|
6
|
-
openingTagStart: G.PatternTerminal;
|
|
7
|
-
tagEnd: G.PatternTerminal;
|
|
8
|
-
attribute: G.PatternTerminal;
|
|
9
|
-
closingTag: G.PatternTerminal;
|
|
10
|
-
declarationTag: () => (G.
|
|
11
|
-
declarationTagOpening: G.PatternTerminal;
|
|
12
|
-
declarationTagAttribute: G.PatternTerminal;
|
|
13
|
-
comment: G.PatternTerminal;
|
|
4
|
+
textFragment: () => G.PatternTerminal;
|
|
5
|
+
openingTag: () => (G.Repetition | (() => G.PatternTerminal))[];
|
|
6
|
+
openingTagStart: () => G.PatternTerminal;
|
|
7
|
+
tagEnd: () => G.PatternTerminal;
|
|
8
|
+
attribute: () => G.PatternTerminal;
|
|
9
|
+
closingTag: () => G.PatternTerminal;
|
|
10
|
+
declarationTag: () => (G.Repetition | (() => G.PatternTerminal))[];
|
|
11
|
+
declarationTagOpening: () => G.PatternTerminal;
|
|
12
|
+
declarationTagAttribute: () => G.PatternTerminal;
|
|
13
|
+
comment: () => G.PatternTerminal;
|
|
14
14
|
}
|
|
15
|
+
export declare const xmlGrammarUnwrappedNonterminalNames: G.GrammarNonterminalNames<XmlGrammar>;
|
|
15
16
|
//# sourceMappingURL=XmlGrammar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XmlGrammar.d.ts","sourceRoot":"","sources":["../../../src/tests/test-grammars/XmlGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,0BAA0B,CAAA;AAG7C,qBAAa,UAAU;IACtB,QAAQ,uBAUP;IAED,YAAY,
|
|
1
|
+
{"version":3,"file":"XmlGrammar.d.ts","sourceRoot":"","sources":["../../../src/tests/test-grammars/XmlGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,0BAA0B,CAAA;AAG7C,qBAAa,UAAU;IACtB,QAAQ,uBAUP;IAED,YAAY,0BAEV;IAEF,UAAU,qDAMT;IAED,eAAe,0BAUb;IAEF,MAAM,0BAMJ;IAEF,SAAS,0BAkBP;IAEF,UAAU,0BAYR;IAEF,cAAc,qDAMb;IAED,qBAAqB,0BAQnB;IAEF,uBAAuB,0BAYrB;IAEF,OAAO,0BAQL;CACF;AAyBD,eAAO,MAAM,mCAAmC,EAAE,CAAC,CAAC,uBAAuB,CAAC,UAAU,CAIrF,CAAA"}
|
|
@@ -4,7 +4,7 @@ export class XmlGrammar {
|
|
|
4
4
|
document = () => [
|
|
5
5
|
G.zeroOrMore(G.anyOf(this.textFragment, this.openingTag, this.closingTag, this.comment, this.declarationTag))
|
|
6
6
|
];
|
|
7
|
-
textFragment = G.pattern([
|
|
7
|
+
textFragment = () => G.pattern([
|
|
8
8
|
R.oneOrMore(R.notAnyOfChars('<'))
|
|
9
9
|
]);
|
|
10
10
|
openingTag = () => [
|
|
@@ -12,18 +12,18 @@ export class XmlGrammar {
|
|
|
12
12
|
G.zeroOrMore(this.attribute),
|
|
13
13
|
this.tagEnd
|
|
14
14
|
];
|
|
15
|
-
openingTagStart = G.pattern([
|
|
15
|
+
openingTagStart = () => G.pattern([
|
|
16
16
|
'<',
|
|
17
17
|
R.possibly('?'),
|
|
18
18
|
R.captureAs('tagName', R.oneOrMore(R.notAnyOfChars(R.whitespace, '"', "'", '?', '!', '/', '>'))),
|
|
19
19
|
R.zeroOrMore(R.whitespace),
|
|
20
20
|
]);
|
|
21
|
-
tagEnd = G.pattern([
|
|
21
|
+
tagEnd = () => G.pattern([
|
|
22
22
|
R.zeroOrMore(R.whitespace),
|
|
23
23
|
R.possibly(R.anyOf('/', '?')),
|
|
24
24
|
'>'
|
|
25
25
|
]);
|
|
26
|
-
attribute = G.pattern([
|
|
26
|
+
attribute = () => G.pattern([
|
|
27
27
|
R.zeroOrMore(R.whitespace),
|
|
28
28
|
R.captureAs('attributeName', R.oneOrMore(R.notAnyOfChars(R.whitespace, '=', '"', "'", '?', '/', '>'))),
|
|
29
29
|
R.zeroOrMore(R.whitespace),
|
|
@@ -34,7 +34,7 @@ export class XmlGrammar {
|
|
|
34
34
|
R.zeroOrMore(R.whitespace),
|
|
35
35
|
])
|
|
36
36
|
]);
|
|
37
|
-
closingTag = G.pattern([
|
|
37
|
+
closingTag = () => G.pattern([
|
|
38
38
|
'</',
|
|
39
39
|
R.zeroOrMore(R.whitespace),
|
|
40
40
|
R.captureAs('tagName', R.oneOrMore(R.notAnyOfChars(R.whitespace, '/', '>'))),
|
|
@@ -46,22 +46,25 @@ export class XmlGrammar {
|
|
|
46
46
|
G.zeroOrMore(this.declarationTagAttribute),
|
|
47
47
|
this.tagEnd
|
|
48
48
|
];
|
|
49
|
-
declarationTagOpening = G.pattern([
|
|
49
|
+
declarationTagOpening = () => G.pattern([
|
|
50
50
|
'<!',
|
|
51
51
|
R.captureAs('tagName', R.oneOrMore(R.notAnyOfChars(R.whitespace, '"', "'", '/', '>'))),
|
|
52
52
|
R.zeroOrMore(R.whitespace)
|
|
53
53
|
]);
|
|
54
|
-
declarationTagAttribute = G.pattern([
|
|
54
|
+
declarationTagAttribute = () => G.pattern([
|
|
55
55
|
R.zeroOrMore(R.whitespace),
|
|
56
56
|
R.anyOf(R.captureAs('attributeName', R.oneOrMore(R.notAnyOfChars(R.whitespace, '"', "'", '/', '!', '?', '>'))), quotedString),
|
|
57
57
|
R.zeroOrMore(R.whitespace),
|
|
58
58
|
]);
|
|
59
|
-
comment = G.pattern([
|
|
59
|
+
comment = () => G.pattern([
|
|
60
60
|
'<!--',
|
|
61
61
|
R.captureAs('commentBody', R.zeroOrMoreNonGreedy(R.anyChar)),
|
|
62
62
|
'-->'
|
|
63
63
|
]);
|
|
64
64
|
}
|
|
65
|
+
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
66
|
+
// Helper regular expressions
|
|
67
|
+
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
65
68
|
const quotedString = R.anyOf([
|
|
66
69
|
'"',
|
|
67
70
|
R.captureAs('doubleQuotedStringContent', R.zeroOrMore(R.notAnyOfChars('"'))),
|
|
@@ -71,4 +74,12 @@ const quotedString = R.anyOf([
|
|
|
71
74
|
R.captureAs('singleQuotedStringContent', R.zeroOrMore(R.notAnyOfChars("'"))),
|
|
72
75
|
"'"
|
|
73
76
|
]);
|
|
77
|
+
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
78
|
+
// Wrapped nonterminal names
|
|
79
|
+
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
80
|
+
export const xmlGrammarUnwrappedNonterminalNames = [
|
|
81
|
+
'openingTagStart',
|
|
82
|
+
'tagEnd',
|
|
83
|
+
'declarationTagOpening',
|
|
84
|
+
];
|
|
74
85
|
//# sourceMappingURL=XmlGrammar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XmlGrammar.js","sourceRoot":"","sources":["../../../src/tests/test-grammars/XmlGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,0BAA0B,CAAA;AAC7C,OAAO,KAAK,CAAC,MAAM,iBAAiB,CAAA;AAEpC,MAAM,OAAO,UAAU;IACtB,QAAQ,GAAG,GAAG,EAAE,CAAC;QAChB,CAAC,CAAC,UAAU,CACX,CAAC,CAAC,KAAK,CACN,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,cAAc,CACnB,CACD;KACD,CAAA;IAED,YAAY,GAAG,CAAC,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"XmlGrammar.js","sourceRoot":"","sources":["../../../src/tests/test-grammars/XmlGrammar.ts"],"names":[],"mappings":"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"}
|