summaryrefslogtreecommitdiff
path: root/dhall_parser
diff options
context:
space:
mode:
authorNadrieril2019-04-13 12:08:14 +0200
committerNadrieril2019-04-13 12:08:14 +0200
commita4e8f799fb4665b210086c28647e0fa335384913 (patch)
tree479694d8a26b65f2eee6233450af592d4baf8bd4 /dhall_parser
parent5e41c4d1de45e2c799a1471692a715da565387e0 (diff)
Clarify role of dhall_generated_parser crate
Diffstat (limited to 'dhall_parser')
-rw-r--r--dhall_parser/.gitignore1
-rw-r--r--dhall_parser/Cargo.toml19
-rw-r--r--dhall_parser/build.rs64
l---------dhall_parser/src/dhall.abnf1
-rw-r--r--dhall_parser/src/dhall.pest.visibility141
-rw-r--r--dhall_parser/src/lib.rs14
6 files changed, 0 insertions, 240 deletions
diff --git a/dhall_parser/.gitignore b/dhall_parser/.gitignore
deleted file mode 100644
index 8a0bac6..0000000
--- a/dhall_parser/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-src/dhall.pest
diff --git a/dhall_parser/Cargo.toml b/dhall_parser/Cargo.toml
deleted file mode 100644
index 5ee7eca..0000000
--- a/dhall_parser/Cargo.toml
+++ /dev/null
@@ -1,19 +0,0 @@
-[package]
-name = "dhall_parser"
-version = "0.1.0"
-authors = ["Nadrieril <nadrieril@users.noreply.github.com>"]
-license = "BSD-2-Clause"
-edition = "2018"
-build = "build.rs"
-
-[lib]
-test = false
-doctest = false
-
-[build-dependencies]
-abnf_to_pest = { path = "../abnf_to_pest" }
-pest_generator = "2.1"
-quote = "0.6.11"
-
-[dependencies]
-pest = { git = "https://github.com/pest-parser/pest" }
diff --git a/dhall_parser/build.rs b/dhall_parser/build.rs
deleted file mode 100644
index 615a55c..0000000
--- a/dhall_parser/build.rs
+++ /dev/null
@@ -1,64 +0,0 @@
-use std::env;
-use std::fs::File;
-use std::io::{BufRead, BufReader, Read, Write};
-use std::path::Path;
-
-use abnf_to_pest::render_rules_to_pest;
-
-fn main() -> std::io::Result<()> {
- // TODO: upstream changes to grammar
- // let abnf_path = "../dhall-lang/standard/dhall.abnf";
- let abnf_path = "src/dhall.abnf";
- let visibility_path = "src/dhall.pest.visibility";
- let pest_path = "src/dhall.pest";
- println!("cargo:rerun-if-changed={}", abnf_path);
- println!("cargo:rerun-if-changed={}", visibility_path);
-
- let mut file = File::open(abnf_path)?;
- let mut data = Vec::new();
- file.read_to_end(&mut data)?;
- data.push('\n' as u8);
-
- let mut rules = abnf_to_pest::parse_abnf(&data)?;
- for line in BufReader::new(File::open(visibility_path)?).lines() {
- let line = line?;
- if line.len() >= 2 && &line[0..2] == "# " {
- rules.get_mut(&line[2..]).map(|x| x.silent = true);
- }
- }
- rules.remove("simple_label");
-
- let mut file = File::create(pest_path)?;
- writeln!(&mut file, "// AUTO-GENERATED FILE. See build.rs.")?;
- writeln!(&mut file, "{}", render_rules_to_pest(rules).pretty(80))?;
-
- writeln!(&mut file)?;
- writeln!(
- &mut file,
- "simple_label = {{
- keyword ~ simple_label_next_char+
- | !keyword ~ simple_label_first_char ~ simple_label_next_char*
- }}"
- )?;
- writeln!(
- &mut file,
- "final_expression = ${{ SOI ~ complete_expression ~ EOI }}"
- )?;
-
- // Generate pest parser manually to avoid spurious recompilations
- let derived = {
- let pest_path = "dhall.pest";
- let pest = quote::quote! {
- #[grammar = #pest_path]
- pub struct DhallParser;
- };
- pest_generator::derive_parser(pest, false)
- };
-
- let out_dir = env::var("OUT_DIR").unwrap();
- let grammar_path = Path::new(&out_dir).join("grammar.rs");
- let mut file = File::create(grammar_path)?;
- writeln!(file, "pub struct DhallParser;\n{}", derived,)?;
-
- Ok(())
-}
diff --git a/dhall_parser/src/dhall.abnf b/dhall_parser/src/dhall.abnf
deleted file mode 120000
index ce13b8e..0000000
--- a/dhall_parser/src/dhall.abnf
+++ /dev/null
@@ -1 +0,0 @@
-../../dhall-lang/standard/dhall.abnf \ No newline at end of file
diff --git a/dhall_parser/src/dhall.pest.visibility b/dhall_parser/src/dhall.pest.visibility
deleted file mode 100644
index f881a50..0000000
--- a/dhall_parser/src/dhall.pest.visibility
+++ /dev/null
@@ -1,141 +0,0 @@
-# end_of_line
-# tab
-# block_comment
-# block_comment_chunk
-# block_comment_continue
-# not_end_of_line
-# line_comment
-# whitespace_chunk
-# whsp
-# whsp1
-# ALPHA
-# DIGIT
-# HEXDIG
-# simple_label_first_char
-# simple_label_next_char
-simple_label
-# quoted_label_char
-quoted_label
-label
-nonreserved_label
-# any_label
-double_quote_chunk
-double_quote_escaped
-double_quote_char
-double_quote_literal
-single_quote_continue
-escaped_quote_pair
-escaped_interpolation
-single_quote_char
-single_quote_literal
-interpolation
-# text_literal
-if_
-# then
-# else_
-# let_
-in_
-# as_
-# using
-merge
-missing
-# Infinity
-NaN
-Some
-# keyword
-Optional
-Text
-List
-# combine
-# combine_types
-# prefer
-lambda
-forall
-arrow
-# exponent
-numeric_double_literal
-minus_infinity_literal
-plus_infinity_literal
-double_literal
-natural_literal
-integer_literal
-identifier
-# path_character
-# quoted_path_character
-unquoted_path_component
-quoted_path_component
-path_component
-path
-# local
-parent_path
-here_path
-home_path
-absolute_path
-scheme
-http_raw
-authority
-# userinfo
-# host
-# port
-# IP_literal
-# IPvFuture
-# IPv6address
-# h16
-# ls32
-# IPv4address
-# dec_octet
-# reg_name
-# pchar
-query
-# pct_encoded
-# unreserved
-# sub_delims
-http
-env
-bash_environment_variable
-posix_environment_variable
-# posix_environment_variable_character
-import_type
-hash
-import_hashed
-import
-expression
-annotated_expression
-let_binding
-empty_collection
-non_empty_optional
-# operator_expression
-import_alt_expression
-or_expression
-plus_expression
-text_append_expression
-list_append_expression
-and_expression
-combine_expression
-prefer_expression
-combine_types_expression
-times_expression
-equal_expression
-not_equal_expression
-application_expression
-# import_expression
-selector_expression
-selector
-labels
-primitive_expression
-# record_type_or_literal
-empty_record_literal
-empty_record_type
-non_empty_record_type_or_literal
-non_empty_record_type
-record_type_entry
-non_empty_record_literal
-record_literal_entry
-union_type_or_literal
-empty_union_type
-non_empty_union_type_or_literal
-union_literal_variant_value
-union_type_entry
-union_type_or_literal_variant_type
-non_empty_list_literal
-# complete_expression
diff --git a/dhall_parser/src/lib.rs b/dhall_parser/src/lib.rs
deleted file mode 100644
index e0843af..0000000
--- a/dhall_parser/src/lib.rs
+++ /dev/null
@@ -1,14 +0,0 @@
-// This crate only contains the grammar-generated parser. The rest of the
-// parser is in dhall_core. This separation is because compiling the
-// grammar-generated parser is extremely slow. Eventually, the whole parser
-// should probably be moved to here.
-// See the https://pest.rs documentation for details on what this crate contains.
-// The pest file is auto-generated and is located at ./dhall.pest.
-// It is generated from grammar.abnf in a rather straightforward manner. Some
-// additional overrides are done in ../build.rs.
-// The lines that are commented out in ./dhall.pest.visibility are marked as
-// silent (see pest docs for what that means) in the generated pest file.
-// The abnf file has quite a lot of modifications compared to the one from
-// the standard. Hopefully those changes should be merged upstream, but for now
-// feel free to edit it to make parsing easier.
-include!(concat!(env!("OUT_DIR"), "/grammar.rs"));