@malloydata/malloy-tag 0.0.237-dev250225144145
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 +0 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +38 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/Malloy/MalloyTagLexer.d.ts +42 -0
- package/dist/lib/Malloy/MalloyTagLexer.js +385 -0
- package/dist/lib/Malloy/MalloyTagLexer.js.map +1 -0
- package/dist/lib/Malloy/MalloyTagParser.d.ts +180 -0
- package/dist/lib/Malloy/MalloyTagParser.js +1051 -0
- package/dist/lib/Malloy/MalloyTagParser.js.map +1 -0
- package/dist/lib/Malloy/MalloyTagVisitor.d.ts +120 -0
- package/dist/lib/Malloy/MalloyTagVisitor.js +4 -0
- package/dist/lib/Malloy/MalloyTagVisitor.js.map +1 -0
- package/dist/tags.d.ts +90 -0
- package/dist/tags.js +654 -0
- package/dist/tags.js.map +1 -0
- package/dist/tags.spec.d.ts +8 -0
- package/dist/tags.spec.js +318 -0
- package/dist/tags.spec.js.map +1 -0
- package/dist/util.d.ts +11 -0
- package/dist/util.js +84 -0
- package/dist/util.js.map +1 -0
- package/dist/util.spec.d.ts +1 -0
- package/dist/util.spec.js +43 -0
- package/dist/util.spec.js.map +1 -0
- package/package.json +30 -0
- package/scripts/build_parser.js +98 -0
- package/src/MalloyTag.g4 +102 -0
- package/src/index.ts +8 -0
- package/src/lib/Malloy/MalloyTag.interp +61 -0
- package/src/lib/Malloy/MalloyTag.tokens +32 -0
- package/src/lib/Malloy/MalloyTagLexer.interp +85 -0
- package/src/lib/Malloy/MalloyTagLexer.tokens +32 -0
- package/src/lib/Malloy/MalloyTagLexer.ts +386 -0
- package/src/lib/Malloy/MalloyTagParser.ts +1048 -0
- package/src/lib/Malloy/MalloyTagVisitor.ts +141 -0
- package/src/lib/Malloy/_BUILD_DIGEST_ +1 -0
- package/src/tags.spec.ts +331 -0
- package/src/tags.ts +761 -0
- package/src/util.spec.ts +43 -0
- package/src/util.ts +73 -0
- package/tsconfig.json +11 -0
package/src/MalloyTag.g4
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Google LLC
|
|
3
|
+
*
|
|
4
|
+
* Permission is hereby granted, free of charge, to any person obtaining
|
|
5
|
+
* a copy of this software and associated documentation files
|
|
6
|
+
* (the "Software"), to deal in the Software without restriction,
|
|
7
|
+
* including without limitation the rights to use, copy, modify, merge,
|
|
8
|
+
* publish, distribute, sublicense, and/or sell copies of the Software,
|
|
9
|
+
* and to permit persons to whom the Software is furnished to do so,
|
|
10
|
+
* subject to the following conditions:
|
|
11
|
+
*
|
|
12
|
+
* The above copyright notice and this permission notice shall be
|
|
13
|
+
* included in all copies or substantial portions of the Software.
|
|
14
|
+
*
|
|
15
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
16
|
+
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
17
|
+
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
18
|
+
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
19
|
+
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
20
|
+
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
21
|
+
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
|
+
*/
|
|
23
|
+
grammar MalloyTag;
|
|
24
|
+
|
|
25
|
+
tagLine: tagSpec* EOF;
|
|
26
|
+
|
|
27
|
+
tagSpec
|
|
28
|
+
: propName EQ eqValue properties? # tagEq
|
|
29
|
+
| propName EQ DOTTY? properties # tagReplaceProperties
|
|
30
|
+
| propName properties # tagUpdateProperties
|
|
31
|
+
| MINUS? propName # tagDef
|
|
32
|
+
| MINUS_DOTTY # tagEmpty
|
|
33
|
+
;
|
|
34
|
+
|
|
35
|
+
string
|
|
36
|
+
: SQ_STRING
|
|
37
|
+
| DQ_STRING
|
|
38
|
+
| BARE_STRING
|
|
39
|
+
| NUMERIC_LITERAL
|
|
40
|
+
;
|
|
41
|
+
|
|
42
|
+
identifier
|
|
43
|
+
: BQ_STRING
|
|
44
|
+
| BARE_STRING
|
|
45
|
+
;
|
|
46
|
+
|
|
47
|
+
propName: identifier (DOT identifier)*;
|
|
48
|
+
|
|
49
|
+
eqValue
|
|
50
|
+
: string
|
|
51
|
+
| arrayValue
|
|
52
|
+
| reference
|
|
53
|
+
;
|
|
54
|
+
|
|
55
|
+
arrayElement
|
|
56
|
+
: string properties?
|
|
57
|
+
| properties
|
|
58
|
+
| arrayValue
|
|
59
|
+
| reference
|
|
60
|
+
;
|
|
61
|
+
|
|
62
|
+
reference: RF_BEG propName RF_END;
|
|
63
|
+
|
|
64
|
+
arrayValue: AR_BEG arrayElement (COMMA arrayElement)* COMMA? AR_END;
|
|
65
|
+
properties: PR_BEG (DOTTY | (tagSpec*)) PR_END;
|
|
66
|
+
|
|
67
|
+
MINUS_DOTTY: '-...';
|
|
68
|
+
DOTTY: '...';
|
|
69
|
+
DOT: '.';
|
|
70
|
+
MINUS: '-';
|
|
71
|
+
EQ: '=';
|
|
72
|
+
RF_BEG: '$(';
|
|
73
|
+
RF_END: ')';
|
|
74
|
+
PR_BEG: '{';
|
|
75
|
+
PR_END: '}';
|
|
76
|
+
AR_BEG: '[';
|
|
77
|
+
COMMA: ',';
|
|
78
|
+
AR_END: ']';
|
|
79
|
+
|
|
80
|
+
fragment ID_CHAR: [\p{Alphabetic}_] ;
|
|
81
|
+
fragment DIGIT: [0-9];
|
|
82
|
+
fragment HEX: [0-9a-fA-F];
|
|
83
|
+
fragment UNICODE: '\\u' HEX HEX HEX HEX;
|
|
84
|
+
fragment SAFE_NON_QUOTE: ~ ['"`\\\u0000-\u001F];
|
|
85
|
+
fragment ESCAPED: '\\' .;
|
|
86
|
+
SQ_STRING: '\'' (UNICODE | ESCAPED | SAFE_NON_QUOTE | ["`])* '\'';
|
|
87
|
+
DQ_STRING: '"' (UNICODE | ESCAPED | SAFE_NON_QUOTE | ['`])* '"';
|
|
88
|
+
BQ_STRING: '`' (UNICODE | ESCAPED | SAFE_NON_QUOTE | ['"])* '`';
|
|
89
|
+
fragment INTEGER_LITERAL: MINUS? DIGIT+;
|
|
90
|
+
fragment EXPONENT: [Ee] [+-]? DIGIT+;
|
|
91
|
+
NUMERIC_LITERAL
|
|
92
|
+
: INTEGER_LITERAL? DOT DIGIT+ EXPONENT?
|
|
93
|
+
| INTEGER_LITERAL EXPONENT?
|
|
94
|
+
;
|
|
95
|
+
|
|
96
|
+
BARE_STRING: (DIGIT | ID_CHAR)+;
|
|
97
|
+
|
|
98
|
+
// mtoy todo understand why the ? needs to be here
|
|
99
|
+
COMMENT: '#' .*? EOF -> skip;
|
|
100
|
+
WHITE_SPACE: [ \u000B\t\r\n]+ -> skip;
|
|
101
|
+
|
|
102
|
+
UNEXPECTED_CHAR: .;
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
token literal names:
|
|
2
|
+
null
|
|
3
|
+
'-...'
|
|
4
|
+
'...'
|
|
5
|
+
'.'
|
|
6
|
+
'-'
|
|
7
|
+
'='
|
|
8
|
+
'$('
|
|
9
|
+
')'
|
|
10
|
+
'{'
|
|
11
|
+
'}'
|
|
12
|
+
'['
|
|
13
|
+
','
|
|
14
|
+
']'
|
|
15
|
+
null
|
|
16
|
+
null
|
|
17
|
+
null
|
|
18
|
+
null
|
|
19
|
+
null
|
|
20
|
+
null
|
|
21
|
+
null
|
|
22
|
+
null
|
|
23
|
+
|
|
24
|
+
token symbolic names:
|
|
25
|
+
null
|
|
26
|
+
MINUS_DOTTY
|
|
27
|
+
DOTTY
|
|
28
|
+
DOT
|
|
29
|
+
MINUS
|
|
30
|
+
EQ
|
|
31
|
+
RF_BEG
|
|
32
|
+
RF_END
|
|
33
|
+
PR_BEG
|
|
34
|
+
PR_END
|
|
35
|
+
AR_BEG
|
|
36
|
+
COMMA
|
|
37
|
+
AR_END
|
|
38
|
+
SQ_STRING
|
|
39
|
+
DQ_STRING
|
|
40
|
+
BQ_STRING
|
|
41
|
+
NUMERIC_LITERAL
|
|
42
|
+
BARE_STRING
|
|
43
|
+
COMMENT
|
|
44
|
+
WHITE_SPACE
|
|
45
|
+
UNEXPECTED_CHAR
|
|
46
|
+
|
|
47
|
+
rule names:
|
|
48
|
+
tagLine
|
|
49
|
+
tagSpec
|
|
50
|
+
string
|
|
51
|
+
identifier
|
|
52
|
+
propName
|
|
53
|
+
eqValue
|
|
54
|
+
arrayElement
|
|
55
|
+
reference
|
|
56
|
+
arrayValue
|
|
57
|
+
properties
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
atn:
|
|
61
|
+
[3, 51485, 51898, 1421, 44986, 20307, 1543, 60043, 49729, 3, 22, 110, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 3, 2, 7, 2, 24, 10, 2, 12, 2, 14, 2, 27, 11, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 35, 10, 3, 3, 3, 3, 3, 3, 3, 5, 3, 40, 10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 48, 10, 3, 3, 3, 3, 3, 5, 3, 52, 10, 3, 3, 4, 3, 4, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 7, 6, 61, 10, 6, 12, 6, 14, 6, 64, 11, 6, 3, 7, 3, 7, 3, 7, 5, 7, 69, 10, 7, 3, 8, 3, 8, 5, 8, 73, 10, 8, 3, 8, 3, 8, 3, 8, 5, 8, 78, 10, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 7, 10, 88, 10, 10, 12, 10, 14, 10, 91, 11, 10, 3, 10, 5, 10, 94, 10, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 7, 11, 101, 10, 11, 12, 11, 14, 11, 104, 11, 11, 5, 11, 106, 10, 11, 3, 11, 3, 11, 3, 11, 2, 2, 2, 12, 2, 2, 4, 2, 6, 2, 8, 2, 10, 2, 12, 2, 14, 2, 16, 2, 18, 2, 20, 2, 2, 4, 4, 2, 15, 16, 18, 19, 4, 2, 17, 17, 19, 19, 2, 118, 2, 25, 3, 2, 2, 2, 4, 51, 3, 2, 2, 2, 6, 53, 3, 2, 2, 2, 8, 55, 3, 2, 2, 2, 10, 57, 3, 2, 2, 2, 12, 68, 3, 2, 2, 2, 14, 77, 3, 2, 2, 2, 16, 79, 3, 2, 2, 2, 18, 83, 3, 2, 2, 2, 20, 97, 3, 2, 2, 2, 22, 24, 5, 4, 3, 2, 23, 22, 3, 2, 2, 2, 24, 27, 3, 2, 2, 2, 25, 23, 3, 2, 2, 2, 25, 26, 3, 2, 2, 2, 26, 28, 3, 2, 2, 2, 27, 25, 3, 2, 2, 2, 28, 29, 7, 2, 2, 3, 29, 3, 3, 2, 2, 2, 30, 31, 5, 10, 6, 2, 31, 32, 7, 7, 2, 2, 32, 34, 5, 12, 7, 2, 33, 35, 5, 20, 11, 2, 34, 33, 3, 2, 2, 2, 34, 35, 3, 2, 2, 2, 35, 52, 3, 2, 2, 2, 36, 37, 5, 10, 6, 2, 37, 39, 7, 7, 2, 2, 38, 40, 7, 4, 2, 2, 39, 38, 3, 2, 2, 2, 39, 40, 3, 2, 2, 2, 40, 41, 3, 2, 2, 2, 41, 42, 5, 20, 11, 2, 42, 52, 3, 2, 2, 2, 43, 44, 5, 10, 6, 2, 44, 45, 5, 20, 11, 2, 45, 52, 3, 2, 2, 2, 46, 48, 7, 6, 2, 2, 47, 46, 3, 2, 2, 2, 47, 48, 3, 2, 2, 2, 48, 49, 3, 2, 2, 2, 49, 52, 5, 10, 6, 2, 50, 52, 7, 3, 2, 2, 51, 30, 3, 2, 2, 2, 51, 36, 3, 2, 2, 2, 51, 43, 3, 2, 2, 2, 51, 47, 3, 2, 2, 2, 51, 50, 3, 2, 2, 2, 52, 5, 3, 2, 2, 2, 53, 54, 9, 2, 2, 2, 54, 7, 3, 2, 2, 2, 55, 56, 9, 3, 2, 2, 56, 9, 3, 2, 2, 2, 57, 62, 5, 8, 5, 2, 58, 59, 7, 5, 2, 2, 59, 61, 5, 8, 5, 2, 60, 58, 3, 2, 2, 2, 61, 64, 3, 2, 2, 2, 62, 60, 3, 2, 2, 2, 62, 63, 3, 2, 2, 2, 63, 11, 3, 2, 2, 2, 64, 62, 3, 2, 2, 2, 65, 69, 5, 6, 4, 2, 66, 69, 5, 18, 10, 2, 67, 69, 5, 16, 9, 2, 68, 65, 3, 2, 2, 2, 68, 66, 3, 2, 2, 2, 68, 67, 3, 2, 2, 2, 69, 13, 3, 2, 2, 2, 70, 72, 5, 6, 4, 2, 71, 73, 5, 20, 11, 2, 72, 71, 3, 2, 2, 2, 72, 73, 3, 2, 2, 2, 73, 78, 3, 2, 2, 2, 74, 78, 5, 20, 11, 2, 75, 78, 5, 18, 10, 2, 76, 78, 5, 16, 9, 2, 77, 70, 3, 2, 2, 2, 77, 74, 3, 2, 2, 2, 77, 75, 3, 2, 2, 2, 77, 76, 3, 2, 2, 2, 78, 15, 3, 2, 2, 2, 79, 80, 7, 8, 2, 2, 80, 81, 5, 10, 6, 2, 81, 82, 7, 9, 2, 2, 82, 17, 3, 2, 2, 2, 83, 84, 7, 12, 2, 2, 84, 89, 5, 14, 8, 2, 85, 86, 7, 13, 2, 2, 86, 88, 5, 14, 8, 2, 87, 85, 3, 2, 2, 2, 88, 91, 3, 2, 2, 2, 89, 87, 3, 2, 2, 2, 89, 90, 3, 2, 2, 2, 90, 93, 3, 2, 2, 2, 91, 89, 3, 2, 2, 2, 92, 94, 7, 13, 2, 2, 93, 92, 3, 2, 2, 2, 93, 94, 3, 2, 2, 2, 94, 95, 3, 2, 2, 2, 95, 96, 7, 14, 2, 2, 96, 19, 3, 2, 2, 2, 97, 105, 7, 10, 2, 2, 98, 106, 7, 4, 2, 2, 99, 101, 5, 4, 3, 2, 100, 99, 3, 2, 2, 2, 101, 104, 3, 2, 2, 2, 102, 100, 3, 2, 2, 2, 102, 103, 3, 2, 2, 2, 103, 106, 3, 2, 2, 2, 104, 102, 3, 2, 2, 2, 105, 98, 3, 2, 2, 2, 105, 102, 3, 2, 2, 2, 106, 107, 3, 2, 2, 2, 107, 108, 7, 11, 2, 2, 108, 21, 3, 2, 2, 2, 15, 25, 34, 39, 47, 51, 62, 68, 72, 77, 89, 93, 102, 105]
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
MINUS_DOTTY=1
|
|
2
|
+
DOTTY=2
|
|
3
|
+
DOT=3
|
|
4
|
+
MINUS=4
|
|
5
|
+
EQ=5
|
|
6
|
+
RF_BEG=6
|
|
7
|
+
RF_END=7
|
|
8
|
+
PR_BEG=8
|
|
9
|
+
PR_END=9
|
|
10
|
+
AR_BEG=10
|
|
11
|
+
COMMA=11
|
|
12
|
+
AR_END=12
|
|
13
|
+
SQ_STRING=13
|
|
14
|
+
DQ_STRING=14
|
|
15
|
+
BQ_STRING=15
|
|
16
|
+
NUMERIC_LITERAL=16
|
|
17
|
+
BARE_STRING=17
|
|
18
|
+
COMMENT=18
|
|
19
|
+
WHITE_SPACE=19
|
|
20
|
+
UNEXPECTED_CHAR=20
|
|
21
|
+
'-...'=1
|
|
22
|
+
'...'=2
|
|
23
|
+
'.'=3
|
|
24
|
+
'-'=4
|
|
25
|
+
'='=5
|
|
26
|
+
'$('=6
|
|
27
|
+
')'=7
|
|
28
|
+
'{'=8
|
|
29
|
+
'}'=9
|
|
30
|
+
'['=10
|
|
31
|
+
','=11
|
|
32
|
+
']'=12
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
token literal names:
|
|
2
|
+
null
|
|
3
|
+
'-...'
|
|
4
|
+
'...'
|
|
5
|
+
'.'
|
|
6
|
+
'-'
|
|
7
|
+
'='
|
|
8
|
+
'$('
|
|
9
|
+
')'
|
|
10
|
+
'{'
|
|
11
|
+
'}'
|
|
12
|
+
'['
|
|
13
|
+
','
|
|
14
|
+
']'
|
|
15
|
+
null
|
|
16
|
+
null
|
|
17
|
+
null
|
|
18
|
+
null
|
|
19
|
+
null
|
|
20
|
+
null
|
|
21
|
+
null
|
|
22
|
+
null
|
|
23
|
+
|
|
24
|
+
token symbolic names:
|
|
25
|
+
null
|
|
26
|
+
MINUS_DOTTY
|
|
27
|
+
DOTTY
|
|
28
|
+
DOT
|
|
29
|
+
MINUS
|
|
30
|
+
EQ
|
|
31
|
+
RF_BEG
|
|
32
|
+
RF_END
|
|
33
|
+
PR_BEG
|
|
34
|
+
PR_END
|
|
35
|
+
AR_BEG
|
|
36
|
+
COMMA
|
|
37
|
+
AR_END
|
|
38
|
+
SQ_STRING
|
|
39
|
+
DQ_STRING
|
|
40
|
+
BQ_STRING
|
|
41
|
+
NUMERIC_LITERAL
|
|
42
|
+
BARE_STRING
|
|
43
|
+
COMMENT
|
|
44
|
+
WHITE_SPACE
|
|
45
|
+
UNEXPECTED_CHAR
|
|
46
|
+
|
|
47
|
+
rule names:
|
|
48
|
+
MINUS_DOTTY
|
|
49
|
+
DOTTY
|
|
50
|
+
DOT
|
|
51
|
+
MINUS
|
|
52
|
+
EQ
|
|
53
|
+
RF_BEG
|
|
54
|
+
RF_END
|
|
55
|
+
PR_BEG
|
|
56
|
+
PR_END
|
|
57
|
+
AR_BEG
|
|
58
|
+
COMMA
|
|
59
|
+
AR_END
|
|
60
|
+
ID_CHAR
|
|
61
|
+
DIGIT
|
|
62
|
+
HEX
|
|
63
|
+
UNICODE
|
|
64
|
+
SAFE_NON_QUOTE
|
|
65
|
+
ESCAPED
|
|
66
|
+
SQ_STRING
|
|
67
|
+
DQ_STRING
|
|
68
|
+
BQ_STRING
|
|
69
|
+
INTEGER_LITERAL
|
|
70
|
+
EXPONENT
|
|
71
|
+
NUMERIC_LITERAL
|
|
72
|
+
BARE_STRING
|
|
73
|
+
COMMENT
|
|
74
|
+
WHITE_SPACE
|
|
75
|
+
UNEXPECTED_CHAR
|
|
76
|
+
|
|
77
|
+
channel names:
|
|
78
|
+
DEFAULT_TOKEN_CHANNEL
|
|
79
|
+
HIDDEN
|
|
80
|
+
|
|
81
|
+
mode names:
|
|
82
|
+
DEFAULT_MODE
|
|
83
|
+
|
|
84
|
+
atn:
|
|
85
|
+
[3, 51485, 51898, 1421, 44986, 20307, 1543, 60043, 49729, 2, 22, 205, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 5, 3, 5, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 9, 3, 9, 3, 10, 3, 10, 3, 11, 3, 11, 3, 12, 3, 12, 3, 13, 3, 13, 3, 14, 3, 14, 3, 15, 3, 15, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 7, 20, 114, 10, 20, 12, 20, 14, 20, 117, 11, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 7, 21, 126, 10, 21, 12, 21, 14, 21, 129, 11, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 7, 22, 138, 10, 22, 12, 22, 14, 22, 141, 11, 22, 3, 22, 3, 22, 3, 23, 5, 23, 146, 10, 23, 3, 23, 6, 23, 149, 10, 23, 13, 23, 14, 23, 150, 3, 24, 3, 24, 5, 24, 155, 10, 24, 3, 24, 6, 24, 158, 10, 24, 13, 24, 14, 24, 159, 3, 25, 5, 25, 163, 10, 25, 3, 25, 3, 25, 6, 25, 167, 10, 25, 13, 25, 14, 25, 168, 3, 25, 5, 25, 172, 10, 25, 3, 25, 3, 25, 5, 25, 176, 10, 25, 5, 25, 178, 10, 25, 3, 26, 3, 26, 6, 26, 182, 10, 26, 13, 26, 14, 26, 183, 3, 27, 3, 27, 7, 27, 188, 10, 27, 12, 27, 14, 27, 191, 11, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 6, 28, 198, 10, 28, 13, 28, 14, 28, 199, 3, 28, 3, 28, 3, 29, 3, 29, 3, 189, 2, 2, 30, 3, 2, 3, 5, 2, 4, 7, 2, 5, 9, 2, 6, 11, 2, 7, 13, 2, 8, 15, 2, 9, 17, 2, 10, 19, 2, 11, 21, 2, 12, 23, 2, 13, 25, 2, 14, 27, 2, 2, 29, 2, 2, 31, 2, 2, 33, 2, 2, 35, 2, 2, 37, 2, 2, 39, 2, 15, 41, 2, 16, 43, 2, 17, 45, 2, 2, 47, 2, 2, 49, 2, 18, 51, 2, 19, 53, 2, 20, 55, 2, 21, 57, 2, 22, 3, 2, 11, 3, 2, 50, 59, 5, 2, 50, 59, 67, 72, 99, 104, 7, 2, 2, 33, 36, 36, 41, 41, 94, 94, 98, 98, 4, 2, 36, 36, 98, 98, 4, 2, 41, 41, 98, 98, 4, 2, 36, 36, 41, 41, 4, 2, 71, 71, 103, 103, 4, 2, 45, 45, 47, 47, 5, 2, 11, 13, 15, 15, 34, 34, 3, 647, 2, 67, 2, 92, 2, 97, 2, 97, 2, 99, 2, 124, 2, 172, 2, 172, 2, 183, 2, 183, 2, 188, 2, 188, 2, 194, 2, 216, 2, 218, 2, 248, 2, 250, 2, 707, 2, 712, 2, 723, 2, 738, 2, 742, 2, 750, 2, 750, 2, 752, 2, 752, 2, 839, 2, 839, 2, 882, 2, 886, 2, 888, 2, 889, 2, 892, 2, 895, 2, 897, 2, 897, 2, 904, 2, 904, 2, 906, 2, 908, 2, 910, 2, 910, 2, 912, 2, 931, 2, 933, 2, 1015, 2, 1017, 2, 1155, 2, 1164, 2, 1329, 2, 1331, 2, 1368, 2, 1371, 2, 1371, 2, 1379, 2, 1417, 2, 1458, 2, 1471, 2, 1473, 2, 1473, 2, 1475, 2, 1476, 2, 1478, 2, 1479, 2, 1481, 2, 1481, 2, 1490, 2, 1516, 2, 1522, 2, 1524, 2, 1554, 2, 1564, 2, 1570, 2, 1625, 2, 1627, 2, 1633, 2, 1648, 2, 1749, 2, 1751, 2, 1758, 2, 1763, 2, 1770, 2, 1775, 2, 1777, 2, 1788, 2, 1790, 2, 1793, 2, 1793, 2, 1810, 2, 1857, 2, 1871, 2, 1971, 2, 1996, 2, 2028, 2, 2038, 2, 2039, 2, 2044, 2, 2044, 2, 2050, 2, 2073, 2, 2076, 2, 2094, 2, 2114, 2, 2138, 2, 2210, 2, 2230, 2, 2232, 2, 2239, 2, 2262, 2, 2273, 2, 2277, 2, 2283, 2, 2290, 2, 2365, 2, 2367, 2, 2382, 2, 2384, 2, 2386, 2, 2391, 2, 2405, 2, 2419, 2, 2437, 2, 2439, 2, 2446, 2, 2449, 2, 2450, 2, 2453, 2, 2474, 2, 2476, 2, 2482, 2, 2484, 2, 2484, 2, 2488, 2, 2491, 2, 2495, 2, 2502, 2, 2505, 2, 2506, 2, 2509, 2, 2510, 2, 2512, 2, 2512, 2, 2521, 2, 2521, 2, 2526, 2, 2527, 2, 2529, 2, 2533, 2, 2546, 2, 2547, 2, 2563, 2, 2565, 2, 2567, 2, 2572, 2, 2577, 2, 2578, 2, 2581, 2, 2602, 2, 2604, 2, 2610, 2, 2612, 2, 2613, 2, 2615, 2, 2616, 2, 2618, 2, 2619, 2, 2624, 2, 2628, 2, 2633, 2, 2634, 2, 2637, 2, 2638, 2, 2643, 2, 2643, 2, 2651, 2, 2654, 2, 2656, 2, 2656, 2, 2674, 2, 2679, 2, 2691, 2, 2693, 2, 2695, 2, 2703, 2, 2705, 2, 2707, 2, 2709, 2, 2730, 2, 2732, 2, 2738, 2, 2740, 2, 2741, 2, 2743, 2, 2747, 2, 2751, 2, 2759, 2, 2761, 2, 2763, 2, 2765, 2, 2766, 2, 2770, 2, 2770, 2, 2786, 2, 2789, 2, 2811, 2, 2811, 2, 2819, 2, 2821, 2, 2823, 2, 2830, 2, 2833, 2, 2834, 2, 2837, 2, 2858, 2, 2860, 2, 2866, 2, 2868, 2, 2869, 2, 2871, 2, 2875, 2, 2879, 2, 2886, 2, 2889, 2, 2890, 2, 2893, 2, 2894, 2, 2904, 2, 2905, 2, 2910, 2, 2911, 2, 2913, 2, 2917, 2, 2931, 2, 2931, 2, 2948, 2, 2949, 2, 2951, 2, 2956, 2, 2960, 2, 2962, 2, 2964, 2, 2967, 2, 2971, 2, 2972, 2, 2974, 2, 2974, 2, 2976, 2, 2977, 2, 2981, 2, 2982, 2, 2986, 2, 2988, 2, 2992, 2, 3003, 2, 3008, 2, 3012, 2, 3016, 2, 3018, 2, 3020, 2, 3022, 2, 3026, 2, 3026, 2, 3033, 2, 3033, 2, 3074, 2, 3077, 2, 3079, 2, 3086, 2, 3088, 2, 3090, 2, 3092, 2, 3114, 2, 3116, 2, 3131, 2, 3135, 2, 3142, 2, 3144, 2, 3146, 2, 3148, 2, 3150, 2, 3159, 2, 3160, 2, 3162, 2, 3164, 2, 3170, 2, 3173, 2, 3202, 2, 3205, 2, 3207, 2, 3214, 2, 3216, 2, 3218, 2, 3220, 2, 3242, 2, 3244, 2, 3253, 2, 3255, 2, 3259, 2, 3263, 2, 3270, 2, 3272, 2, 3274, 2, 3276, 2, 3278, 2, 3287, 2, 3288, 2, 3296, 2, 3296, 2, 3298, 2, 3301, 2, 3315, 2, 3316, 2, 3331, 2, 3333, 2, 3335, 2, 3342, 2, 3344, 2, 3346, 2, 3348, 2, 3388, 2, 3391, 2, 3398, 2, 3400, 2, 3402, 2, 3404, 2, 3406, 2, 3408, 2, 3408, 2, 3414, 2, 3417, 2, 3425, 2, 3429, 2, 3452, 2, 3457, 2, 3460, 2, 3461, 2, 3463, 2, 3480, 2, 3484, 2, 3507, 2, 3509, 2, 3517, 2, 3519, 2, 3519, 2, 3522, 2, 3528, 2, 3537, 2, 3542, 2, 3544, 2, 3544, 2, 3546, 2, 3553, 2, 3572, 2, 3573, 2, 3587, 2, 3644, 2, 3650, 2, 3656, 2, 3663, 2, 3663, 2, 3715, 2, 3716, 2, 3718, 2, 3718, 2, 3721, 2, 3722, 2, 3724, 2, 3724, 2, 3727, 2, 3727, 2, 3734, 2, 3737, 2, 3739, 2, 3745, 2, 3747, 2, 3749, 2, 3751, 2, 3751, 2, 3753, 2, 3753, 2, 3756, 2, 3757, 2, 3759, 2, 3771, 2, 3773, 2, 3775, 2, 3778, 2, 3782, 2, 3784, 2, 3784, 2, 3791, 2, 3791, 2, 3806, 2, 3809, 2, 3842, 2, 3842, 2, 3906, 2, 3913, 2, 3915, 2, 3950, 2, 3955, 2, 3971, 2, 3978, 2, 3993, 2, 3995, 2, 4030, 2, 4098, 2, 4152, 2, 4154, 2, 4154, 2, 4157, 2, 4161, 2, 4178, 2, 4196, 2, 4199, 2, 4202, 2, 4208, 2, 4232, 2, 4240, 2, 4240, 2, 4254, 2, 4255, 2, 4258, 2, 4295, 2, 4297, 2, 4297, 2, 4303, 2, 4303, 2, 4306, 2, 4348, 2, 4350, 2, 4682, 2, 4684, 2, 4687, 2, 4690, 2, 4696, 2, 4698, 2, 4698, 2, 4700, 2, 4703, 2, 4706, 2, 4746, 2, 4748, 2, 4751, 2, 4754, 2, 4786, 2, 4788, 2, 4791, 2, 4794, 2, 4800, 2, 4802, 2, 4802, 2, 4804, 2, 4807, 2, 4810, 2, 4824, 2, 4826, 2, 4882, 2, 4884, 2, 4887, 2, 4890, 2, 4956, 2, 4961, 2, 4961, 2, 4994, 2, 5009, 2, 5026, 2, 5111, 2, 5114, 2, 5119, 2, 5123, 2, 5742, 2, 5745, 2, 5761, 2, 5763, 2, 5788, 2, 5794, 2, 5868, 2, 5872, 2, 5882, 2, 5890, 2, 5902, 2, 5904, 2, 5909, 2, 5922, 2, 5941, 2, 5954, 2, 5973, 2, 5986, 2, 5998, 2, 6000, 2, 6002, 2, 6004, 2, 6005, 2, 6018, 2, 6069, 2, 6072, 2, 6090, 2, 6105, 2, 6105, 2, 6110, 2, 6110, 2, 6178, 2, 6265, 2, 6274, 2, 6316, 2, 6322, 2, 6391, 2, 6402, 2, 6432, 2, 6434, 2, 6445, 2, 6450, 2, 6458, 2, 6482, 2, 6511, 2, 6514, 2, 6518, 2, 6530, 2, 6573, 2, 6578, 2, 6603, 2, 6658, 2, 6685, 2, 6690, 2, 6752, 2, 6755, 2, 6774, 2, 6825, 2, 6825, 2, 6914, 2, 6965, 2, 6967, 2, 6981, 2, 6983, 2, 6989, 2, 7042, 2, 7083, 2, 7086, 2, 7089, 2, 7100, 2, 7143, 2, 7145, 2, 7155, 2, 7170, 2, 7223, 2, 7247, 2, 7249, 2, 7260, 2, 7295, 2, 7298, 2, 7306, 2, 7403, 2, 7406, 2, 7408, 2, 7413, 2, 7415, 2, 7416, 2, 7426, 2, 7617, 2, 7657, 2, 7670, 2, 7682, 2, 7959, 2, 7962, 2, 7967, 2, 7970, 2, 8007, 2, 8010, 2, 8015, 2, 8018, 2, 8025, 2, 8027, 2, 8027, 2, 8029, 2, 8029, 2, 8031, 2, 8031, 2, 8033, 2, 8063, 2, 8066, 2, 8118, 2, 8120, 2, 8126, 2, 8128, 2, 8128, 2, 8132, 2, 8134, 2, 8136, 2, 8142, 2, 8146, 2, 8149, 2, 8152, 2, 8157, 2, 8162, 2, 8174, 2, 8180, 2, 8182, 2, 8184, 2, 8190, 2, 8307, 2, 8307, 2, 8321, 2, 8321, 2, 8338, 2, 8350, 2, 8452, 2, 8452, 2, 8457, 2, 8457, 2, 8460, 2, 8469, 2, 8471, 2, 8471, 2, 8475, 2, 8479, 2, 8486, 2, 8486, 2, 8488, 2, 8488, 2, 8490, 2, 8490, 2, 8492, 2, 8495, 2, 8497, 2, 8507, 2, 8510, 2, 8513, 2, 8519, 2, 8523, 2, 8528, 2, 8528, 2, 8546, 2, 8586, 2, 9400, 2, 9451, 2, 11266, 2, 11312, 2, 11314, 2, 11360, 2, 11362, 2, 11494, 2, 11501, 2, 11504, 2, 11508, 2, 11509, 2, 11522, 2, 11559, 2, 11561, 2, 11561, 2, 11567, 2, 11567, 2, 11570, 2, 11625, 2, 11633, 2, 11633, 2, 11650, 2, 11672, 2, 11682, 2, 11688, 2, 11690, 2, 11696, 2, 11698, 2, 11704, 2, 11706, 2, 11712, 2, 11714, 2, 11720, 2, 11722, 2, 11728, 2, 11730, 2, 11736, 2, 11738, 2, 11744, 2, 11746, 2, 11777, 2, 11825, 2, 11825, 2, 12295, 2, 12297, 2, 12323, 2, 12331, 2, 12339, 2, 12343, 2, 12346, 2, 12350, 2, 12355, 2, 12440, 2, 12447, 2, 12449, 2, 12451, 2, 12540, 2, 12542, 2, 12545, 2, 12551, 2, 12591, 2, 12595, 2, 12688, 2, 12706, 2, 12732, 2, 12786, 2, 12801, 2, 13314, 2, 19895, 2, 19970, 2, 40919, 2, 40962, 2, 42126, 2, 42194, 2, 42239, 2, 42242, 2, 42510, 2, 42514, 2, 42529, 2, 42540, 2, 42541, 2, 42562, 2, 42608, 2, 42614, 2, 42621, 2, 42625, 2, 42737, 2, 42777, 2, 42785, 2, 42788, 2, 42890, 2, 42893, 2, 42928, 2, 42930, 2, 42937, 2, 43001, 2, 43011, 2, 43013, 2, 43015, 2, 43017, 2, 43020, 2, 43022, 2, 43049, 2, 43074, 2, 43125, 2, 43138, 2, 43205, 2, 43207, 2, 43207, 2, 43252, 2, 43257, 2, 43261, 2, 43261, 2, 43263, 2, 43263, 2, 43276, 2, 43308, 2, 43314, 2, 43348, 2, 43362, 2, 43390, 2, 43394, 2, 43444, 2, 43446, 2, 43457, 2, 43473, 2, 43473, 2, 43490, 2, 43494, 2, 43496, 2, 43505, 2, 43516, 2, 43520, 2, 43522, 2, 43576, 2, 43586, 2, 43599, 2, 43618, 2, 43640, 2, 43644, 2, 43644, 2, 43648, 2, 43712, 2, 43714, 2, 43714, 2, 43716, 2, 43716, 2, 43741, 2, 43743, 2, 43746, 2, 43761, 2, 43764, 2, 43767, 2, 43779, 2, 43784, 2, 43787, 2, 43792, 2, 43795, 2, 43800, 2, 43810, 2, 43816, 2, 43818, 2, 43824, 2, 43826, 2, 43868, 2, 43870, 2, 43879, 2, 43890, 2, 44012, 2, 44034, 2, 55205, 2, 55218, 2, 55240, 2, 55245, 2, 55293, 2, 63746, 2, 64111, 2, 64114, 2, 64219, 2, 64258, 2, 64264, 2, 64277, 2, 64281, 2, 64287, 2, 64298, 2, 64300, 2, 64312, 2, 64314, 2, 64318, 2, 64320, 2, 64320, 2, 64322, 2, 64323, 2, 64325, 2, 64326, 2, 64328, 2, 64435, 2, 64469, 2, 64831, 2, 64850, 2, 64913, 2, 64916, 2, 64969, 2, 65010, 2, 65021, 2, 65138, 2, 65142, 2, 65144, 2, 65278, 2, 65315, 2, 65340, 2, 65347, 2, 65372, 2, 65384, 2, 65472, 2, 65476, 2, 65481, 2, 65484, 2, 65489, 2, 65492, 2, 65497, 2, 65500, 2, 65502, 2, 2, 3, 13, 3, 15, 3, 40, 3, 42, 3, 60, 3, 62, 3, 63, 3, 65, 3, 79, 3, 82, 3, 95, 3, 130, 3, 252, 3, 322, 3, 374, 3, 642, 3, 670, 3, 674, 3, 722, 3, 770, 3, 801, 3, 818, 3, 844, 3, 850, 3, 892, 3, 898, 3, 927, 3, 930, 3, 965, 3, 970, 3, 977, 3, 979, 3, 983, 3, 1026, 3, 1183, 3, 1202, 3, 1237, 3, 1242, 3, 1277, 3, 1282, 3, 1321, 3, 1330, 3, 1381, 3, 1538, 3, 1848, 3, 1858, 3, 1879, 3, 1890, 3, 1897, 3, 2050, 3, 2055, 3, 2058, 3, 2058, 3, 2060, 3, 2103, 3, 2105, 3, 2106, 3, 2110, 3, 2110, 3, 2113, 3, 2135, 3, 2146, 3, 2168, 3, 2178, 3, 2208, 3, 2274, 3, 2292, 3, 2294, 3, 2295, 3, 2306, 3, 2327, 3, 2338, 3, 2363, 3, 2434, 3, 2489, 3, 2496, 3, 2497, 3, 2562, 3, 2565, 3, 2567, 3, 2568, 3, 2574, 3, 2581, 3, 2583, 3, 2585, 3, 2587, 3, 2613, 3, 2658, 3, 2686, 3, 2690, 3, 2718, 3, 2754, 3, 2761, 3, 2763, 3, 2790, 3, 2818, 3, 2871, 3, 2882, 3, 2903, 3, 2914, 3, 2932, 3, 2946, 3, 2963, 3, 3074, 3, 3146, 3, 3202, 3, 3252, 3, 3266, 3, 3316, 3, 4098, 3, 4167, 3, 4228, 3, 4282, 3, 4306, 3, 4330, 3, 4354, 3, 4404, 3, 4434, 3, 4468, 3, 4472, 3, 4472, 3, 4482, 3, 4545, 3, 4547, 3, 4550, 3, 4572, 3, 4572, 3, 4574, 3, 4574, 3, 4610, 3, 4627, 3, 4629, 3, 4662, 3, 4665, 3, 4665, 3, 4672, 3, 4672, 3, 4738, 3, 4744, 3, 4746, 3, 4746, 3, 4748, 3, 4751, 3, 4753, 3, 4767, 3, 4769, 3, 4778, 3, 4786, 3, 4842, 3, 4866, 3, 4869, 3, 4871, 3, 4878, 3, 4881, 3, 4882, 3, 4885, 3, 4906, 3, 4908, 3, 4914, 3, 4916, 3, 4917, 3, 4919, 3, 4923, 3, 4927, 3, 4934, 3, 4937, 3, 4938, 3, 4941, 3, 4942, 3, 4946, 3, 4946, 3, 4953, 3, 4953, 3, 4959, 3, 4965, 3, 5122, 3, 5187, 3, 5189, 3, 5191, 3, 5193, 3, 5196, 3, 5250, 3, 5315, 3, 5318, 3, 5319, 3, 5321, 3, 5321, 3, 5506, 3, 5559, 3, 5562, 3, 5568, 3, 5594, 3, 5599, 3, 5634, 3, 5696, 3, 5698, 3, 5698, 3, 5702, 3, 5702, 3, 5762, 3, 5815, 3, 5890, 3, 5915, 3, 5919, 3, 5932, 3, 6306, 3, 6369, 3, 6401, 3, 6401, 3, 6850, 3, 6906, 3, 7170, 3, 7178, 3, 7180, 3, 7224, 3, 7226, 3, 7232, 3, 7234, 3, 7234, 3, 7284, 3, 7313, 3, 7316, 3, 7337, 3, 7339, 3, 7352, 3, 8194, 3, 9115, 3, 9218, 3, 9328, 3, 9346, 3, 9541, 3, 12290, 3, 13360, 3, 17410, 3, 17992, 3, 26626, 3, 27194, 3, 27202, 3, 27232, 3, 27346, 3, 27375, 3, 27394, 3, 27448, 3, 27458, 3, 27461, 3, 27493, 3, 27513, 3, 27519, 3, 27537, 3, 28418, 3, 28486, 3, 28498, 3, 28544, 3, 28565, 3, 28577, 3, 28642, 3, 28642, 3, 28674, 3, 34798, 3, 34818, 3, 35572, 3, 45058, 3, 45059, 3, 48130, 3, 48236, 3, 48242, 3, 48254, 3, 48258, 3, 48266, 3, 48274, 3, 48283, 3, 48288, 3, 48288, 3, 54274, 3, 54358, 3, 54360, 3, 54430, 3, 54432, 3, 54433, 3, 54436, 3, 54436, 3, 54439, 3, 54440, 3, 54443, 3, 54446, 3, 54448, 3, 54459, 3, 54461, 3, 54461, 3, 54463, 3, 54469, 3, 54471, 3, 54535, 3, 54537, 3, 54540, 3, 54543, 3, 54550, 3, 54552, 3, 54558, 3, 54560, 3, 54587, 3, 54589, 3, 54592, 3, 54594, 3, 54598, 3, 54600, 3, 54600, 3, 54604, 3, 54610, 3, 54612, 3, 54951, 3, 54954, 3, 54978, 3, 54980, 3, 55004, 3, 55006, 3, 55036, 3, 55038, 3, 55062, 3, 55064, 3, 55094, 3, 55096, 3, 55120, 3, 55122, 3, 55152, 3, 55154, 3, 55178, 3, 55180, 3, 55210, 3, 55212, 3, 55236, 3, 55238, 3, 55245, 3, 57346, 3, 57352, 3, 57354, 3, 57370, 3, 57373, 3, 57379, 3, 57381, 3, 57382, 3, 57384, 3, 57388, 3, 59394, 3, 59590, 3, 59650, 3, 59717, 3, 59721, 3, 59721, 3, 60930, 3, 60933, 3, 60935, 3, 60961, 3, 60963, 3, 60964, 3, 60966, 3, 60966, 3, 60969, 3, 60969, 3, 60971, 3, 60980, 3, 60982, 3, 60985, 3, 60987, 3, 60987, 3, 60989, 3, 60989, 3, 60996, 3, 60996, 3, 61001, 3, 61001, 3, 61003, 3, 61003, 3, 61005, 3, 61005, 3, 61007, 3, 61009, 3, 61011, 3, 61012, 3, 61014, 3, 61014, 3, 61017, 3, 61017, 3, 61019, 3, 61019, 3, 61021, 3, 61021, 3, 61023, 3, 61023, 3, 61025, 3, 61025, 3, 61027, 3, 61028, 3, 61030, 3, 61030, 3, 61033, 3, 61036, 3, 61038, 3, 61044, 3, 61046, 3, 61049, 3, 61051, 3, 61054, 3, 61056, 3, 61056, 3, 61058, 3, 61067, 3, 61069, 3, 61085, 3, 61091, 3, 61093, 3, 61095, 3, 61099, 3, 61101, 3, 61117, 3, 61746, 3, 61771, 3, 61778, 3, 61803, 3, 61810, 3, 61835, 3, 2, 4, 42712, 4, 42754, 4, 46902, 4, 46914, 4, 47135, 4, 47138, 4, 52899, 4, 63490, 4, 64031, 4, 221, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 49, 3, 2, 2, 2, 2, 51, 3, 2, 2, 2, 2, 53, 3, 2, 2, 2, 2, 55, 3, 2, 2, 2, 2, 57, 3, 2, 2, 2, 3, 59, 3, 2, 2, 2, 5, 64, 3, 2, 2, 2, 7, 68, 3, 2, 2, 2, 9, 70, 3, 2, 2, 2, 11, 72, 3, 2, 2, 2, 13, 74, 3, 2, 2, 2, 15, 77, 3, 2, 2, 2, 17, 79, 3, 2, 2, 2, 19, 81, 3, 2, 2, 2, 21, 83, 3, 2, 2, 2, 23, 85, 3, 2, 2, 2, 25, 87, 3, 2, 2, 2, 27, 89, 3, 2, 2, 2, 29, 91, 3, 2, 2, 2, 31, 93, 3, 2, 2, 2, 33, 95, 3, 2, 2, 2, 35, 103, 3, 2, 2, 2, 37, 105, 3, 2, 2, 2, 39, 108, 3, 2, 2, 2, 41, 120, 3, 2, 2, 2, 43, 132, 3, 2, 2, 2, 45, 145, 3, 2, 2, 2, 47, 152, 3, 2, 2, 2, 49, 177, 3, 2, 2, 2, 51, 181, 3, 2, 2, 2, 53, 185, 3, 2, 2, 2, 55, 197, 3, 2, 2, 2, 57, 203, 3, 2, 2, 2, 59, 60, 7, 47, 2, 2, 60, 61, 7, 48, 2, 2, 61, 62, 7, 48, 2, 2, 62, 63, 7, 48, 2, 2, 63, 4, 3, 2, 2, 2, 64, 65, 7, 48, 2, 2, 65, 66, 7, 48, 2, 2, 66, 67, 7, 48, 2, 2, 67, 6, 3, 2, 2, 2, 68, 69, 7, 48, 2, 2, 69, 8, 3, 2, 2, 2, 70, 71, 7, 47, 2, 2, 71, 10, 3, 2, 2, 2, 72, 73, 7, 63, 2, 2, 73, 12, 3, 2, 2, 2, 74, 75, 7, 38, 2, 2, 75, 76, 7, 42, 2, 2, 76, 14, 3, 2, 2, 2, 77, 78, 7, 43, 2, 2, 78, 16, 3, 2, 2, 2, 79, 80, 7, 125, 2, 2, 80, 18, 3, 2, 2, 2, 81, 82, 7, 127, 2, 2, 82, 20, 3, 2, 2, 2, 83, 84, 7, 93, 2, 2, 84, 22, 3, 2, 2, 2, 85, 86, 7, 46, 2, 2, 86, 24, 3, 2, 2, 2, 87, 88, 7, 95, 2, 2, 88, 26, 3, 2, 2, 2, 89, 90, 9, 11, 2, 2, 90, 28, 3, 2, 2, 2, 91, 92, 9, 2, 2, 2, 92, 30, 3, 2, 2, 2, 93, 94, 9, 3, 2, 2, 94, 32, 3, 2, 2, 2, 95, 96, 7, 94, 2, 2, 96, 97, 7, 119, 2, 2, 97, 98, 3, 2, 2, 2, 98, 99, 5, 31, 16, 2, 99, 100, 5, 31, 16, 2, 100, 101, 5, 31, 16, 2, 101, 102, 5, 31, 16, 2, 102, 34, 3, 2, 2, 2, 103, 104, 10, 4, 2, 2, 104, 36, 3, 2, 2, 2, 105, 106, 7, 94, 2, 2, 106, 107, 11, 2, 2, 2, 107, 38, 3, 2, 2, 2, 108, 115, 7, 41, 2, 2, 109, 114, 5, 33, 17, 2, 110, 114, 5, 37, 19, 2, 111, 114, 5, 35, 18, 2, 112, 114, 9, 5, 2, 2, 113, 109, 3, 2, 2, 2, 113, 110, 3, 2, 2, 2, 113, 111, 3, 2, 2, 2, 113, 112, 3, 2, 2, 2, 114, 117, 3, 2, 2, 2, 115, 113, 3, 2, 2, 2, 115, 116, 3, 2, 2, 2, 116, 118, 3, 2, 2, 2, 117, 115, 3, 2, 2, 2, 118, 119, 7, 41, 2, 2, 119, 40, 3, 2, 2, 2, 120, 127, 7, 36, 2, 2, 121, 126, 5, 33, 17, 2, 122, 126, 5, 37, 19, 2, 123, 126, 5, 35, 18, 2, 124, 126, 9, 6, 2, 2, 125, 121, 3, 2, 2, 2, 125, 122, 3, 2, 2, 2, 125, 123, 3, 2, 2, 2, 125, 124, 3, 2, 2, 2, 126, 129, 3, 2, 2, 2, 127, 125, 3, 2, 2, 2, 127, 128, 3, 2, 2, 2, 128, 130, 3, 2, 2, 2, 129, 127, 3, 2, 2, 2, 130, 131, 7, 36, 2, 2, 131, 42, 3, 2, 2, 2, 132, 139, 7, 98, 2, 2, 133, 138, 5, 33, 17, 2, 134, 138, 5, 37, 19, 2, 135, 138, 5, 35, 18, 2, 136, 138, 9, 7, 2, 2, 137, 133, 3, 2, 2, 2, 137, 134, 3, 2, 2, 2, 137, 135, 3, 2, 2, 2, 137, 136, 3, 2, 2, 2, 138, 141, 3, 2, 2, 2, 139, 137, 3, 2, 2, 2, 139, 140, 3, 2, 2, 2, 140, 142, 3, 2, 2, 2, 141, 139, 3, 2, 2, 2, 142, 143, 7, 98, 2, 2, 143, 44, 3, 2, 2, 2, 144, 146, 5, 9, 5, 2, 145, 144, 3, 2, 2, 2, 145, 146, 3, 2, 2, 2, 146, 148, 3, 2, 2, 2, 147, 149, 5, 29, 15, 2, 148, 147, 3, 2, 2, 2, 149, 150, 3, 2, 2, 2, 150, 148, 3, 2, 2, 2, 150, 151, 3, 2, 2, 2, 151, 46, 3, 2, 2, 2, 152, 154, 9, 8, 2, 2, 153, 155, 9, 9, 2, 2, 154, 153, 3, 2, 2, 2, 154, 155, 3, 2, 2, 2, 155, 157, 3, 2, 2, 2, 156, 158, 5, 29, 15, 2, 157, 156, 3, 2, 2, 2, 158, 159, 3, 2, 2, 2, 159, 157, 3, 2, 2, 2, 159, 160, 3, 2, 2, 2, 160, 48, 3, 2, 2, 2, 161, 163, 5, 45, 23, 2, 162, 161, 3, 2, 2, 2, 162, 163, 3, 2, 2, 2, 163, 164, 3, 2, 2, 2, 164, 166, 5, 7, 4, 2, 165, 167, 5, 29, 15, 2, 166, 165, 3, 2, 2, 2, 167, 168, 3, 2, 2, 2, 168, 166, 3, 2, 2, 2, 168, 169, 3, 2, 2, 2, 169, 171, 3, 2, 2, 2, 170, 172, 5, 47, 24, 2, 171, 170, 3, 2, 2, 2, 171, 172, 3, 2, 2, 2, 172, 178, 3, 2, 2, 2, 173, 175, 5, 45, 23, 2, 174, 176, 5, 47, 24, 2, 175, 174, 3, 2, 2, 2, 175, 176, 3, 2, 2, 2, 176, 178, 3, 2, 2, 2, 177, 162, 3, 2, 2, 2, 177, 173, 3, 2, 2, 2, 178, 50, 3, 2, 2, 2, 179, 182, 5, 29, 15, 2, 180, 182, 5, 27, 14, 2, 181, 179, 3, 2, 2, 2, 181, 180, 3, 2, 2, 2, 182, 183, 3, 2, 2, 2, 183, 181, 3, 2, 2, 2, 183, 184, 3, 2, 2, 2, 184, 52, 3, 2, 2, 2, 185, 189, 7, 37, 2, 2, 186, 188, 11, 2, 2, 2, 187, 186, 3, 2, 2, 2, 188, 191, 3, 2, 2, 2, 189, 190, 3, 2, 2, 2, 189, 187, 3, 2, 2, 2, 190, 192, 3, 2, 2, 2, 191, 189, 3, 2, 2, 2, 192, 193, 7, 2, 2, 3, 193, 194, 3, 2, 2, 2, 194, 195, 8, 27, 2, 2, 195, 54, 3, 2, 2, 2, 196, 198, 9, 10, 2, 2, 197, 196, 3, 2, 2, 2, 198, 199, 3, 2, 2, 2, 199, 197, 3, 2, 2, 2, 199, 200, 3, 2, 2, 2, 200, 201, 3, 2, 2, 2, 201, 202, 8, 28, 2, 2, 202, 56, 3, 2, 2, 2, 203, 204, 11, 2, 2, 2, 204, 58, 3, 2, 2, 2, 22, 2, 113, 115, 125, 127, 137, 139, 145, 150, 154, 159, 162, 168, 171, 175, 177, 181, 183, 189, 199, 3, 8, 2, 2]
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
MINUS_DOTTY=1
|
|
2
|
+
DOTTY=2
|
|
3
|
+
DOT=3
|
|
4
|
+
MINUS=4
|
|
5
|
+
EQ=5
|
|
6
|
+
RF_BEG=6
|
|
7
|
+
RF_END=7
|
|
8
|
+
PR_BEG=8
|
|
9
|
+
PR_END=9
|
|
10
|
+
AR_BEG=10
|
|
11
|
+
COMMA=11
|
|
12
|
+
AR_END=12
|
|
13
|
+
SQ_STRING=13
|
|
14
|
+
DQ_STRING=14
|
|
15
|
+
BQ_STRING=15
|
|
16
|
+
NUMERIC_LITERAL=16
|
|
17
|
+
BARE_STRING=17
|
|
18
|
+
COMMENT=18
|
|
19
|
+
WHITE_SPACE=19
|
|
20
|
+
UNEXPECTED_CHAR=20
|
|
21
|
+
'-...'=1
|
|
22
|
+
'...'=2
|
|
23
|
+
'.'=3
|
|
24
|
+
'-'=4
|
|
25
|
+
'='=5
|
|
26
|
+
'$('=6
|
|
27
|
+
')'=7
|
|
28
|
+
'{'=8
|
|
29
|
+
'}'=9
|
|
30
|
+
'['=10
|
|
31
|
+
','=11
|
|
32
|
+
']'=12
|