From 9598e4ff43a8fd4bc2aa2af75ff1094c2ef96258 Mon Sep 17 00:00:00 2001 From: NanoTech Date: Wed, 7 Dec 2016 18:11:05 -0600 Subject: Reference input strings without copying --- src/grammar_util.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/grammar_util.rs') diff --git a/src/grammar_util.rs b/src/grammar_util.rs index 4a14175..cf0ee59 100644 --- a/src/grammar_util.rs +++ b/src/grammar_util.rs @@ -1,16 +1,16 @@ use core::Expr; use lexer::Builtin; -pub type ParsedExpr = Expr<(), ()>; -pub type BoxExpr = Box; -pub type ExprOpFn = fn(BoxExpr, BoxExpr) -> ParsedExpr; -pub type ExprListFn = fn(BoxExpr, Vec) -> ParsedExpr; +pub type ParsedExpr<'i> = Expr<'i, (), ()>; +pub type BoxExpr<'i> = Box>; +pub type ExprOpFn<'i> = fn(BoxExpr<'i>, BoxExpr<'i>) -> ParsedExpr<'i>; +pub type ExprListFn<'i> = fn(BoxExpr<'i>, Vec>) -> ParsedExpr<'i>; pub fn bx(x: T) -> Box { Box::new(x) } -pub fn builtin_expr(b: Builtin) -> Expr { +pub fn builtin_expr<'i, S, A>(b: Builtin) -> Expr<'i, S, A> { match b { Builtin::Natural => Expr::Natural, Builtin::NaturalFold => Expr::NaturalFold, -- cgit v1.2.3