From 2036663ed25b5885a87eb3a80caec3fa2e258d77 Mon Sep 17 00:00:00 2001 From: Laurenz Date: Wed, 27 Jan 2021 15:05:18 +0100 Subject: =?UTF-8?q?Capture=20variables=20in=20templates=20=F0=9F=94=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/syntax/expr.rs | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/syntax/expr.rs') diff --git a/src/syntax/expr.rs b/src/syntax/expr.rs index 15c53cc0..ca55bdd0 100644 --- a/src/syntax/expr.rs +++ b/src/syntax/expr.rs @@ -1,5 +1,6 @@ use super::*; use crate::color::RgbaColor; +use crate::eval::Value; use crate::geom::{AngularUnit, LengthUnit}; /// An expression. @@ -50,6 +51,11 @@ pub enum Expr { If(ExprIf), /// A for expression: `#for x #in y { z }`. For(ExprFor), + /// A captured value. + /// + /// This node is never created by parsing. It only results from an in-place + /// transformation of an identifier to a captured value. + CapturedValue(Value), } impl Pretty for Expr { @@ -86,6 +92,7 @@ impl Pretty for Expr { Self::Let(v) => v.pretty(p), Self::If(v) => v.pretty(p), Self::For(v) => v.pretty(p), + Self::CapturedValue(v) => v.pretty(p), } } } -- cgit v1.2.3