use crate::parser::ast::{Expr, Item};
pub const ENTRY_NAMES: &[&str] = &[
"start",
"main",
"启",
"เริ่ม",
"시작",
"начать",
"начало",
"inicio",
"comenzar",
"début",
"commencer",
"anfang",
"starten",
"início",
"शुरू",
"ابدأ",
];
pub fn entry_name(items: &[Item]) -> Option<String> {
for key in ENTRY_NAMES {
if items
.iter()
.any(|i| matches!(i, Item::Bind(n, _) if n == key))
{
return Some((*key).to_string());
}
}
items.iter().find_map(|i| match i {
Item::Bind(n, Expr::Do(_)) => Some(n.clone()),
_ => None,
})
}