rl_model/lib.rs
1#[macro_use]
2extern crate lalrpop_util;
3
4#[macro_use]
5extern crate log;
6
7pub mod model;
8pub mod parser;
9use crate::model::Skillset;
10
11pub fn load_skillset(filename: &str) -> Result<Skillset, parser::RlError> {
12 // Parsing
13 match parser::parse_file(filename) {
14 Ok(mut skillset) => {
15 info!("Parsing OK");
16 // Duplicate
17 match skillset.duplicate() {
18 Ok(_) => info!("Duplicate OK"),
19 Err(e) => {
20 error!("{}", e);
21 return Err(e);
22 }
23 }
24 // Resolve
25 match skillset.resolve() {
26 Ok(_) => info!("Resolve OK"),
27 Err(e) => {
28 error!("{}", e);
29 return Err(e);
30 }
31 }
32 //
33 Ok(skillset)
34 }
35 Err(e) => {
36 error!("{}", e);
37 return Err(e);
38 }
39 }
40}
41
42// pub fn check(skillset: &skillset::Model) -> bool {
43// let errors = check_skillset(skillset);
44// if errors.is_empty() {
45// info!("Verification OK");
46// true
47// } else {
48// for e in errors.iter() {
49// error!("{}", e.to_lang(skillset));
50// }
51// false
52// }
53// }