rust_analyzer/cli/parse.rs
1//! Read Rust code on stdin, print syntax tree on stdout.
2use ide::Edition;
3use syntax::{AstNode, SourceFile};
4
5use crate::cli::{flags, read_stdin};
6
7impl flags::Parse {
8 pub fn run(self) -> anyhow::Result<()> {
9 let _p = tracing::info_span!("flags::Parse::run").entered();
10 let text = read_stdin()?;
11 let file = SourceFile::parse(&text, Edition::CURRENT).tree();
12 if !self.no_dump {
13 println!("{:#?}", file.syntax());
14 }
15 std::mem::forget(file);
16 Ok(())
17 }
18}