bitsy_lang/
parse.rs

1use super::*;
2
3pub fn load_package_from_file<P: AsRef<std::path::Path>>(path: P) -> Result<Package, Vec<BitsyError>> {
4    let package_text = std::fs::read_to_string(path.as_ref()).unwrap();
5    let source_info = SourceInfo::from_file(path.as_ref(), &package_text);
6    package_from_string(source_info, &package_text)
7}
8
9pub fn load_package_from_string(package_text: &str) -> Result<Package, Vec<BitsyError>> {
10    let source_info = SourceInfo::from_string(package_text);
11    package_from_string(source_info, package_text)
12}
13
14fn package_from_string(_source_info: SourceInfo, package_text: &str) -> Result<Package, Vec<BitsyError>> {
15    // TODO source info
16    let package_ast = crate::ast::parse_package_from_string(package_text)?;
17    Package::from(&package_ast)
18}