summaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs
new file mode 100644
index 0000000..5ec8f34
--- /dev/null
+++ b/src/main.rs
@@ -0,0 +1,25 @@
+use std::env;
+use std::fs::File;
+use std::io::Read;
+use std::process;
+
+fn main() {
+ let mut args = env::args();
+ let _ = args.next(); // executable name
+
+ let filename = match (args.next(), args.next()) {
+ (Some(filename), None) => filename,
+ _ => {
+ eprintln!("Usage: dump-syntax path/to/filename.rs");
+ process::exit(1);
+ }
+ };
+
+ let mut file = File::open(&filename).expect("Unable to open file");
+
+ let mut src = String::new();
+ file.read_to_string(&mut src).expect("Unable to read file");
+
+ let syntax = syn::parse_file(&src).expect("Unable to parse file");
+ println!("{:#?}", syntax);
+}