aiken/crates/cli/src/main.rs

60 lines
1.0 KiB
Rust

use uplc::{
ast::{DeBruijn, NamedDeBruijn, Program},
parser,
};
use neptune::Cli;
fn main() -> anyhow::Result<()> {
let args = Cli::default();
let code = std::fs::read_to_string(&args.input)?;
let program = parser::program(&code)?;
println!("\nName:");
println!("{:#?}", program);
let flat_bytes = program.to_flat()?;
print!("\nflat bits:\n");
for byte in flat_bytes {
print!("{:08b} ", byte);
}
println!();
let program_nd: Program<NamedDeBruijn> = program.try_into()?;
println!("\nNamed De Bruijn:");
println!("{:#?}", program_nd);
let flat_bytes = program_nd.to_flat()?;
print!("\nflat bits:\n");
for byte in flat_bytes {
print!("{:08b} ", byte);
}
println!();
let program_d: Program<DeBruijn> = program_nd.into();
println!("\nDe Bruijn:");
println!("{:#?}", program_d);
let flat_bytes = program_d.to_flat()?;
print!("\nflat bits:\n");
for byte in flat_bytes {
print!("{:08b} ", byte);
}
println!();
Ok(())
}