Skip to main content

darklua_core/process/
node_processor.rs

1use crate::nodes::*;
2
3/// Used by the NodeVisitor trait, a NodeProcessor object is passed to each node to
4/// perform mutations.
5pub trait NodeProcessor {
6    fn process_block(&mut self, _: &mut Block) {}
7    fn process_scope(&mut self, _block: &mut Block, _extra: Option<&mut Expression>) {}
8    fn process_statement(&mut self, _: &mut Statement) {}
9
10    fn process_function_call(&mut self, _: &mut FunctionCall) {}
11
12    fn process_assign_statement(&mut self, _: &mut AssignStatement) {}
13    fn process_compound_assign_statement(&mut self, _: &mut CompoundAssignStatement) {}
14    fn process_do_statement(&mut self, _: &mut DoStatement) {}
15    fn process_function_statement(&mut self, _: &mut FunctionStatement) {}
16    fn process_generic_for_statement(&mut self, _: &mut GenericForStatement) {}
17    fn process_if_statement(&mut self, _: &mut IfStatement) {}
18    fn process_last_statement(&mut self, _: &mut LastStatement) {}
19    fn process_local_assign_statement(&mut self, _: &mut LocalAssignStatement) {}
20    fn process_local_function_statement(&mut self, _: &mut LocalFunctionStatement) {}
21    fn process_numeric_for_statement(&mut self, _: &mut NumericForStatement) {}
22    fn process_repeat_statement(&mut self, _: &mut RepeatStatement) {}
23    fn process_while_statement(&mut self, _: &mut WhileStatement) {}
24    fn process_type_declaration(&mut self, _: &mut TypeDeclarationStatement) {}
25    fn process_type_function(&mut self, _: &mut TypeFunctionStatement) {}
26
27    fn process_variable(&mut self, _: &mut Variable) {}
28
29    fn process_attributes(&mut self, _: &mut Attributes) {}
30    fn process_literal_table(&mut self, _: &mut LiteralTable) {}
31    fn process_literal_expression(&mut self, _: &mut LiteralExpression) {}
32
33    fn process_expression(&mut self, _: &mut Expression) {}
34
35    fn process_binary_expression(&mut self, _: &mut BinaryExpression) {}
36    fn process_field_expression(&mut self, _: &mut FieldExpression) {}
37    fn process_function_expression(&mut self, _: &mut FunctionExpression) {}
38    fn process_variable_expression(&mut self, _: &mut Identifier) {}
39    fn process_index_expression(&mut self, _: &mut IndexExpression) {}
40    fn process_if_expression(&mut self, _: &mut IfExpression) {}
41    fn process_number_expression(&mut self, _: &mut NumberExpression) {}
42    fn process_prefix_expression(&mut self, _: &mut Prefix) {}
43    fn process_parenthese_expression(&mut self, _: &mut ParentheseExpression) {}
44    fn process_string_expression(&mut self, _: &mut StringExpression) {}
45    fn process_interpolated_string_expression(&mut self, _: &mut InterpolatedStringExpression) {}
46    fn process_table_expression(&mut self, _: &mut TableExpression) {}
47    fn process_unary_expression(&mut self, _: &mut UnaryExpression) {}
48    fn process_type_cast_expression(&mut self, _: &mut TypeCastExpression) {}
49
50    fn process_type(&mut self, _: &mut Type) {}
51
52    fn process_type_name(&mut self, _: &mut TypeName) {}
53    fn process_type_field(&mut self, _: &mut TypeField) {}
54    fn process_string_type(&mut self, _: &mut StringType) {}
55    fn process_array_type(&mut self, _: &mut ArrayType) {}
56    fn process_table_type(&mut self, _: &mut TableType) {}
57    fn process_expression_type(&mut self, _: &mut ExpressionType) {}
58    fn process_parenthese_type(&mut self, _: &mut ParentheseType) {}
59    fn process_function_type(&mut self, _: &mut FunctionType) {}
60    fn process_optional_type(&mut self, _: &mut OptionalType) {}
61    fn process_intersection_type(&mut self, _: &mut IntersectionType) {}
62    fn process_union_type(&mut self, _: &mut UnionType) {}
63
64    fn process_type_pack(&mut self, _: &mut TypePack) {}
65    fn process_generic_type_pack(&mut self, _: &mut GenericTypePack) {}
66    fn process_variadic_type_pack(&mut self, _: &mut VariadicTypePack) {}
67}
68
69pub trait NodePostProcessor {
70    fn process_after_block(&mut self, _: &mut Block) {}
71    fn process_after_scope(&mut self, _block: &mut Block, _extra: Option<&mut Expression>) {}
72    fn process_after_statement(&mut self, _: &mut Statement) {}
73
74    fn process_after_function_call(&mut self, _: &mut FunctionCall) {}
75
76    fn process_after_assign_statement(&mut self, _: &mut AssignStatement) {}
77    fn process_after_compound_assign_statement(&mut self, _: &mut CompoundAssignStatement) {}
78    fn process_after_do_statement(&mut self, _: &mut DoStatement) {}
79    fn process_after_function_statement(&mut self, _: &mut FunctionStatement) {}
80    fn process_after_generic_for_statement(&mut self, _: &mut GenericForStatement) {}
81    fn process_after_if_statement(&mut self, _: &mut IfStatement) {}
82    fn process_after_last_statement(&mut self, _: &mut LastStatement) {}
83    fn process_after_local_assign_statement(&mut self, _: &mut LocalAssignStatement) {}
84    fn process_after_local_function_statement(&mut self, _: &mut LocalFunctionStatement) {}
85    fn process_after_numeric_for_statement(&mut self, _: &mut NumericForStatement) {}
86    fn process_after_repeat_statement(&mut self, _: &mut RepeatStatement) {}
87    fn process_after_while_statement(&mut self, _: &mut WhileStatement) {}
88    fn process_after_type_declaration(&mut self, _: &mut TypeDeclarationStatement) {}
89    fn process_after_type_function(&mut self, _: &mut TypeFunctionStatement) {}
90
91    fn process_after_variable(&mut self, _: &mut Variable) {}
92
93    fn process_after_attributes(&mut self, _: &mut Attributes) {}
94    fn process_after_literal_table(&mut self, _: &mut LiteralTable) {}
95    fn process_after_literal_expression(&mut self, _: &mut LiteralExpression) {}
96
97    fn process_after_expression(&mut self, _: &mut Expression) {}
98
99    fn process_after_binary_expression(&mut self, _: &mut BinaryExpression) {}
100    fn process_after_field_expression(&mut self, _: &mut FieldExpression) {}
101    fn process_after_function_expression(&mut self, _: &mut FunctionExpression) {}
102    fn process_after_variable_expression(&mut self, _: &mut Identifier) {}
103    fn process_after_index_expression(&mut self, _: &mut IndexExpression) {}
104    fn process_after_if_expression(&mut self, _: &mut IfExpression) {}
105    fn process_after_number_expression(&mut self, _: &mut NumberExpression) {}
106    fn process_after_prefix_expression(&mut self, _: &mut Prefix) {}
107    fn process_after_parenthese_expression(&mut self, _: &mut ParentheseExpression) {}
108    fn process_after_string_expression(&mut self, _: &mut StringExpression) {}
109    fn process_after_interpolated_string_expression(
110        &mut self,
111        _: &mut InterpolatedStringExpression,
112    ) {
113    }
114    fn process_after_table_expression(&mut self, _: &mut TableExpression) {}
115    fn process_after_unary_expression(&mut self, _: &mut UnaryExpression) {}
116    fn process_after_type_cast_expression(&mut self, _: &mut TypeCastExpression) {}
117
118    fn process_after_type(&mut self, _: &mut Type) {}
119
120    fn process_after_type_name(&mut self, _: &mut TypeName) {}
121    fn process_after_type_field(&mut self, _: &mut TypeField) {}
122    fn process_after_string_type(&mut self, _: &mut StringType) {}
123    fn process_after_array_type(&mut self, _: &mut ArrayType) {}
124    fn process_after_table_type(&mut self, _: &mut TableType) {}
125    fn process_after_expression_type(&mut self, _: &mut ExpressionType) {}
126    fn process_after_parenthese_type(&mut self, _: &mut ParentheseType) {}
127    fn process_after_function_type(&mut self, _: &mut FunctionType) {}
128    fn process_after_optional_type(&mut self, _: &mut OptionalType) {}
129    fn process_after_intersection_type(&mut self, _: &mut IntersectionType) {}
130    fn process_after_union_type(&mut self, _: &mut UnionType) {}
131
132    fn process_after_type_pack(&mut self, _: &mut TypePack) {}
133    fn process_after_generic_type_pack(&mut self, _: &mut GenericTypePack) {}
134    fn process_after_variadic_type_pack(&mut self, _: &mut VariadicTypePack) {}
135}