libjuno 0.1.10

Library for JunoLang
Documentation
use pest::Parser;

use crate::diagnostics::{ DiagnosticEngine, DiagnosticProvider, parse };
use crate::{JunoParser, Rule};
pub struct SyntaxProvider;

impl DiagnosticProvider for SyntaxProvider {
    fn collect(&self, engine: &mut DiagnosticEngine) {
        let source = engine.context().source();

        match JunoParser::parse(Rule::program, source) {
            Ok(_) => {}

            Err(error) => {
                let diagnostic = parse(engine.context(), error);

                engine.push(diagnostic);
            }
        }
    }
}