rfmt 1.2.7 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +35 -0
- data/Cargo.lock +112 -185
- data/ext/rfmt/Cargo.toml +2 -2
- data/ext/rfmt/src/ast/mod.rs +92 -0
- data/ext/rfmt/src/emitter/mod.rs +305 -102
- data/lib/rfmt/prism_bridge.rb +56 -4
- data/lib/rfmt/version.rb +1 -1
- metadata +4 -5
- data/lib/rfmt/rfmt.so +0 -0
data/ext/rfmt/Cargo.toml
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "rfmt"
|
|
3
|
-
version = "1.
|
|
3
|
+
version = "1.3.1"
|
|
4
4
|
edition = "2021"
|
|
5
5
|
authors = ["fujitani sora <fujitanisora0414@gmail.com>"]
|
|
6
6
|
license = "MIT"
|
|
@@ -19,7 +19,7 @@ rb-sys = "0.9.117"
|
|
|
19
19
|
serde = { version = "1.0", features = ["derive"] }
|
|
20
20
|
serde_json = "1.0"
|
|
21
21
|
serde_yaml = "0.9"
|
|
22
|
-
rmp-serde = "1.
|
|
22
|
+
rmp-serde = "1.3"
|
|
23
23
|
|
|
24
24
|
# Error handling
|
|
25
25
|
thiserror = "1.0"
|
data/ext/rfmt/src/ast/mod.rs
CHANGED
|
@@ -180,6 +180,58 @@ pub enum NodeType {
|
|
|
180
180
|
KeywordRestParameterNode,
|
|
181
181
|
BlockParameterNode,
|
|
182
182
|
|
|
183
|
+
// Source metadata nodes
|
|
184
|
+
SourceFileNode,
|
|
185
|
+
SourceLineNode,
|
|
186
|
+
SourceEncodingNode,
|
|
187
|
+
|
|
188
|
+
// Pre/Post execution
|
|
189
|
+
PreExecutionNode,
|
|
190
|
+
PostExecutionNode,
|
|
191
|
+
|
|
192
|
+
// Numeric literals
|
|
193
|
+
RationalNode,
|
|
194
|
+
ImaginaryNode,
|
|
195
|
+
|
|
196
|
+
// String interpolation
|
|
197
|
+
EmbeddedVariableNode,
|
|
198
|
+
|
|
199
|
+
// Pattern matching patterns
|
|
200
|
+
ArrayPatternNode,
|
|
201
|
+
HashPatternNode,
|
|
202
|
+
FindPatternNode,
|
|
203
|
+
CapturePatternNode,
|
|
204
|
+
AlternationPatternNode,
|
|
205
|
+
PinnedExpressionNode,
|
|
206
|
+
PinnedVariableNode,
|
|
207
|
+
|
|
208
|
+
// Forwarding
|
|
209
|
+
ForwardingArgumentsNode,
|
|
210
|
+
ForwardingParameterNode,
|
|
211
|
+
NoKeywordsParameterNode,
|
|
212
|
+
|
|
213
|
+
// References
|
|
214
|
+
BackReferenceReadNode,
|
|
215
|
+
NumberedReferenceReadNode,
|
|
216
|
+
|
|
217
|
+
// Call/Index compound assignment
|
|
218
|
+
CallAndWriteNode,
|
|
219
|
+
CallOrWriteNode,
|
|
220
|
+
CallOperatorWriteNode,
|
|
221
|
+
IndexAndWriteNode,
|
|
222
|
+
IndexOrWriteNode,
|
|
223
|
+
IndexOperatorWriteNode,
|
|
224
|
+
|
|
225
|
+
// Match
|
|
226
|
+
MatchWriteNode,
|
|
227
|
+
MatchLastLineNode,
|
|
228
|
+
InterpolatedMatchLastLineNode,
|
|
229
|
+
|
|
230
|
+
// Other
|
|
231
|
+
FlipFlopNode,
|
|
232
|
+
ImplicitNode,
|
|
233
|
+
ImplicitRestNode,
|
|
234
|
+
|
|
183
235
|
Unknown(String),
|
|
184
236
|
}
|
|
185
237
|
|
|
@@ -290,6 +342,46 @@ impl NodeType {
|
|
|
290
342
|
"block_argument_node" => Self::BlockArgumentNode,
|
|
291
343
|
"multi_write_node" => Self::MultiWriteNode,
|
|
292
344
|
"multi_target_node" => Self::MultiTargetNode,
|
|
345
|
+
"source_file_node" => Self::SourceFileNode,
|
|
346
|
+
"source_line_node" => Self::SourceLineNode,
|
|
347
|
+
"source_encoding_node" => Self::SourceEncodingNode,
|
|
348
|
+
"pre_execution_node" => Self::PreExecutionNode,
|
|
349
|
+
"post_execution_node" => Self::PostExecutionNode,
|
|
350
|
+
// Numeric literals
|
|
351
|
+
"rational_node" => Self::RationalNode,
|
|
352
|
+
"imaginary_node" => Self::ImaginaryNode,
|
|
353
|
+
// String interpolation
|
|
354
|
+
"embedded_variable_node" => Self::EmbeddedVariableNode,
|
|
355
|
+
// Pattern matching patterns
|
|
356
|
+
"array_pattern_node" => Self::ArrayPatternNode,
|
|
357
|
+
"hash_pattern_node" => Self::HashPatternNode,
|
|
358
|
+
"find_pattern_node" => Self::FindPatternNode,
|
|
359
|
+
"capture_pattern_node" => Self::CapturePatternNode,
|
|
360
|
+
"alternation_pattern_node" => Self::AlternationPatternNode,
|
|
361
|
+
"pinned_expression_node" => Self::PinnedExpressionNode,
|
|
362
|
+
"pinned_variable_node" => Self::PinnedVariableNode,
|
|
363
|
+
// Forwarding
|
|
364
|
+
"forwarding_arguments_node" => Self::ForwardingArgumentsNode,
|
|
365
|
+
"forwarding_parameter_node" => Self::ForwardingParameterNode,
|
|
366
|
+
"no_keywords_parameter_node" => Self::NoKeywordsParameterNode,
|
|
367
|
+
// References
|
|
368
|
+
"back_reference_read_node" => Self::BackReferenceReadNode,
|
|
369
|
+
"numbered_reference_read_node" => Self::NumberedReferenceReadNode,
|
|
370
|
+
// Call/Index compound assignment
|
|
371
|
+
"call_and_write_node" => Self::CallAndWriteNode,
|
|
372
|
+
"call_or_write_node" => Self::CallOrWriteNode,
|
|
373
|
+
"call_operator_write_node" => Self::CallOperatorWriteNode,
|
|
374
|
+
"index_and_write_node" => Self::IndexAndWriteNode,
|
|
375
|
+
"index_or_write_node" => Self::IndexOrWriteNode,
|
|
376
|
+
"index_operator_write_node" => Self::IndexOperatorWriteNode,
|
|
377
|
+
// Match
|
|
378
|
+
"match_write_node" => Self::MatchWriteNode,
|
|
379
|
+
"match_last_line_node" => Self::MatchLastLineNode,
|
|
380
|
+
"interpolated_match_last_line_node" => Self::InterpolatedMatchLastLineNode,
|
|
381
|
+
// Other
|
|
382
|
+
"flip_flop_node" => Self::FlipFlopNode,
|
|
383
|
+
"implicit_node" => Self::ImplicitNode,
|
|
384
|
+
"implicit_rest_node" => Self::ImplicitRestNode,
|
|
293
385
|
_ => Self::Unknown(s.to_string()),
|
|
294
386
|
}
|
|
295
387
|
}
|