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}