git.delta.rocks / jrsonnet / refs/commits / f965cc12b1e6

difftreelog

feat better "expected" messages

Yaroslav Bolyukin2021-09-18parent: #6ca3e00.patch.diff
in: trunk

1 file changed

modifiedcrates/nixlike/src/lib.rsdiffbeforeafterboth
37peg::parser! {37peg::parser! {
38pub grammar nixlike() for str {38pub grammar nixlike() for str {
39 rule number() -> i6439 rule number() -> i64
40 = v:$(['0'..='9' | '+' | '-']+) {? v.parse().map_err(|_| "<number>")}40 = quiet! { v:$(['0'..='9' | '+' | '-']+) {? v.parse().map_err(|_| "<number>")} } / expected!("<number>")
41 rule string_char() -> &'input str
42 = "\\\"" { "\"" }
43 / "\\\\" { "\\" }
44 / c:$([_]) { c }
41 rule string() -> String45 rule string() -> String
42 = "\"" v:$((!"\"" [_])+) "\"" { v.to_owned() }46 = quiet! { "\"" v:(!"\"" c:string_char() {c})* "\"" { v.into_iter().collect() } } / expected!("<string>")
43 rule boolean() -> bool47 rule boolean() -> bool
44 = "true" {true}48 = quiet! { "true" {true}
45 / "false" {false}49 / "false" {false} } / expected!("<boolean>")
46 rule indent() -> String50 rule indent() -> String
47 = s:$(['a'..='z' | 'A'..='Z' | '0'..='9' | '_' | '-']+) { s.to_owned() }51 = quiet! { s:$(['a'..='z' | 'A'..='Z' | '0'..='9' | '_' | '-']+) { s.to_owned() } } / expected!("<identifier>")
48 rule object() -> BTreeMap<String, Value>52 rule object() -> BTreeMap<String, Value>
49 = "{" _53 = "{" _
50 e:(k:indent()++(_ "." _) _ "=" _ v:value() _ ";" _ {(k, v)})*54 e:(k:indent()++(_ "." _) _ "=" _ v:value() _ ";" _ {(k, v)})*