rl_model/parser/
mod.rs

1pub mod parser;
2pub use parser::*;
3
4pub mod error;
5pub use error::*;
6
7pub mod position;
8pub use position::*;
9
10use crate::model::Skillset;
11use line_col::LineColLookup;
12
13#[derive(Debug, Clone)]
14pub struct Identifier {
15    pub name: String,
16    pub position: Position,
17}
18
19impl Identifier {
20    pub fn new(file: &str, lookup: &LineColLookup, name: &str, offset: usize) -> Self {
21        let name = name.into();
22        let position = Position::new(file, lookup, offset);
23        Self { name, position }
24    }
25}
26
27pub fn parse_file(file: &str) -> Result<Skillset, RlError> {
28    let mut parser = Parser::new(file);
29    parser.parse()?;
30    Ok(parser.skillset)
31}