use hermes_parser::{parse_named, ParseFlags};
fn main() {
let path = std::env::args().nth(1);
let (name, source) = match &path {
Some(p) => (
p.as_str(),
std::fs::read_to_string(p).unwrap_or_else(|e| {
eprintln!("cannot read '{p}': {e}");
std::process::exit(1);
}),
),
None => (
"<builtin>",
"function greet(name) { return 'Hello, ' + name; }".to_string(),
),
};
let flags = ParseFlags::default();
match parse_named(&source, name, flags) {
Ok(mut parsed) => print!("{}", parsed.to_estree_json(true)),
Err(e) => {
for m in e.messages() {
eprint!("{m}");
}
std::process::exit(1);
}
}
}