summaryrefslogtreecommitdiff
path: root/dhall_syntax
diff options
context:
space:
mode:
authorNadrieril2019-12-17 11:43:57 +0000
committerNadrieril2019-12-17 11:43:57 +0000
commit212ee21e15e4334baa8d1b2a70aa6cc53fbd40ee (patch)
treede6c505daa98743020b910dec614412b6dcb8a9f /dhall_syntax
parent78e9e32e1357d50313287dd2a3c437132c83aeb6 (diff)
Move pest file generation to dhall/build.rs
Diffstat (limited to 'dhall_syntax')
-rw-r--r--dhall_syntax/.gitignore1
-rw-r--r--dhall_syntax/Cargo.toml1
-rw-r--r--dhall_syntax/build.rs90
l---------dhall_syntax/src/dhall.abnf1
-rw-r--r--dhall_syntax/src/dhall.pest.visibility182
-rw-r--r--dhall_syntax/src/lib.rs1
6 files changed, 1 insertions, 275 deletions
diff --git a/dhall_syntax/.gitignore b/dhall_syntax/.gitignore
deleted file mode 100644
index 8a0bac6..0000000
--- a/dhall_syntax/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-src/dhall.pest
diff --git a/dhall_syntax/Cargo.toml b/dhall_syntax/Cargo.toml
index 7708954..e4dd533 100644
--- a/dhall_syntax/Cargo.toml
+++ b/dhall_syntax/Cargo.toml
@@ -4,7 +4,6 @@ version = "0.1.0"
authors = ["NanoTech <nanotech@nanotechcorp.net>", "Nadrieril <nadrieril@users.noreply.github.com>"]
license = "BSD-2-Clause"
edition = "2018"
-build = "build.rs"
[lib]
doctest = false
diff --git a/dhall_syntax/build.rs b/dhall_syntax/build.rs
deleted file mode 100644
index d846f92..0000000
--- a/dhall_syntax/build.rs
+++ /dev/null
@@ -1,90 +0,0 @@
-use std::fs::File;
-use std::io::{BufRead, BufReader, Read, Write};
-
-use abnf_to_pest::render_rules_to_pest;
-
-fn main() -> std::io::Result<()> {
- 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);
- }
- }
-
- let mut file = File::create(pest_path)?;
- writeln!(&mut file, "// AUTO-GENERATED FILE. See build.rs.")?;
-
- // TODO: this is a cheat; properly support RFC3986 URLs instead
- rules.remove("url_path");
- writeln!(&mut file, "url_path = _{{ path }}")?;
-
- rules.remove("simple_label");
- writeln!(
- &mut file,
- "simple_label = {{
- keyword ~ simple_label_next_char+
- | !keyword ~ simple_label_first_char ~ simple_label_next_char*
- }}"
- )?;
-
- rules.remove("nonreserved_label");
- writeln!(
- &mut file,
- "nonreserved_label = _{{
- !(builtin ~ !simple_label_next_char) ~ label
- }}"
- )?;
-
- // Setup grammar for precedence climbing
- rules.remove("operator_expression");
- writeln!(&mut file, r##"
- import_alt = {{ "?" ~ whsp1 }}
- bool_or = {{ "||" }}
- natural_plus = {{ "+" ~ whsp1 }}
- text_append = {{ "++" }}
- list_append = {{ "#" }}
- bool_and = {{ "&&" }}
- natural_times = {{ "*" }}
- bool_eq = {{ "==" }}
- bool_ne = {{ "!=" }}
-
- operator = _{{
- equivalent |
- bool_ne |
- bool_eq |
- natural_times |
- combine_types |
- prefer |
- combine |
- bool_and |
- list_append |
- text_append |
- natural_plus |
- bool_or |
- import_alt
- }}
- operator_expression = {{ application_expression ~ (whsp ~ operator ~ whsp ~ application_expression)* }}
- "##)?;
-
- writeln!(
- &mut file,
- "final_expression = ${{ SOI ~ complete_expression ~ EOI }}"
- )?;
-
- writeln!(&mut file)?;
- writeln!(&mut file, "{}", render_rules_to_pest(rules).pretty(80))?;
-
- Ok(())
-}
diff --git a/dhall_syntax/src/dhall.abnf b/dhall_syntax/src/dhall.abnf
deleted file mode 120000
index ce13b8e..0000000
--- a/dhall_syntax/src/dhall.abnf
+++ /dev/null
@@ -1 +0,0 @@
-../../dhall-lang/standard/dhall.abnf \ No newline at end of file
diff --git a/dhall_syntax/src/dhall.pest.visibility b/dhall_syntax/src/dhall.pest.visibility
deleted file mode 100644
index 17c1edc..0000000
--- a/dhall_syntax/src/dhall.pest.visibility
+++ /dev/null
@@ -1,182 +0,0 @@
-# end_of_line
-# valid_non_ascii
-# tab
-# block_comment
-# block_comment_char
-# block_comment_continue
-# not_end_of_line
-# line_comment
-# whitespace_chunk
-# whsp
-# whsp1
-# ALPHA
-# DIGIT
-# ALPHANUM
-# 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
-# unicode_escape
-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_
-toMap
-assert
-# keyword
-builtin
-# Optional
-Text
-# List
-Location
-# Bool
-# True
-# False
-# None_
-# Natural
-# Integer
-# Double
-# Type
-# Kind
-# Sort
-# Natural_fold
-# Natural_build
-# Natural_isZero
-# Natural_even
-# Natural_odd
-# Natural_toInteger
-# Natural_show
-# Integer_toDouble
-# Integer_show
-# Natural_subtract
-# Double_show
-# List_build
-# List_fold
-# List_length
-# List_head
-# List_last
-# List_indexed
-# List_reverse
-# Optional_fold
-# Optional_build
-# Text_show
-combine
-combine_types
-equivalent
-prefer
-lambda
-forall
-arrow
-# exponent
-numeric_double_literal
-minus_infinity_literal
-plus_infinity_literal
-# double_literal
-natural_literal
-integer_literal
-identifier
-variable
-# 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
-# domain
-# domainlabel
-# 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_list_literal
-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
-equivalent_expression
-application_expression
-first_application_expression
-# import_expression
-selector_expression
-selector
-labels
-# type_selector
-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
-empty_union_type
-# non_empty_union_type
-union_type_entry
-non_empty_list_literal
-# complete_expression
diff --git a/dhall_syntax/src/lib.rs b/dhall_syntax/src/lib.rs
index e69de29..8b13789 100644
--- a/dhall_syntax/src/lib.rs
+++ b/dhall_syntax/src/lib.rs
@@ -0,0 +1 @@
+