rcpp 0.1.3

An attempt to implement the C++20 standard. This is mostly to have fun & learn rust
#![feature(
    option_result_contains,
    iter_collect_into,
    is_some_with,
    unwrap_infallible,
    new_uninit,
    arbitrary_enum_discriminant
)]
#![warn(
    clippy::all,
    clippy::pedantic,
    clippy::nursery,
    clippy::cargo,
    clippy::verbose_file_reads,
    clippy::unneeded_field_pattern,
    clippy::unnecessary_self_imports,
    clippy::string_to_string,
    clippy::if_then_some_else_none,
    clippy::empty_structs_with_brackets
)]
#![allow(
    non_snake_case,
    dead_code,
    clippy::needless_return,
    clippy::redundant_else,
    clippy::manual_assert,
    clippy::needless_pass_by_value
)]
// These ones should be re-enabled, and possibly selectively disabled
#![allow(clippy::too_many_lines)]

mod compiler;
mod grammars;
mod preprocessor;
mod test;
mod utils;

use clap::Parser;
use compiler::Compiler;
use utils::parameters::Parameters;

#[derive(Parser)]
#[clap(author, version, about, long_about = None)]
struct Args {
    /// Filelist to compile
    #[clap(short, long, value_parser, default_value = "")]
    files: String,
}

fn main() {
    env_logger::init();
    let args = Args::parse();
    if args.files.is_empty() {
        log::error!("File list not specified!");
        return;
    }

    let parameters = Parameters::new_file(&args.files).unwrap();

    let mut compiler = Compiler::new(parameters);
    compiler.print_preprocessor();
}