1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
pub mod checks;
pub mod translation;
pub mod types;

pub fn translate_files<P: AsRef<std::path::Path>>(
    ctx: &mut crate::ctx::Ctx,
    input_files: &[P],
) -> types::Declarations {
    let mut ast_map = crate::ast_map::AstMap::default();
    for file in input_files {
        if let Some(file_id) = ctx.add_file(&file, []) {
            ast_map.add_files_recursively(ctx, file_id);
        }
    }

    let mut translator = translation::Translator::new(ctx, ast_map.reachability());
    for schema in ast_map.iter() {
        translator.add_schema(schema);
    }

    translator.finish()
}