Skip to main content

envl_config/
lib.rs

1use envl_utils::{
2    error::EnvlError,
3    types::{FilePosition, Position},
4};
5
6use crate::{lexer::Lexer, misc::config::Config, parser::Parser};
7
8pub mod lexer;
9pub mod misc;
10pub mod parser;
11pub mod test;
12
13pub fn generate_ast(file_path: String, code: String) -> Result<Config, EnvlError> {
14    let lex = Lexer::new(file_path.clone(), code);
15    let (tokens, file_end_pos) = lex.generate();
16    let parser = Parser::new(
17        Position {
18            file_path,
19            start: FilePosition { col: 1, row: 1 },
20            end: file_end_pos,
21        },
22        tokens,
23    );
24    parser.parse()
25}