summaryrefslogtreecommitdiff
path: root/src/grammar_util.rs
diff options
context:
space:
mode:
authorNanoTech2016-12-07 18:11:05 -0600
committerNanoTech2017-03-10 23:48:28 -0600
commit9598e4ff43a8fd4bc2aa2af75ff1094c2ef96258 (patch)
tree283384fba69e910d07a23c3c3f5167a68c068ea5 /src/grammar_util.rs
parent57e9c6ea6306c4c74901878fd44801fe14600a15 (diff)
Reference input strings without copying
Diffstat (limited to '')
-rw-r--r--src/grammar_util.rs10
1 files changed, 5 insertions, 5 deletions
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<ParsedExpr>;
-pub type ExprOpFn = fn(BoxExpr, BoxExpr) -> ParsedExpr;
-pub type ExprListFn = fn(BoxExpr, Vec<ParsedExpr>) -> ParsedExpr;
+pub type ParsedExpr<'i> = Expr<'i, (), ()>;
+pub type BoxExpr<'i> = Box<ParsedExpr<'i>>;
+pub type ExprOpFn<'i> = fn(BoxExpr<'i>, BoxExpr<'i>) -> ParsedExpr<'i>;
+pub type ExprListFn<'i> = fn(BoxExpr<'i>, Vec<ParsedExpr<'i>>) -> ParsedExpr<'i>;
pub fn bx<T>(x: T) -> Box<T> {
Box::new(x)
}
-pub fn builtin_expr<S, A>(b: Builtin) -> Expr<S, A> {
+pub fn builtin_expr<'i, S, A>(b: Builtin) -> Expr<'i, S, A> {
match b {
Builtin::Natural => Expr::Natural,
Builtin::NaturalFold => Expr::NaturalFold,