mirror of
https://codeberg.org/demostf/parser.git
synced 2026-06-03 18:24:05 +02:00
merge codegen into main crate
This commit is contained in:
parent
c08f30a60c
commit
1a549b7c40
14 changed files with 261 additions and 890 deletions
30
src/bin/codegen.rs
Normal file
30
src/bin/codegen.rs
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
use main_error::MainError;
|
||||
use prettyplease::unparse;
|
||||
use std::env;
|
||||
use std::fs;
|
||||
use syn::{parse2, File};
|
||||
use tf_demo_parser::codegen::gameevent::generate_game_events;
|
||||
use tf_demo_parser::codegen::propnames::generate_prop_names;
|
||||
use tf_demo_parser::Demo;
|
||||
|
||||
fn main() -> std::result::Result<(), MainError> {
|
||||
better_panic::install();
|
||||
|
||||
let args: Vec<_> = env::args().collect();
|
||||
if args.len() < 2 {
|
||||
println!("1 argument required");
|
||||
return Ok(());
|
||||
}
|
||||
let path = args[1].clone();
|
||||
let file = fs::read(path).expect("Unable to read file");
|
||||
let demo = Demo::new(&file);
|
||||
let tokens = match args.get(2).map(|s| s.as_str()) {
|
||||
None | Some("events") => generate_game_events(demo),
|
||||
Some("props") => generate_prop_names(demo),
|
||||
_ => panic!("unsupported"),
|
||||
};
|
||||
let file = parse2::<File>(tokens)?;
|
||||
let code = unparse(&file);
|
||||
println!("{}", code);
|
||||
Ok(())
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue