File tree Expand file tree Collapse file tree 1 file changed +7
-7
lines changed
Expand file tree Collapse file tree 1 file changed +7
-7
lines changed Original file line number Diff line number Diff line change @@ -75,14 +75,14 @@ struct Visitor<'a> {
7575}
7676
7777impl Visitor < ' _ > {
78- fn enter_node ( & mut self , node : Node ) {
78+ fn enter_node ( & mut self , node : Node ) -> bool {
7979 if node. is_error ( ) {
8080 println ! (
8181 "error: {}:{}: parse error" ,
8282 & self . path,
8383 node. start_position( ) . row,
8484 ) ;
85- return ;
85+ return false ;
8686 }
8787 if node. is_missing ( ) {
8888 println ! (
@@ -91,14 +91,15 @@ impl Visitor<'_> {
9191 node. start_position( ) . row,
9292 node. kind( )
9393 ) ;
94- return ;
94+ return false ;
9595 }
9696
9797 if node. is_extra ( ) {
98- return ;
98+ return false ;
9999 }
100100
101101 self . stack . push ( Vec :: new ( ) ) ;
102+ return true ;
102103 }
103104
104105 fn leave_node ( & mut self , field_name : Option < & ' static str > , node : Node ) {
@@ -281,13 +282,12 @@ fn traverse(tree: &Tree, visitor: &mut Visitor) {
281282 let mut recurse = true ;
282283 loop {
283284 if recurse && cursor. goto_first_child ( ) {
284- visitor. enter_node ( cursor. node ( ) ) ;
285+ recurse = visitor. enter_node ( cursor. node ( ) ) ;
285286 } else {
286287 visitor. leave_node ( cursor. field_name ( ) , cursor. node ( ) ) ;
287288
288289 if cursor. goto_next_sibling ( ) {
289- recurse = true ;
290- visitor. enter_node ( cursor. node ( ) ) ;
290+ recurse = visitor. enter_node ( cursor. node ( ) ) ;
291291 } else if cursor. goto_parent ( ) {
292292 recurse = false ;
293293 } else {
You can’t perform that action at this time.
0 commit comments