difftreelog
feat better "expected" messages
in: trunk
1 file changed
crates/nixlike/src/lib.rsdiffbeforeafterboth37peg::parser! {37peg::parser! {38pub grammar nixlike() for str {38pub grammar nixlike() for str {39 rule number() -> i6439 rule number() -> i6440 = 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 str42 = "\\\"" { "\"" }43 / "\\\\" { "\\" }44 / c:$([_]) { c }41 rule string() -> String45 rule string() -> String42 = "\"" v:$((!"\"" [_])+) "\"" { v.to_owned() }46 = quiet! { "\"" v:(!"\"" c:string_char() {c})* "\"" { v.into_iter().collect() } } / expected!("<string>")43 rule boolean() -> bool47 rule boolean() -> bool44 = "true" {true}48 = quiet! { "true" {true}45 / "false" {false}49 / "false" {false} } / expected!("<boolean>")46 rule indent() -> String50 rule indent() -> String47 = 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)})*