summaryrefslogtreecommitdiff
path: root/dhall_syntax/src/parser.rs
diff options
context:
space:
mode:
authorNadrieril2019-08-03 21:36:53 +0200
committerNadrieril2019-08-03 21:36:53 +0200
commit2ad5973a32099ad8f79f247adc9d03340e2df4ab (patch)
treedf68024b6e40208aeb4e697163f7a29576e1319f /dhall_syntax/src/parser.rs
parent3008f5711fbe40d1930ebc36e602c29d3fbec3eb (diff)
Update dhall-lang submodule
Diffstat (limited to '')
-rw-r--r--dhall_syntax/src/parser.rs18
1 files changed, 13 insertions, 5 deletions
diff --git a/dhall_syntax/src/parser.rs b/dhall_syntax/src/parser.rs
index 316ef2f..d8bd957 100644
--- a/dhall_syntax/src/parser.rs
+++ b/dhall_syntax/src/parser.rs
@@ -461,6 +461,11 @@ make_parser! {
lines.push(vec![]);
lines
},
+ [single_quote_char("\r\n"), single_quote_continue(lines)] => {
+ let mut lines = lines;
+ lines.push(vec![]);
+ lines
+ },
[single_quote_char(c), single_quote_continue(lines)] => {
// TODO: don't allocate for every char
let c = InterpolatedTextContents::Text(c.to_owned());
@@ -654,12 +659,15 @@ make_parser! {
},
));
- rule!(hash<Hash>; captured_str!(s) =>
- Hash {
- protocol: s.trim()[..6].to_owned(),
- hash: s.trim()[7..].to_owned(),
+ rule!(hash<Hash>; captured_str!(s) => {
+ let s = s.trim();
+ let protocol = &s[..6];
+ let hash = &s[7..];
+ if protocol != "sha256" {
+ Err(format!("Unknown hashing protocol '{}'", protocol))?
}
- );
+ Hash::SHA256(hex::decode(hash).unwrap())
+ });
rule!(import_hashed<ImportHashed>; children!(
[import_type(location)] =>