summaryrefslogtreecommitdiff
path: root/src/grammar_util.rs
diff options
context:
space:
mode:
authorNanoTech2016-12-07 00:14:15 -0600
committerNanoTech2017-03-10 23:48:28 -0600
commit9bfe1f36502c701d33174293f71647e614e5797e (patch)
treef111f0b0b6d9c4489bed293790d7e44e85381c16 /src/grammar_util.rs
parente8da1dd3007a392e9594eca72177265f356cabeb (diff)
Parse Const, lists, and records
Also fix keyword parsing to always consume whole identifiers.
Diffstat (limited to '')
-rw-r--r--src/grammar_util.rs8
1 files changed, 4 insertions, 4 deletions
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<Expr<(), ()>>;
-pub type ExprOpFn = fn(BoxExpr, BoxExpr) -> Expr<(), ()>;
+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 fn bx<T>(x: T) -> Box<T> {
Box::new(x)
@@ -19,7 +21,6 @@ pub fn builtin_expr<S, A>(b: Builtin) -> Expr<S, A> {
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<S, A>(b: Builtin) -> Expr<S, A> {
Builtin::ListLast => Expr::ListLast,
Builtin::ListIndexed => Expr::ListIndexed,
Builtin::ListReverse => Expr::ListReverse,
- Builtin::Optional => Expr::Optional,
Builtin::OptionalFold => Expr::OptionalFold,
Builtin::Bool => Expr::Bool,
}