diff options
| author | Laurenz <laurmaedje@gmail.com> | 2021-01-01 16:33:08 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2021-01-01 16:43:58 +0100 |
| commit | 2b6ccd82489afbcd679fb3199de2618fa8811325 (patch) | |
| tree | 13959b6a9cb88bc6af2ba362aa4871235a7f962e /src/eval | |
| parent | 4069f0744dc24c05d5a6fd6d0530984c4c7ff881 (diff) | |
Better parser testing ✅
Diffstat (limited to 'src/eval')
| -rw-r--r-- | src/eval/mod.rs | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/eval/mod.rs b/src/eval/mod.rs index ed73b07c..c4da1fe0 100644 --- a/src/eval/mod.rs +++ b/src/eval/mod.rs @@ -18,9 +18,9 @@ use std::rc::Rc; use fontdock::FontStyle; +use crate::color::Color; use crate::diag::Diag; use crate::diag::{Deco, Feedback, Pass}; -use crate::color::Color; use crate::env::SharedEnv; use crate::geom::{BoxAlign, Dir, Flow, Gen, Length, Linear, Relative, Sides, Size}; use crate::layout::{ @@ -328,6 +328,11 @@ impl Eval for SynNode { fn eval(&self, ctx: &mut EvalContext) -> Self::Output { match self { + SynNode::Text(text) => { + let node = ctx.make_text_node(text.clone()); + ctx.push(node); + } + SynNode::Space => { let em = ctx.state.font.font_size(); ctx.push(Spacing { @@ -336,11 +341,6 @@ impl Eval for SynNode { }); } - SynNode::Text(text) => { - let node = ctx.make_text_node(text.clone()); - ctx.push(node); - } - SynNode::Linebreak => { ctx.end_par_group(); ctx.start_par_group(); @@ -356,10 +356,12 @@ impl Eval for SynNode { ctx.start_par_group(); } - SynNode::Emph => ctx.state.font.emph ^= true, SynNode::Strong => ctx.state.font.strong ^= true, + SynNode::Emph => ctx.state.font.emph ^= true, + SynNode::Heading(heading) => heading.eval(ctx), SynNode::Raw(raw) => raw.eval(ctx), + SynNode::Expr(expr) => expr.eval(ctx).eval(ctx), } } |
