oxilean_parse/ast_impl/
renametransformext_traits.rs1#[allow(unused_imports)]
12use crate::ast::{SimpleNodeKindExt, TreeNodeExt};
13
14use super::functions::TreeTransformExt;
15use super::types::RenameTransformExt;
16
17impl TreeTransformExt for RenameTransformExt {
18 fn transform(&mut self, node: TreeNodeExt) -> TreeNodeExt {
19 if node.kind == SimpleNodeKindExt::Leaf && node.label == self.from {
20 self.count += 1;
21 return TreeNodeExt::leaf(&self.to.clone());
22 }
23 let new_children = node
24 .children
25 .into_iter()
26 .map(|c| self.transform(c))
27 .collect();
28 TreeNodeExt {
29 kind: node.kind,
30 label: node.label,
31 children: new_children,
32 }
33 }
34}