use std::process::ExitCode;
static TAB: phf::Map<&str, u16> = phf::phf_map! {
"m" => 6,
"b" => 9,
"tr" => 12,
"quadr" => 15,
"quint" => 18,
"sext" => 21,
"sept" => 24,
"oct" => 27,
"non" => 30,
"dec" => 33,
"undec" => 36,
"duodec" => 39,
"tredec" => 42,
"quattuordec" => 45,
"quindec" => 48,
"sexdec" => 51,
"septendec" => 54,
"octodec" => 57,
"novemdec" => 60,
"vigint" => 63,
"cent" => 303,
};
fn main() -> ExitCode {
let re = regex::Regex::new(r"([0-9]+(?:\.[0-9]+)?)[^\S]*(m|b|tr|quadr|quint|sext|sept|oct|non|dec|undec|duodec|tredec|quattuordec|quindec|sexdec|septendec|octodecc|novemdec|vigint|cent)illion").unwrap();
let Some(x) = std::env::args().skip(1).reduce(|acc, x| acc + &x) else {
comat::cprintln!("{red}require argument{reset}");
return ExitCode::FAILURE;
};
let Some(mat) = re.captures(&x) else {
comat::cprintln!("{red}wher num?{reset}");
return ExitCode::SUCCESS;
};
let exponent = TAB[mat.get(2).unwrap().into()];
println!("{}e+{exponent}", mat.get(1).unwrap().as_str());
clipp::copy(format!("{}e+{exponent}", mat.get(1).unwrap().as_str()));
ExitCode::SUCCESS
}