diff options
Diffstat (limited to 'crates/rust-analyzer/src/cli/parse.rs')
| -rw-r--r-- | crates/rust-analyzer/src/cli/parse.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/crates/rust-analyzer/src/cli/parse.rs b/crates/rust-analyzer/src/cli/parse.rs new file mode 100644 index 00000000000..5ef8cdff4cf --- /dev/null +++ b/crates/rust-analyzer/src/cli/parse.rs @@ -0,0 +1,17 @@ +//! Read Rust code on stdin, print syntax tree on stdout. +use syntax::{AstNode, SourceFile}; + +use crate::cli::{flags, read_stdin}; + +impl flags::Parse { + pub fn run(self) -> anyhow::Result<()> { + let _p = profile::span("parsing"); + let text = read_stdin()?; + let file = SourceFile::parse(&text).tree(); + if !self.no_dump { + println!("{:#?}", file.syntax()); + } + std::mem::forget(file); + Ok(()) + } +} |
