From 172d7b10f92913dc7c589d68e6bde453a0f59132 Mon Sep 17 00:00:00 2001 From: TriMill Date: Fri, 16 Sep 2022 20:03:05 -0400 Subject: [PATCH] |> operator --- src/eval.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/eval.rs b/src/eval.rs index a2f7a79..bfafbf1 100644 --- a/src/eval.rs +++ b/src/eval.rs @@ -411,7 +411,12 @@ fn pipequestion_inner(_: Vec, data: Rc>>, iter_data: R pub fn eval_pipeline(lhs: &Expr, rhs: &Expr, op: &Token, env: EnvRef) -> Result { let l = eval_expr(lhs, env.clone())?; let r = eval_expr(rhs, env)?; + eval_pipeline_inner(l, r, op).map_err(|e| e.complete(op.pos.clone())) +} + +fn eval_pipeline_inner(l: Value, r: Value, op: &Token) -> Result { match op.ty { + TokenType::PipePoint => r.call(vec![l]), TokenType::PipeColon => { Ok(Value::Func(Func::BuiltinClosure { arg_count: 0, @@ -430,6 +435,7 @@ pub fn eval_pipeline(lhs: &Expr, rhs: &Expr, op: &Token, env: EnvRef) -> Result< }, _ => todo!() } + } pub fn eval_unary(arg: &Expr, op: &Token, env: EnvRef) -> Result {