use std::path::PathBuf;
use clap::Parser;

#[macro_use]
extern crate derive_builder;

mod ast;
mod ast_builder;
mod params;

use params::Params;
use ast_builder::AstBuilder;

#[derive(Parser)]
#[command(author, version, about, long_about = None)]
struct Args {
    config: PathBuf,
}

fn main() {
    let args = Args::parse();
    let params = Params::parse(&args.config);
    let builder = AstBuilder::from(params);

    println!("{}", builder.to_string());
}