From 05ad469ac33965f76ccc0f5b8a9959695b8979a0 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Mon, 22 Jan 2018 02:12:26 +0300 Subject: Command-line utilty to print the parse tree --- tests/parser.rs | 34 ++-------------------------------- 1 file changed, 2 insertions(+), 32 deletions(-) (limited to 'tests') diff --git a/tests/parser.rs b/tests/parser.rs index 02cef938d..370b02c74 100644 --- a/tests/parser.rs +++ b/tests/parser.rs @@ -2,9 +2,8 @@ extern crate file; extern crate libsyntax2; extern crate testutils; -use std::fmt::Write; - -use libsyntax2::{tokenize, parse, Node, File}; +use libsyntax2::{tokenize, parse}; +use libsyntax2::utils::dump_tree; use testutils::dir_tests; #[test] @@ -18,32 +17,3 @@ fn parser_tests() { } ) } - -fn dump_tree(file: &File) -> String { - let mut result = String::new(); - go(file.root(), &mut result, 0); - return result; - - fn go(node: Node, buff: &mut String, level: usize) { - buff.push_str(&String::from(" ").repeat(level)); - write!(buff, "{:?}\n", node).unwrap(); - let my_errors = node.errors().filter(|e| e.after_child().is_none()); - let parent_errors = node.parent().into_iter() - .flat_map(|n| n.errors()) - .filter(|e| e.after_child() == Some(node)); - - for err in my_errors { - buff.push_str(&String::from(" ").repeat(level)); - write!(buff, "err: `{}`\n", err.message()).unwrap(); - } - - for child in node.children() { - go(child, buff, level + 1) - } - - for err in parent_errors { - buff.push_str(&String::from(" ").repeat(level)); - write!(buff, "err: `{}`\n", err.message()).unwrap(); - } - } -} -- cgit v1.2.3