From e3813e7d4e3450704c1213fd6cdff7c801ccbc34 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Wed, 6 Mar 2019 23:48:32 +0100 Subject: Finally get rid of old parser --- dhall_core/src/grammar.lalrpop | 164 ----------------- dhall_core/src/grammar_util.rs | 5 +- dhall_core/src/lexer.rs | 394 ----------------------------------------- dhall_core/src/lib.rs | 3 - dhall_core/src/parser.rs | 53 +++--- 5 files changed, 22 insertions(+), 597 deletions(-) delete mode 100644 dhall_core/src/grammar.lalrpop delete mode 100644 dhall_core/src/lexer.rs (limited to 'dhall_core/src') diff --git a/dhall_core/src/grammar.lalrpop b/dhall_core/src/grammar.lalrpop deleted file mode 100644 index 1ffe2ff..0000000 --- a/dhall_core/src/grammar.lalrpop +++ /dev/null @@ -1,164 +0,0 @@ -use std::collections::BTreeMap; -use std::iter; -use std::iter::FromIterator; - -use crate::core; -use crate::core::bx; -use crate::core::Expr::*; -use crate::core::Builtin; -use crate::core::Builtin::*; -use crate::core::BinOp::*; -use crate::grammar_util::*; -use crate::lexer::*; - -grammar<'input>; - -extern { - type Location = usize; - type Error = LexicalError; - - enum Tok<'input> { - Pi => Tok::Pi, - Lambda => Tok::Lambda, - Combine => Tok::Combine, - "->" => Tok::Arrow, - - Int => Tok::Integer(), - Nat => Tok::Natural(), - Text => Tok::Text(), - Bool => Tok::Bool(), - Label => Tok::Identifier(<&'input str>), - Const => Tok::Const(), - Let => Tok::Keyword(Keyword::Let), - In => Tok::Keyword(Keyword::In), - If => Tok::Keyword(Keyword::If), - Then => Tok::Keyword(Keyword::Then), - Else => Tok::Keyword(Keyword::Else), - List => Tok::ListLike(ListLike::List), - Optional => Tok::ListLike(ListLike::Optional), - Builtin => Tok::Builtin(), - - "{" => Tok::BraceL, - "}" => Tok::BraceR, - "[" => Tok::BracketL, - "]" => Tok::BracketR, - "(" => Tok::ParenL, - ")" => Tok::ParenR, - "&&" => Tok::BoolAnd, - "||" => Tok::BoolOr, - "==" => Tok::CompareEQ, - "!=" => Tok::CompareNE, - "++" => Tok::Append, - "*" => Tok::Times, - "+" => Tok::Plus, - "," => Tok::Comma, - "." => Tok::Dot, - ":" => Tok::Ascription, - "=" => Tok::Equals, - } -} - -pub Expr: BoxExpr<'input> = { // exprA - ExprB, -}; - -ExprB: BoxExpr<'input> = { - Lambda "("