yggdrasil-shared 0.2.5

Yggdrasil Compiler core shared components
use yggdrasil_error::Validation;
use super::*;

pub struct FusionRules {}

impl CodeOptimizer for FusionRules {
    fn optimize(&mut self, info: &GrammarInfo) -> Validation<GrammarInfo> {
        let _ = info;
        let e = ChoiceExpression { branches: Default::default() };
        self.fuse_choice(&e);
        todo!()
    }
}

impl FusionRules {
    fn fuse_choice(&mut self, choice: &ChoiceExpression) -> Validation<ChoiceExpression> {
        let mut errors = vec![];
        for branch in &choice.branches {}
        Validation::Success { value: ChoiceExpression { branches: Default::default() }, diagnostics: errors }
    }
}