@@ -11,6 +11,7 @@ pub fn create_ast_node_class<'a>(ast_node: &'a str, node_info_table: &'a str) ->
11
11
) ) ,
12
12
name : "toString" ,
13
13
overridden : false ,
14
+ is_final : false ,
14
15
return_type : Some ( ql:: Type :: String ) ,
15
16
formal_parameters : vec ! [ ] ,
16
17
body : ql:: Expression :: Equals (
@@ -26,6 +27,7 @@ pub fn create_ast_node_class<'a>(ast_node: &'a str, node_info_table: &'a str) ->
26
27
name : "getLocation" ,
27
28
qldoc : Some ( String :: from ( "Gets the location of this element." ) ) ,
28
29
overridden : false ,
30
+ is_final : true ,
29
31
return_type : Some ( ql:: Type :: Normal ( "L::Location" ) ) ,
30
32
formal_parameters : vec ! [ ] ,
31
33
body : ql:: Expression :: Pred (
@@ -48,6 +50,7 @@ pub fn create_ast_node_class<'a>(ast_node: &'a str, node_info_table: &'a str) ->
48
50
qldoc : Some ( String :: from ( "Gets the parent of this element." ) ) ,
49
51
name : "getParent" ,
50
52
overridden : false ,
53
+ is_final : true ,
51
54
return_type : Some ( ql:: Type :: Normal ( "AstNode" ) ) ,
52
55
formal_parameters : vec ! [ ] ,
53
56
body : ql:: Expression :: Pred (
@@ -66,6 +69,7 @@ pub fn create_ast_node_class<'a>(ast_node: &'a str, node_info_table: &'a str) ->
66
69
) ) ,
67
70
name : "getParentIndex" ,
68
71
overridden : false ,
72
+ is_final : true ,
69
73
return_type : Some ( ql:: Type :: Int ) ,
70
74
formal_parameters : vec ! [ ] ,
71
75
body : ql:: Expression :: Pred (
@@ -84,6 +88,7 @@ pub fn create_ast_node_class<'a>(ast_node: &'a str, node_info_table: &'a str) ->
84
88
) ) ,
85
89
name : "getAPrimaryQlClass" ,
86
90
overridden : false ,
91
+ is_final : false ,
87
92
return_type : Some ( ql:: Type :: String ) ,
88
93
formal_parameters : vec ! [ ] ,
89
94
body : ql:: Expression :: Equals (
@@ -99,6 +104,7 @@ pub fn create_ast_node_class<'a>(ast_node: &'a str, node_info_table: &'a str) ->
99
104
) ,
100
105
name : "getPrimaryQlClasses" ,
101
106
overridden : false ,
107
+ is_final : false ,
102
108
return_type : Some ( ql:: Type :: String ) ,
103
109
formal_parameters : vec ! [ ] ,
104
110
body : ql:: Expression :: Equals (
@@ -140,6 +146,7 @@ pub fn create_token_class<'a>(token_type: &'a str, tokeninfo: &'a str) -> ql::Cl
140
146
qldoc : Some ( String :: from ( "Gets the value of this token." ) ) ,
141
147
name : "getValue" ,
142
148
overridden : false ,
149
+ is_final : true ,
143
150
return_type : Some ( ql:: Type :: String ) ,
144
151
formal_parameters : vec ! [ ] ,
145
152
body : create_get_field_expr_for_column_storage ( "result" , tokeninfo, 1 , tokeninfo_arity) ,
@@ -150,6 +157,7 @@ pub fn create_token_class<'a>(token_type: &'a str, tokeninfo: &'a str) -> ql::Cl
150
157
) ) ,
151
158
name : "toString" ,
152
159
overridden : true ,
160
+ is_final : true ,
153
161
return_type : Some ( ql:: Type :: String ) ,
154
162
formal_parameters : vec ! [ ] ,
155
163
body : ql:: Expression :: Equals (
@@ -173,15 +181,15 @@ pub fn create_token_class<'a>(token_type: &'a str, tokeninfo: &'a str) -> ql::Cl
173
181
get_value,
174
182
//get_location,
175
183
to_string,
176
- create_get_a_primary_ql_class( "Token" ) ,
184
+ create_get_a_primary_ql_class( "Token" , false ) ,
177
185
] ,
178
186
}
179
187
}
180
188
181
189
// Creates the `ReservedWord` class.
182
190
pub fn create_reserved_word_class ( db_name : & str ) -> ql:: Class {
183
191
let class_name = "ReservedWord" ;
184
- let get_a_primary_ql_class = create_get_a_primary_ql_class ( class_name) ;
192
+ let get_a_primary_ql_class = create_get_a_primary_ql_class ( class_name, true ) ;
185
193
ql:: Class {
186
194
qldoc : Some ( String :: from ( "A reserved word." ) ) ,
187
195
name : class_name,
@@ -205,6 +213,7 @@ fn create_none_predicate<'a>(
205
213
qldoc,
206
214
name,
207
215
overridden,
216
+ is_final : false ,
208
217
return_type,
209
218
formal_parameters : Vec :: new ( ) ,
210
219
body : ql:: Expression :: Pred ( "none" , vec ! [ ] ) ,
@@ -213,13 +222,14 @@ fn create_none_predicate<'a>(
213
222
214
223
/// Creates an overridden `getAPrimaryQlClass` predicate that returns the given
215
224
/// name.
216
- fn create_get_a_primary_ql_class ( class_name : & str ) -> ql:: Predicate {
225
+ fn create_get_a_primary_ql_class ( class_name : & str , is_final : bool ) -> ql:: Predicate {
217
226
ql:: Predicate {
218
227
qldoc : Some ( String :: from (
219
228
"Gets the name of the primary QL class for this element." ,
220
229
) ) ,
221
230
name : "getAPrimaryQlClass" ,
222
231
overridden : true ,
232
+ is_final,
223
233
return_type : Some ( ql:: Type :: String ) ,
224
234
formal_parameters : vec ! [ ] ,
225
235
body : ql:: Expression :: Equals (
@@ -428,6 +438,7 @@ fn create_field_getters<'a>(
428
438
qldoc : Some ( qldoc) ,
429
439
name : & field. getter_name ,
430
440
overridden : false ,
441
+ is_final : true ,
431
442
return_type,
432
443
formal_parameters,
433
444
body,
@@ -452,7 +463,8 @@ pub fn convert_nodes(nodes: &node_types::NodeTypeMap) -> Vec<ql::TopLevel> {
452
463
match & node. kind {
453
464
node_types:: EntryKind :: Token { kind_id : _ } => {
454
465
if type_name. named {
455
- let get_a_primary_ql_class = create_get_a_primary_ql_class ( & node. ql_class_name ) ;
466
+ let get_a_primary_ql_class =
467
+ create_get_a_primary_ql_class ( & node. ql_class_name , true ) ;
456
468
let mut supertypes: BTreeSet < ql:: Type > = BTreeSet :: new ( ) ;
457
469
supertypes. insert ( ql:: Type :: At ( & node. dbscheme_name ) ) ;
458
470
supertypes. insert ( ql:: Type :: Normal ( "Token" ) ) ;
@@ -511,7 +523,7 @@ pub fn convert_nodes(nodes: &node_types::NodeTypeMap) -> Vec<ql::TopLevel> {
511
523
. into_iter ( )
512
524
. collect ( ) ,
513
525
characteristic_predicate : None ,
514
- predicates : vec ! [ create_get_a_primary_ql_class( main_class_name) ] ,
526
+ predicates : vec ! [ create_get_a_primary_ql_class( main_class_name, true ) ] ,
515
527
} ;
516
528
517
529
let mut main_table_column_index: usize = 0 ;
@@ -539,6 +551,7 @@ pub fn convert_nodes(nodes: &node_types::NodeTypeMap) -> Vec<ql::TopLevel> {
539
551
qldoc : Some ( String :: from ( "Gets a field or child node of this node." ) ) ,
540
552
name : "getAFieldOrChild" ,
541
553
overridden : true ,
554
+ is_final : true ,
542
555
return_type : Some ( ql:: Type :: Normal ( "AstNode" ) ) ,
543
556
formal_parameters : vec ! [ ] ,
544
557
body : ql:: Expression :: Or ( get_child_exprs) ,
0 commit comments