Skip to content

Commit dbf534e

Browse files
Add support for parsing table options in Create
Table stmt. The table options specified in the `WITH` clause are ignored during conversion. To simplify the parser and avoid unnecessary failures, strict validation of the table options syntax is not enforced.
1 parent 717a743 commit dbf534e

File tree

11 files changed

+1108
-503
lines changed

11 files changed

+1108
-503
lines changed

translator/CqlLexer.g4

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ K_NOT : 'NOT';
3333
K_EXISTS : 'EXISTS';
3434
K_PRIMARY : 'PRIMARY';
3535
K_KEY : 'KEY';
36+
K_WITH : 'WITH';
3637

3738
K_ASCII : 'ASCII';
3839
K_BIGINT : 'BIGINT';

translator/CqlParser.g4

Lines changed: 50 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,8 @@ cqlStatement
3131
: createTable
3232
;
3333

34-
// TODO: Add support on `IF NOT EXISTS`.
35-
// TODO: Add support on table_options
3634
createTable
37-
: K_CREATE K_TABLE ifNotExist? tableName L_PAREN columnDefinitionList R_PAREN
35+
: K_CREATE K_TABLE ifNotExist? tableName L_PAREN columnDefinitionList R_PAREN wihtTableOptions?
3836
;
3937

4038
columnDefinitionList
@@ -124,4 +122,53 @@ cqlNativeType
124122
cqlCollectionType
125123
: K_MAP L_ANGLE_BRACKET cqlNativeType COMMA cqlNativeType R_ANGLE_BRACKET
126124
| (K_SET | K_LIST) L_ANGLE_BRACKET cqlNativeType R_ANGLE_BRACKET
125+
;
126+
127+
// TODO: Consider using a more precise syntax.
128+
wihtTableOptions
129+
: K_WITH nonSemicolonToken*
130+
;
131+
132+
nonSemicolonToken
133+
: K_CREATE
134+
| K_TABLE
135+
| K_IF
136+
| K_NOT
137+
| K_EXISTS
138+
| K_PRIMARY
139+
| K_KEY
140+
| K_WITH
141+
| K_ASCII
142+
| K_BIGINT
143+
| K_BLOB
144+
| K_BOOLEAN
145+
| K_COUNTER
146+
| K_DATE
147+
| K_DECIMAL
148+
| K_DOUBLE
149+
| K_FLOAT
150+
| K_INET
151+
| K_INT
152+
| K_SMALLINT
153+
| K_TEXT
154+
| K_TIME
155+
| K_TIMESTAMP
156+
| K_TIMEUUID
157+
| K_TINYINT
158+
| K_UUID
159+
| K_VARCHAR
160+
| K_VARINT
161+
| K_MAP
162+
| K_SET
163+
| K_LIST
164+
| DQUOTE
165+
| DOT
166+
| COMMA
167+
| L_PAREN
168+
| R_PAREN
169+
| L_ANGLE_BRACKET
170+
| R_ANGLE_BRACKET
171+
| IDENTIFIER
172+
| IDENTIFIER_WITH_HYPHEN
173+
| UNKNOWN
127174
;

translator/cqlparser/CqlLexer.interp

Lines changed: 4 additions & 1 deletion
Large diffs are not rendered by default.

translator/cqlparser/CqlLexer.tokens

Lines changed: 70 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -5,78 +5,80 @@ K_NOT=4
55
K_EXISTS=5
66
K_PRIMARY=6
77
K_KEY=7
8-
K_ASCII=8
9-
K_BIGINT=9
10-
K_BLOB=10
11-
K_BOOLEAN=11
12-
K_COUNTER=12
13-
K_DATE=13
14-
K_DECIMAL=14
15-
K_DOUBLE=15
16-
K_FLOAT=16
17-
K_INET=17
18-
K_INT=18
19-
K_SMALLINT=19
20-
K_TEXT=20
21-
K_TIME=21
22-
K_TIMESTAMP=22
23-
K_TIMEUUID=23
24-
K_TINYINT=24
25-
K_UUID=25
26-
K_VARCHAR=26
27-
K_VARINT=27
28-
K_MAP=28
29-
K_SET=29
30-
K_LIST=30
31-
SEMICOLON=31
32-
DQUOTE=32
33-
DOT=33
34-
COMMA=34
35-
L_PAREN=35
36-
R_PAREN=36
37-
L_ANGLE_BRACKET=37
38-
R_ANGLE_BRACKET=38
39-
IDENTIFIER=39
40-
IDENTIFIER_WITH_HYPHEN=40
41-
WS=41
42-
COMMENT=42
43-
MULTILINE_COMMENT=43
44-
UNKNOWN=44
8+
K_WITH=8
9+
K_ASCII=9
10+
K_BIGINT=10
11+
K_BLOB=11
12+
K_BOOLEAN=12
13+
K_COUNTER=13
14+
K_DATE=14
15+
K_DECIMAL=15
16+
K_DOUBLE=16
17+
K_FLOAT=17
18+
K_INET=18
19+
K_INT=19
20+
K_SMALLINT=20
21+
K_TEXT=21
22+
K_TIME=22
23+
K_TIMESTAMP=23
24+
K_TIMEUUID=24
25+
K_TINYINT=25
26+
K_UUID=26
27+
K_VARCHAR=27
28+
K_VARINT=28
29+
K_MAP=29
30+
K_SET=30
31+
K_LIST=31
32+
SEMICOLON=32
33+
DQUOTE=33
34+
DOT=34
35+
COMMA=35
36+
L_PAREN=36
37+
R_PAREN=37
38+
L_ANGLE_BRACKET=38
39+
R_ANGLE_BRACKET=39
40+
IDENTIFIER=40
41+
IDENTIFIER_WITH_HYPHEN=41
42+
WS=42
43+
COMMENT=43
44+
MULTILINE_COMMENT=44
45+
UNKNOWN=45
4546
'CREATE'=1
4647
'TABLE'=2
4748
'IF'=3
4849
'NOT'=4
4950
'EXISTS'=5
5051
'PRIMARY'=6
5152
'KEY'=7
52-
'ASCII'=8
53-
'BIGINT'=9
54-
'BLOB'=10
55-
'BOOLEAN'=11
56-
'COUNTER'=12
57-
'DATE'=13
58-
'DECIMAL'=14
59-
'DOUBLE'=15
60-
'FLOAT'=16
61-
'INET'=17
62-
'INT'=18
63-
'SMALLINT'=19
64-
'TEXT'=20
65-
'TIME'=21
66-
'TIMESTAMP'=22
67-
'TIMEUUID'=23
68-
'TINYINT'=24
69-
'UUID'=25
70-
'VARCHAR'=26
71-
'VARINT'=27
72-
'MAP'=28
73-
'SET'=29
74-
'LIST'=30
75-
';'=31
76-
'"'=32
77-
'.'=33
78-
','=34
79-
'('=35
80-
')'=36
81-
'<'=37
82-
'>'=38
53+
'WITH'=8
54+
'ASCII'=9
55+
'BIGINT'=10
56+
'BLOB'=11
57+
'BOOLEAN'=12
58+
'COUNTER'=13
59+
'DATE'=14
60+
'DECIMAL'=15
61+
'DOUBLE'=16
62+
'FLOAT'=17
63+
'INET'=18
64+
'INT'=19
65+
'SMALLINT'=20
66+
'TEXT'=21
67+
'TIME'=22
68+
'TIMESTAMP'=23
69+
'TIMEUUID'=24
70+
'TINYINT'=25
71+
'UUID'=26
72+
'VARCHAR'=27
73+
'VARINT'=28
74+
'MAP'=29
75+
'SET'=30
76+
'LIST'=31
77+
';'=32
78+
'"'=33
79+
'.'=34
80+
','=35
81+
'('=36
82+
')'=37
83+
'<'=38
84+
'>'=39

translator/cqlparser/CqlParser.interp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ null
77
'EXISTS'
88
'PRIMARY'
99
'KEY'
10+
'WITH'
1011
'ASCII'
1112
'BIGINT'
1213
'BLOB'
@@ -54,6 +55,7 @@ K_NOT
5455
K_EXISTS
5556
K_PRIMARY
5657
K_KEY
58+
K_WITH
5759
K_ASCII
5860
K_BIGINT
5961
K_BLOB
@@ -111,7 +113,9 @@ primaryKeyKeywords
111113
ifNotExist
112114
cqlNativeType
113115
cqlCollectionType
116+
wihtTableOptions
117+
nonSemicolonToken
114118

115119

116120
atn:
117-
[4, 1, 44, 144, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 1, 0, 1, 0, 3, 0, 39, 8, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 3, 2, 48, 8, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 5, 3, 58, 8, 3, 10, 3, 12, 3, 61, 9, 3, 1, 3, 1, 3, 3, 3, 65, 8, 3, 1, 4, 1, 4, 1, 4, 3, 4, 70, 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 3, 6, 80, 8, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 5, 7, 87, 8, 7, 10, 7, 12, 7, 90, 9, 7, 1, 7, 1, 7, 3, 7, 94, 8, 7, 1, 8, 1, 8, 1, 8, 5, 8, 99, 8, 8, 10, 8, 12, 8, 102, 9, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 3, 10, 109, 8, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 1, 13, 3, 13, 119, 8, 13, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 3, 17, 142, 8, 17, 1, 17, 0, 0, 18, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 0, 3, 1, 0, 39, 40, 1, 0, 8, 27, 1, 0, 29, 30, 137, 0, 36, 1, 0, 0, 0, 2, 42, 1, 0, 0, 0, 4, 44, 1, 0, 0, 0, 6, 54, 1, 0, 0, 0, 8, 66, 1, 0, 0, 0, 10, 71, 1, 0, 0, 0, 12, 76, 1, 0, 0, 0, 14, 93, 1, 0, 0, 0, 16, 95, 1, 0, 0, 0, 18, 103, 1, 0, 0, 0, 20, 108, 1, 0, 0, 0, 22, 112, 1, 0, 0, 0, 24, 114, 1, 0, 0, 0, 26, 118, 1, 0, 0, 0, 28, 120, 1, 0, 0, 0, 30, 123, 1, 0, 0, 0, 32, 127, 1, 0, 0, 0, 34, 141, 1, 0, 0, 0, 36, 38, 3, 2, 1, 0, 37, 39, 5, 31, 0, 0, 38, 37, 1, 0, 0, 0, 38, 39, 1, 0, 0, 0, 39, 40, 1, 0, 0, 0, 40, 41, 5, 0, 0, 1, 41, 1, 1, 0, 0, 0, 42, 43, 3, 4, 2, 0, 43, 3, 1, 0, 0, 0, 44, 45, 5, 1, 0, 0, 45, 47, 5, 2, 0, 0, 46, 48, 3, 30, 15, 0, 47, 46, 1, 0, 0, 0, 47, 48, 1, 0, 0, 0, 48, 49, 1, 0, 0, 0, 49, 50, 3, 20, 10, 0, 50, 51, 5, 35, 0, 0, 51, 52, 3, 6, 3, 0, 52, 53, 5, 36, 0, 0, 53, 5, 1, 0, 0, 0, 54, 59, 3, 8, 4, 0, 55, 56, 5, 34, 0, 0, 56, 58, 3, 8, 4, 0, 57, 55, 1, 0, 0, 0, 58, 61, 1, 0, 0, 0, 59, 57, 1, 0, 0, 0, 59, 60, 1, 0, 0, 0, 60, 64, 1, 0, 0, 0, 61, 59, 1, 0, 0, 0, 62, 63, 5, 34, 0, 0, 63, 65, 3, 10, 5, 0, 64, 62, 1, 0, 0, 0, 64, 65, 1, 0, 0, 0, 65, 7, 1, 0, 0, 0, 66, 67, 3, 18, 9, 0, 67, 69, 3, 26, 13, 0, 68, 70, 3, 28, 14, 0, 69, 68, 1, 0, 0, 0, 69, 70, 1, 0, 0, 0, 70, 9, 1, 0, 0, 0, 71, 72, 3, 28, 14, 0, 72, 73, 5, 35, 0, 0, 73, 74, 3, 12, 6, 0, 74, 75, 5, 36, 0, 0, 75, 11, 1, 0, 0, 0, 76, 79, 3, 14, 7, 0, 77, 78, 5, 34, 0, 0, 78, 80, 3, 16, 8, 0, 79, 77, 1, 0, 0, 0, 79, 80, 1, 0, 0, 0, 80, 13, 1, 0, 0, 0, 81, 94, 3, 18, 9, 0, 82, 83, 5, 35, 0, 0, 83, 88, 3, 18, 9, 0, 84, 85, 5, 34, 0, 0, 85, 87, 3, 18, 9, 0, 86, 84, 1, 0, 0, 0, 87, 90, 1, 0, 0, 0, 88, 86, 1, 0, 0, 0, 88, 89, 1, 0, 0, 0, 89, 91, 1, 0, 0, 0, 90, 88, 1, 0, 0, 0, 91, 92, 5, 36, 0, 0, 92, 94, 1, 0, 0, 0, 93, 81, 1, 0, 0, 0, 93, 82, 1, 0, 0, 0, 94, 15, 1, 0, 0, 0, 95, 100, 3, 18, 9, 0, 96, 97, 5, 34, 0, 0, 97, 99, 3, 18, 9, 0, 98, 96, 1, 0, 0, 0, 99, 102, 1, 0, 0, 0, 100, 98, 1, 0, 0, 0, 100, 101, 1, 0, 0, 0, 101, 17, 1, 0, 0, 0, 102, 100, 1, 0, 0, 0, 103, 104, 5, 39, 0, 0, 104, 19, 1, 0, 0, 0, 105, 106, 3, 22, 11, 0, 106, 107, 5, 33, 0, 0, 107, 109, 1, 0, 0, 0, 108, 105, 1, 0, 0, 0, 108, 109, 1, 0, 0, 0, 109, 110, 1, 0, 0, 0, 110, 111, 5, 39, 0, 0, 111, 21, 1, 0, 0, 0, 112, 113, 3, 24, 12, 0, 113, 23, 1, 0, 0, 0, 114, 115, 7, 0, 0, 0, 115, 25, 1, 0, 0, 0, 116, 119, 3, 32, 16, 0, 117, 119, 3, 34, 17, 0, 118, 116, 1, 0, 0, 0, 118, 117, 1, 0, 0, 0, 119, 27, 1, 0, 0, 0, 120, 121, 5, 6, 0, 0, 121, 122, 5, 7, 0, 0, 122, 29, 1, 0, 0, 0, 123, 124, 5, 3, 0, 0, 124, 125, 5, 4, 0, 0, 125, 126, 5, 5, 0, 0, 126, 31, 1, 0, 0, 0, 127, 128, 7, 1, 0, 0, 128, 33, 1, 0, 0, 0, 129, 130, 5, 28, 0, 0, 130, 131, 5, 37, 0, 0, 131, 132, 3, 32, 16, 0, 132, 133, 5, 34, 0, 0, 133, 134, 3, 32, 16, 0, 134, 135, 5, 38, 0, 0, 135, 142, 1, 0, 0, 0, 136, 137, 7, 2, 0, 0, 137, 138, 5, 37, 0, 0, 138, 139, 3, 32, 16, 0, 139, 140, 5, 38, 0, 0, 140, 142, 1, 0, 0, 0, 141, 129, 1, 0, 0, 0, 141, 136, 1, 0, 0, 0, 142, 35, 1, 0, 0, 0, 12, 38, 47, 59, 64, 69, 79, 88, 93, 100, 108, 118, 141]
121+
[4, 1, 45, 159, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 1, 0, 1, 0, 3, 0, 43, 8, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 3, 2, 52, 8, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 59, 8, 2, 1, 3, 1, 3, 1, 3, 5, 3, 64, 8, 3, 10, 3, 12, 3, 67, 9, 3, 1, 3, 1, 3, 3, 3, 71, 8, 3, 1, 4, 1, 4, 1, 4, 3, 4, 76, 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 3, 6, 86, 8, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 5, 7, 93, 8, 7, 10, 7, 12, 7, 96, 9, 7, 1, 7, 1, 7, 3, 7, 100, 8, 7, 1, 8, 1, 8, 1, 8, 5, 8, 105, 8, 8, 10, 8, 12, 8, 108, 9, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 3, 10, 115, 8, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 1, 13, 3, 13, 125, 8, 13, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 3, 17, 148, 8, 17, 1, 18, 1, 18, 5, 18, 152, 8, 18, 10, 18, 12, 18, 155, 9, 18, 1, 19, 1, 19, 1, 19, 0, 0, 20, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 0, 4, 1, 0, 40, 41, 1, 0, 9, 28, 1, 0, 30, 31, 3, 0, 1, 31, 33, 41, 45, 45, 152, 0, 40, 1, 0, 0, 0, 2, 46, 1, 0, 0, 0, 4, 48, 1, 0, 0, 0, 6, 60, 1, 0, 0, 0, 8, 72, 1, 0, 0, 0, 10, 77, 1, 0, 0, 0, 12, 82, 1, 0, 0, 0, 14, 99, 1, 0, 0, 0, 16, 101, 1, 0, 0, 0, 18, 109, 1, 0, 0, 0, 20, 114, 1, 0, 0, 0, 22, 118, 1, 0, 0, 0, 24, 120, 1, 0, 0, 0, 26, 124, 1, 0, 0, 0, 28, 126, 1, 0, 0, 0, 30, 129, 1, 0, 0, 0, 32, 133, 1, 0, 0, 0, 34, 147, 1, 0, 0, 0, 36, 149, 1, 0, 0, 0, 38, 156, 1, 0, 0, 0, 40, 42, 3, 2, 1, 0, 41, 43, 5, 32, 0, 0, 42, 41, 1, 0, 0, 0, 42, 43, 1, 0, 0, 0, 43, 44, 1, 0, 0, 0, 44, 45, 5, 0, 0, 1, 45, 1, 1, 0, 0, 0, 46, 47, 3, 4, 2, 0, 47, 3, 1, 0, 0, 0, 48, 49, 5, 1, 0, 0, 49, 51, 5, 2, 0, 0, 50, 52, 3, 30, 15, 0, 51, 50, 1, 0, 0, 0, 51, 52, 1, 0, 0, 0, 52, 53, 1, 0, 0, 0, 53, 54, 3, 20, 10, 0, 54, 55, 5, 36, 0, 0, 55, 56, 3, 6, 3, 0, 56, 58, 5, 37, 0, 0, 57, 59, 3, 36, 18, 0, 58, 57, 1, 0, 0, 0, 58, 59, 1, 0, 0, 0, 59, 5, 1, 0, 0, 0, 60, 65, 3, 8, 4, 0, 61, 62, 5, 35, 0, 0, 62, 64, 3, 8, 4, 0, 63, 61, 1, 0, 0, 0, 64, 67, 1, 0, 0, 0, 65, 63, 1, 0, 0, 0, 65, 66, 1, 0, 0, 0, 66, 70, 1, 0, 0, 0, 67, 65, 1, 0, 0, 0, 68, 69, 5, 35, 0, 0, 69, 71, 3, 10, 5, 0, 70, 68, 1, 0, 0, 0, 70, 71, 1, 0, 0, 0, 71, 7, 1, 0, 0, 0, 72, 73, 3, 18, 9, 0, 73, 75, 3, 26, 13, 0, 74, 76, 3, 28, 14, 0, 75, 74, 1, 0, 0, 0, 75, 76, 1, 0, 0, 0, 76, 9, 1, 0, 0, 0, 77, 78, 3, 28, 14, 0, 78, 79, 5, 36, 0, 0, 79, 80, 3, 12, 6, 0, 80, 81, 5, 37, 0, 0, 81, 11, 1, 0, 0, 0, 82, 85, 3, 14, 7, 0, 83, 84, 5, 35, 0, 0, 84, 86, 3, 16, 8, 0, 85, 83, 1, 0, 0, 0, 85, 86, 1, 0, 0, 0, 86, 13, 1, 0, 0, 0, 87, 100, 3, 18, 9, 0, 88, 89, 5, 36, 0, 0, 89, 94, 3, 18, 9, 0, 90, 91, 5, 35, 0, 0, 91, 93, 3, 18, 9, 0, 92, 90, 1, 0, 0, 0, 93, 96, 1, 0, 0, 0, 94, 92, 1, 0, 0, 0, 94, 95, 1, 0, 0, 0, 95, 97, 1, 0, 0, 0, 96, 94, 1, 0, 0, 0, 97, 98, 5, 37, 0, 0, 98, 100, 1, 0, 0, 0, 99, 87, 1, 0, 0, 0, 99, 88, 1, 0, 0, 0, 100, 15, 1, 0, 0, 0, 101, 106, 3, 18, 9, 0, 102, 103, 5, 35, 0, 0, 103, 105, 3, 18, 9, 0, 104, 102, 1, 0, 0, 0, 105, 108, 1, 0, 0, 0, 106, 104, 1, 0, 0, 0, 106, 107, 1, 0, 0, 0, 107, 17, 1, 0, 0, 0, 108, 106, 1, 0, 0, 0, 109, 110, 5, 40, 0, 0, 110, 19, 1, 0, 0, 0, 111, 112, 3, 22, 11, 0, 112, 113, 5, 34, 0, 0, 113, 115, 1, 0, 0, 0, 114, 111, 1, 0, 0, 0, 114, 115, 1, 0, 0, 0, 115, 116, 1, 0, 0, 0, 116, 117, 5, 40, 0, 0, 117, 21, 1, 0, 0, 0, 118, 119, 3, 24, 12, 0, 119, 23, 1, 0, 0, 0, 120, 121, 7, 0, 0, 0, 121, 25, 1, 0, 0, 0, 122, 125, 3, 32, 16, 0, 123, 125, 3, 34, 17, 0, 124, 122, 1, 0, 0, 0, 124, 123, 1, 0, 0, 0, 125, 27, 1, 0, 0, 0, 126, 127, 5, 6, 0, 0, 127, 128, 5, 7, 0, 0, 128, 29, 1, 0, 0, 0, 129, 130, 5, 3, 0, 0, 130, 131, 5, 4, 0, 0, 131, 132, 5, 5, 0, 0, 132, 31, 1, 0, 0, 0, 133, 134, 7, 1, 0, 0, 134, 33, 1, 0, 0, 0, 135, 136, 5, 29, 0, 0, 136, 137, 5, 38, 0, 0, 137, 138, 3, 32, 16, 0, 138, 139, 5, 35, 0, 0, 139, 140, 3, 32, 16, 0, 140, 141, 5, 39, 0, 0, 141, 148, 1, 0, 0, 0, 142, 143, 7, 2, 0, 0, 143, 144, 5, 38, 0, 0, 144, 145, 3, 32, 16, 0, 145, 146, 5, 39, 0, 0, 146, 148, 1, 0, 0, 0, 147, 135, 1, 0, 0, 0, 147, 142, 1, 0, 0, 0, 148, 35, 1, 0, 0, 0, 149, 153, 5, 8, 0, 0, 150, 152, 3, 38, 19, 0, 151, 150, 1, 0, 0, 0, 152, 155, 1, 0, 0, 0, 153, 151, 1, 0, 0, 0, 153, 154, 1, 0, 0, 0, 154, 37, 1, 0, 0, 0, 155, 153, 1, 0, 0, 0, 156, 157, 7, 3, 0, 0, 157, 39, 1, 0, 0, 0, 14, 42, 51, 58, 65, 70, 75, 85, 94, 99, 106, 114, 124, 147, 153]

0 commit comments

Comments
 (0)