envl-config 0.11.4

parser and lexer for .envlconf file.
Documentation
use envl_utils::{
    error::EnvlError,
    types::{FilePosition, Position},
};

use crate::{lexer::Lexer, misc::config::Config, parser::Parser};

pub mod lexer;
pub mod misc;
pub mod parser;
pub mod test;

pub fn generate_ast(file_path: String, code: String) -> Result<Config, EnvlError> {
    let lex = Lexer::new(file_path.clone(), code);
    let (tokens, file_end_pos) = lex.generate();
    let parser = Parser::new(
        Position {
            file_path,
            start: FilePosition { col: 1, row: 1 },
            end: file_end_pos,
        },
        tokens,
    );
    parser.parse()
}