Parse and format aliases in import defs

This commit is contained in:
Agus Zubiaga 2023-11-29 10:54:25 -03:00
parent 933fde77a0
commit 76d799ea13
No known key found for this signature in database
12 changed files with 85 additions and 6 deletions

View file

@ -844,11 +844,24 @@ fn import<'a>() -> impl Parser<'a, ValueDef<'a>, EImport> {
crate::parser::keyword_e(crate::keyword::IMPORT, EImport::Import),
spaces()
),
loc!(crate::module::module_name_help(EImport::ModuleName))
and!(
loc!(crate::module::module_name_help(EImport::ModuleName)),
optional(backtrackable(skip_first!(
and!(
spaces(),
and!(
crate::parser::keyword_e(crate::keyword::AS, EImport::As),
spaces()
)
),
loc!(crate::module::module_name_help(EImport::Alias))
)))
)
),
|loc_module_name| {
|(loc_module_name, optional_loc_alias)| {
ValueDef::ModuleImport {
name: loc_module_name,
alias: optional_loc_alias,
}
}
)