diff options
| author | Laurenz <laurmaedje@gmail.com> | 2021-01-06 01:32:59 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2021-01-06 01:32:59 +0100 |
| commit | 7b4d4d6002a9c3da8fafd912f3c7b2da617f19c0 (patch) | |
| tree | e491f5fcf33c1032c63746003ac7bef6c3c5478f /src/eval/mod.rs | |
| parent | 2e77b1c836220766398e379ae0157736fb448874 (diff) | |
Pretty printing 🦋
- Syntax tree and value pretty printing
- Better value evaluation (top-level strings and content are evaluated plainly, everything else is pretty printed)
Diffstat (limited to 'src/eval/mod.rs')
| -rw-r--r-- | src/eval/mod.rs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/eval/mod.rs b/src/eval/mod.rs index 42a5555d..1c6e3d51 100644 --- a/src/eval/mod.rs +++ b/src/eval/mod.rs @@ -169,7 +169,7 @@ impl Eval for Spanned<&Lit> { fn eval(self, ctx: &mut EvalContext) -> Self::Output { match *self.v { - Lit::Ident(ref v) => match ctx.state.scope.get(v.as_str()) { + Lit::Ident(ref v) => match ctx.state.scope.get(&v) { Some(value) => value.clone(), None => { ctx.diag(error!(self.span, "unknown variable")); @@ -286,6 +286,7 @@ fn add(ctx: &mut EvalContext, span: Span, lhs: Value, rhs: Value) -> Value { // Complex data types to themselves. (Str(a), Str(b)) => Str(a + &b), + (Array(a), Array(b)) => Array(concat(a, b)), (Dict(a), Dict(b)) => Dict(concat(a, b)), (Content(a), Content(b)) => Content(concat(a, b)), |
