File tree Expand file tree Collapse file tree 7 files changed +158
-28
lines changed
Expand file tree Collapse file tree 7 files changed +158
-28
lines changed Original file line number Diff line number Diff line change @@ -51,6 +51,7 @@ const ALL_LIST_KINDS: &[SyntaxKind] = &[
5151 SyntaxKind :: TARGET_LIST ,
5252 SyntaxKind :: TRANSACTION_MODE_LIST ,
5353 SyntaxKind :: VACUUM_OPTION_LIST ,
54+ SyntaxKind :: VARIANT_LIST ,
5455 // only separated by whitespace
5556 // SyntaxKind::XML_COLUMN_OPTION_LIST,
5657 SyntaxKind :: XML_TABLE_COLUMN_LIST ,
572573 TARGET_LIST,
573574 TRANSACTION_MODE_LIST,
574575 VACUUM_OPTION_LIST,
576+ VARIANT_LIST,
575577 XML_TABLE_COLUMN_LIST,
576578 ]
577579 " ) ;
Original file line number Diff line number Diff line change @@ -12926,15 +12926,7 @@ fn create_type(p: &mut Parser<'_>) -> CompletedMarker {
1292612926 if p. eat ( AS_KW ) {
1292712927 // AS ENUM
1292812928 if p. eat ( ENUM_KW ) {
12929- delimited (
12930- p,
12931- L_PAREN ,
12932- R_PAREN ,
12933- COMMA ,
12934- || "unexpected comma" . to_string ( ) ,
12935- STRING_FIRST ,
12936- |p| opt_string_literal ( p) . is_some ( ) ,
12937- ) ;
12929+ variant_list ( p) ;
1293812930 // AS RANGE
1293912931 } else if p. eat ( RANGE_KW ) {
1294012932 attribute_list ( p) ;
@@ -12959,6 +12951,30 @@ fn create_type(p: &mut Parser<'_>) -> CompletedMarker {
1295912951 m. complete ( p, CREATE_TYPE )
1296012952}
1296112953
12954+ fn opt_variant ( p : & mut Parser < ' _ > ) -> bool {
12955+ let m = p. start ( ) ;
12956+ if opt_string_literal ( p) . is_none ( ) {
12957+ m. abandon ( p) ;
12958+ return false ;
12959+ }
12960+ m. complete ( p, VARIANT ) ;
12961+ true
12962+ }
12963+
12964+ fn variant_list ( p : & mut Parser < ' _ > ) {
12965+ let m = p. start ( ) ;
12966+ delimited (
12967+ p,
12968+ L_PAREN ,
12969+ R_PAREN ,
12970+ COMMA ,
12971+ || "unexpected comma" . to_string ( ) ,
12972+ STRING_FIRST ,
12973+ opt_variant,
12974+ ) ;
12975+ m. complete ( p, VARIANT_LIST ) ;
12976+ }
12977+
1296212978// CREATE EXTENSION [ IF NOT EXISTS ] extension_name
1296312979// [ WITH ] [ SCHEMA schema_name ]
1296412980// [ VERSION version ]
Original file line number Diff line number Diff line change @@ -125,8 +125,9 @@ SOURCE_FILE
125125 WHITESPACE " "
126126 ENUM_KW " enum"
127127 WHITESPACE " "
128- L_PAREN " ("
129- R_PAREN " )"
128+ VARIANT_LIST
129+ L_PAREN " ("
130+ R_PAREN " )"
130131 SEMICOLON " ;"
131132 WHITESPACE " \n "
132133 CREATE_TYPE
@@ -143,10 +144,12 @@ SOURCE_FILE
143144 WHITESPACE " "
144145 ENUM_KW " enum"
145146 WHITESPACE " "
146- L_PAREN " ("
147- LITERAL
148- STRING " 'a'"
149- R_PAREN " )"
147+ VARIANT_LIST
148+ L_PAREN " ("
149+ VARIANT
150+ LITERAL
151+ STRING " 'a'"
152+ R_PAREN " )"
150153 SEMICOLON " ;"
151154 WHITESPACE " \n "
152155 CREATE_TYPE
@@ -163,18 +166,22 @@ SOURCE_FILE
163166 WHITESPACE " "
164167 ENUM_KW " enum"
165168 WHITESPACE " "
166- L_PAREN " ("
167- LITERAL
168- STRING " 'a'"
169- COMMA " ,"
170- WHITESPACE " "
171- LITERAL
172- STRING " 'b'"
173- COMMA " ,"
174- WHITESPACE " "
175- LITERAL
176- STRING " 'c'"
177- R_PAREN " )"
169+ VARIANT_LIST
170+ L_PAREN " ("
171+ VARIANT
172+ LITERAL
173+ STRING " 'a'"
174+ COMMA " ,"
175+ WHITESPACE " "
176+ VARIANT
177+ LITERAL
178+ STRING " 'b'"
179+ COMMA " ,"
180+ WHITESPACE " "
181+ VARIANT
182+ LITERAL
183+ STRING " 'c'"
184+ R_PAREN " )"
178185 SEMICOLON " ;"
179186 WHITESPACE " \n\n "
180187 COMMENT " -- create_type_as_range"
Original file line number Diff line number Diff line change @@ -1627,6 +1627,19 @@ IndexParams =
16271627CreateType =
16281628 'create' 'type' Type
16291629
1630+ (('as' 'enum' VariantList)
1631+ | ('as' 'range' )
1632+ | ('as' '(' ')')
1633+ | ('(' ')'))
1634+
1635+ VariantList =
1636+ '('
1637+ (Variant (',' Variant)*)
1638+ ')'
1639+
1640+ Variant =
1641+ Literal
1642+
16301643CreateExtension =
16311644 'create' 'extension'
16321645
Original file line number Diff line number Diff line change @@ -40,7 +40,7 @@ pub fn dump_tokens(text: String) -> String {
4040 out
4141}
4242
43- #[ allow ( dead_code ) ]
43+ #[ expect ( unused ) ]
4444#[ derive( Serialize ) ]
4545enum Severity {
4646 Hint ,
You can’t perform that action at this time.
0 commit comments