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}