///|
pub fn parse_moon_pkg(
name? : String = "moon.pkg",
source : String,
) -> (Ast, Array[Report]) {
let (ast, diagnostics) = parse_string(source, name~)
(post_process_moon_pkg(ast, diagnostics), diagnostics)
}
///|
pub fn parse_moon_mod(
name? : String = "moon.mod",
source : String,
) -> (Ast, Array[Report]) {
let (ast, diagnostics) = parse_string(source, name~)
(post_process_moon_mod(ast, diagnostics), diagnostics)
}
///|
pub fn parse_moon_work(
name? : String = "moon.work",
source : String,
) -> (Ast, Array[Report]) {
let (ast, diagnostics) = parse_string(source, name~)
(post_process_moon_work(ast, diagnostics), diagnostics)
}