From 9bfe1f36502c701d33174293f71647e614e5797e Mon Sep 17 00:00:00 2001 From: NanoTech Date: Wed, 7 Dec 2016 00:14:15 -0600 Subject: Parse Const, lists, and records Also fix keyword parsing to always consume whole identifiers.--- src/grammar_util.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/grammar_util.rs') diff --git a/src/grammar_util.rs b/src/grammar_util.rs index d73be94..4a14175 100644 --- a/src/grammar_util.rs +++ b/src/grammar_util.rs @@ -1,8 +1,10 @@ use core::Expr; use lexer::Builtin; -pub type BoxExpr = Box>; -pub type ExprOpFn = fn(BoxExpr, BoxExpr) -> Expr<(), ()>; +pub type ParsedExpr = Expr<(), ()>; +pub type BoxExpr = Box; +pub type ExprOpFn = fn(BoxExpr, BoxExpr) -> ParsedExpr; +pub type ExprListFn = fn(BoxExpr, Vec) -> ParsedExpr; pub fn bx(x: T) -> Box { Box::new(x) @@ -19,7 +21,6 @@ pub fn builtin_expr(b: Builtin) -> Expr { Builtin::Integer => Expr::Integer, Builtin::Double => Expr::Double, Builtin::Text => Expr::Text, - Builtin::List => Expr::List, Builtin::ListBuild => Expr::ListBuild, Builtin::ListFold => Expr::ListFold, Builtin::ListLength => Expr::ListLength, @@ -27,7 +28,6 @@ pub fn builtin_expr(b: Builtin) -> Expr { Builtin::ListLast => Expr::ListLast, Builtin::ListIndexed => Expr::ListIndexed, Builtin::ListReverse => Expr::ListReverse, - Builtin::Optional => Expr::Optional, Builtin::OptionalFold => Expr::OptionalFold, Builtin::Bool => Expr::Bool, } -- cgit v1.2.3