@@ -3,7 +3,6 @@ mod language;
33mod ql;
44mod ql_gen;
55
6- use clap;
76use language:: Language ;
87use std:: collections:: BTreeMap as Map ;
98use std:: collections:: BTreeSet as Set ;
@@ -33,22 +32,22 @@ fn make_field_type<'a>(
3332 . map ( |t| nodes. get ( t) . unwrap ( ) . dbscheme_name . as_str ( ) )
3433 . collect ( ) ;
3534 (
36- ql:: Type :: AtType ( & dbscheme_union) ,
35+ ql:: Type :: At ( dbscheme_union) ,
3736 Some ( dbscheme:: Entry :: Union ( dbscheme:: Union {
3837 name : dbscheme_union,
3938 members,
4039 } ) ) ,
4140 )
4241 }
4342 node_types:: FieldTypeInfo :: Single ( t) => {
44- let dbscheme_name = & nodes. get ( & t) . unwrap ( ) . dbscheme_name ;
45- ( ql:: Type :: AtType ( dbscheme_name) , None )
43+ let dbscheme_name = & nodes. get ( t) . unwrap ( ) . dbscheme_name ;
44+ ( ql:: Type :: At ( dbscheme_name) , None )
4645 }
4746 node_types:: FieldTypeInfo :: ReservedWordInt ( int_mapping) => {
4847 // The field will be an `int` in the db, and we add a case split to
4948 // create other db types for each integer value.
5049 let mut branches: Vec < ( usize , & ' a str ) > = Vec :: new ( ) ;
51- for ( _ , ( value, name) ) in int_mapping {
50+ for ( value, name) in int_mapping. values ( ) {
5251 branches. push ( ( * value, name) ) ;
5352 }
5453 let case = dbscheme:: Entry :: Case ( dbscheme:: Case {
@@ -74,12 +73,12 @@ fn add_field_for_table_storage<'a>(
7473 let parent_name = & nodes. get ( & field. parent ) . unwrap ( ) . dbscheme_name ;
7574 // This field can appear zero or multiple times, so put
7675 // it in an auxiliary table.
77- let ( field_ql_type, field_type_entry) = make_field_type ( parent_name, & field, nodes) ;
76+ let ( field_ql_type, field_type_entry) = make_field_type ( parent_name, field, nodes) ;
7877 let parent_column = dbscheme:: Column {
7978 unique : !has_index,
8079 db_type : dbscheme:: DbColumnType :: Int ,
81- name : & parent_name,
82- ql_type : ql:: Type :: AtType ( & parent_name) ,
80+ name : parent_name,
81+ ql_type : ql:: Type :: At ( parent_name) ,
8382 ql_type_is_ref : true ,
8483 } ;
8584 let index_column = dbscheme:: Column {
@@ -97,7 +96,7 @@ fn add_field_for_table_storage<'a>(
9796 ql_type_is_ref : true ,
9897 } ;
9998 let field_table = dbscheme:: Table {
100- name : & table_name,
99+ name : table_name,
101100 columns : if has_index {
102101 vec ! [ parent_column, index_column, field_column]
103102 } else {
@@ -106,7 +105,7 @@ fn add_field_for_table_storage<'a>(
106105 // In addition to the field being unique, the combination of
107106 // parent+index is unique, so add a keyset for them.
108107 keysets : if has_index {
109- Some ( vec ! [ & parent_name, "index" ] )
108+ Some ( vec ! [ parent_name, "index" ] )
110109 } else {
111110 None
112111 } ,
@@ -122,7 +121,7 @@ fn add_field_for_column_storage<'a>(
122121) -> ( dbscheme:: Column < ' a > , Option < dbscheme:: Entry < ' a > > ) {
123122 // This field must appear exactly once, so we add it as
124123 // a column to the main table for the node type.
125- let ( field_ql_type, field_type_entry) = make_field_type ( parent_name, & field, nodes) ;
124+ let ( field_ql_type, field_type_entry) = make_field_type ( parent_name, field, nodes) ;
126125 (
127126 dbscheme:: Column {
128127 unique : false ,
@@ -142,9 +141,9 @@ fn add_field_for_column_storage<'a>(
142141/// 2. A set of names of the members of the `<lang>_ast_node` union.
143142/// 3. A map where the keys are the dbscheme names for token kinds, and the
144143/// values are their integer representations.
145- fn convert_nodes < ' a > (
146- nodes : & ' a node_types:: NodeTypeMap ,
147- ) -> ( Vec < dbscheme:: Entry < ' a > > , Set < & ' a str > , Map < & ' a str , usize > ) {
144+ fn convert_nodes (
145+ nodes : & node_types:: NodeTypeMap ,
146+ ) -> ( Vec < dbscheme:: Entry > , Set < & str > , Map < & str , usize > ) {
148147 let mut entries: Vec < dbscheme:: Entry > = Vec :: new ( ) ;
149148 let mut ast_node_members: Set < & str > = Set :: new ( ) ;
150149 let token_kinds: Map < & str , usize > = nodes
@@ -156,7 +155,7 @@ fn convert_nodes<'a>(
156155 _ => None ,
157156 } )
158157 . collect ( ) ;
159- for ( _ , node) in nodes {
158+ for node in nodes. values ( ) {
160159 match & node. kind {
161160 node_types:: EntryKind :: Union { members : n_members } => {
162161 // It's a tree-sitter supertype node, for which we create a union
@@ -173,12 +172,12 @@ fn convert_nodes<'a>(
173172 node_types:: EntryKind :: Table { name, fields } => {
174173 // It's a product type, defined by a table.
175174 let mut main_table = dbscheme:: Table {
176- name : & name ,
175+ name,
177176 columns : vec ! [ dbscheme:: Column {
178177 db_type: dbscheme:: DbColumnType :: Int ,
179178 name: "id" ,
180179 unique: true ,
181- ql_type: ql:: Type :: AtType ( & node. dbscheme_name) ,
180+ ql_type: ql:: Type :: At ( & node. dbscheme_name) ,
182181 ql_type_is_ref: false ,
183182 } ] ,
184183 keysets : None ,
@@ -238,7 +237,7 @@ fn convert_nodes<'a>(
238237 unique : false ,
239238 db_type : dbscheme:: DbColumnType :: Int ,
240239 name : "loc" ,
241- ql_type : ql:: Type :: AtType ( "location" ) ,
240+ ql_type : ql:: Type :: At ( "location" ) ,
242241 ql_type_is_ref : true ,
243242 } ) ;
244243
@@ -264,14 +263,14 @@ fn create_ast_node_parent_table<'a>(name: &'a str, ast_node_name: &'a str) -> db
264263 db_type: dbscheme:: DbColumnType :: Int ,
265264 name: "child" ,
266265 unique: false ,
267- ql_type: ql:: Type :: AtType ( ast_node_name) ,
266+ ql_type: ql:: Type :: At ( ast_node_name) ,
268267 ql_type_is_ref: true ,
269268 } ,
270269 dbscheme:: Column {
271270 db_type: dbscheme:: DbColumnType :: Int ,
272271 name: "parent" ,
273272 unique: false ,
274- ql_type: ql:: Type :: AtType ( name) ,
273+ ql_type: ql:: Type :: At ( name) ,
275274 ql_type_is_ref: true ,
276275 } ,
277276 dbscheme:: Column {
@@ -295,7 +294,7 @@ fn create_tokeninfo<'a>(name: &'a str, type_name: &'a str) -> dbscheme::Table<'a
295294 db_type: dbscheme:: DbColumnType :: Int ,
296295 name: "id" ,
297296 unique: true ,
298- ql_type: ql:: Type :: AtType ( type_name) ,
297+ ql_type: ql:: Type :: At ( type_name) ,
299298 ql_type_is_ref: false ,
300299 } ,
301300 dbscheme:: Column {
@@ -316,7 +315,7 @@ fn create_tokeninfo<'a>(name: &'a str, type_name: &'a str) -> dbscheme::Table<'a
316315 unique: false ,
317316 db_type: dbscheme:: DbColumnType :: Int ,
318317 name: "loc" ,
319- ql_type: ql:: Type :: AtType ( "location" ) ,
318+ ql_type: ql:: Type :: At ( "location" ) ,
320319 ql_type_is_ref: true ,
321320 } ,
322321 ] ,
@@ -329,9 +328,9 @@ fn create_token_case<'a>(name: &'a str, token_kinds: Map<&'a str, usize>) -> dbs
329328 . map ( |( & name, kind_id) | ( * kind_id, name) )
330329 . collect ( ) ;
331330 dbscheme:: Case {
332- name : name ,
331+ name,
333332 column : "kind" ,
334- branches : branches ,
333+ branches,
335334 }
336335}
337336
@@ -351,7 +350,7 @@ fn create_files_table<'a>() -> dbscheme::Entry<'a> {
351350 unique: true ,
352351 db_type: dbscheme:: DbColumnType :: Int ,
353352 name: "id" ,
354- ql_type: ql:: Type :: AtType ( "file" ) ,
353+ ql_type: ql:: Type :: At ( "file" ) ,
355354 ql_type_is_ref: false ,
356355 } ,
357356 dbscheme:: Column {
@@ -373,7 +372,7 @@ fn create_folders_table<'a>() -> dbscheme::Entry<'a> {
373372 unique: true ,
374373 db_type: dbscheme:: DbColumnType :: Int ,
375374 name: "id" ,
376- ql_type: ql:: Type :: AtType ( "folder" ) ,
375+ ql_type: ql:: Type :: At ( "folder" ) ,
377376 ql_type_is_ref: false ,
378377 } ,
379378 dbscheme:: Column {
@@ -396,14 +395,14 @@ fn create_locations_default_table<'a>() -> dbscheme::Entry<'a> {
396395 unique: true ,
397396 db_type: dbscheme:: DbColumnType :: Int ,
398397 name: "id" ,
399- ql_type: ql:: Type :: AtType ( "location_default" ) ,
398+ ql_type: ql:: Type :: At ( "location_default" ) ,
400399 ql_type_is_ref: false ,
401400 } ,
402401 dbscheme:: Column {
403402 unique: false ,
404403 db_type: dbscheme:: DbColumnType :: Int ,
405404 name: "file" ,
406- ql_type: ql:: Type :: AtType ( "file" ) ,
405+ ql_type: ql:: Type :: At ( "file" ) ,
407406 ql_type_is_ref: true ,
408407 } ,
409408 dbscheme:: Column {
@@ -453,14 +452,14 @@ fn create_containerparent_table<'a>() -> dbscheme::Entry<'a> {
453452 unique: false ,
454453 db_type: dbscheme:: DbColumnType :: Int ,
455454 name: "parent" ,
456- ql_type: ql:: Type :: AtType ( "container" ) ,
455+ ql_type: ql:: Type :: At ( "container" ) ,
457456 ql_type_is_ref: true ,
458457 } ,
459458 dbscheme:: Column {
460459 unique: true ,
461460 db_type: dbscheme:: DbColumnType :: Int ,
462461 name: "child" ,
463- ql_type: ql:: Type :: AtType ( "container" ) ,
462+ ql_type: ql:: Type :: At ( "container" ) ,
464463 ql_type_is_ref: true ,
465464 } ,
466465 ] ,
@@ -491,7 +490,7 @@ fn create_diagnostics<'a>() -> (dbscheme::Case<'a>, dbscheme::Table<'a>) {
491490 unique: true ,
492491 db_type: dbscheme:: DbColumnType :: Int ,
493492 name: "id" ,
494- ql_type: ql:: Type :: AtType ( "diagnostic" ) ,
493+ ql_type: ql:: Type :: At ( "diagnostic" ) ,
495494 ql_type_is_ref: false ,
496495 } ,
497496 dbscheme:: Column {
@@ -526,7 +525,7 @@ fn create_diagnostics<'a>() -> (dbscheme::Case<'a>, dbscheme::Table<'a>) {
526525 unique: false ,
527526 db_type: dbscheme:: DbColumnType :: Int ,
528527 name: "location" ,
529- ql_type: ql:: Type :: AtType ( "location_default" ) ,
528+ ql_type: ql:: Type :: At ( "location_default" ) ,
530529 ql_type_is_ref: true ,
531530 } ,
532531 ] ,
@@ -625,7 +624,7 @@ fn main() -> std::io::Result<()> {
625624 let token_name = format ! ( "{}_token" , & prefix) ;
626625 let tokeninfo_name = format ! ( "{}_tokeninfo" , & prefix) ;
627626 let reserved_word_name = format ! ( "{}_reserved_word" , & prefix) ;
628- let nodes = node_types:: read_node_types_str ( & prefix, & language. node_types ) ?;
627+ let nodes = node_types:: read_node_types_str ( & prefix, language. node_types ) ?;
629628 let ( dbscheme_entries, mut ast_node_members, token_kinds) = convert_nodes ( & nodes) ;
630629 ast_node_members. insert ( & token_name) ;
631630 dbscheme:: write ( & mut dbscheme_writer, & dbscheme_entries) ?;
0 commit comments