diff --git a/Cargo.lock b/Cargo.lock index f72d02c..755731e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -67,6 +67,18 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" +[[package]] +name = "bitvec" +version = "0.19.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7ba35e9565969edb811639dbebfe34edc0368e472c5018474c8eb2543397f81" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + [[package]] name = "bstr" version = "0.2.14" @@ -314,7 +326,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" dependencies = [ "atty", - "humantime", + "humantime 1.3.0", + "log", + "regex", + "termcolor", +] + +[[package]] +name = "env_logger" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54532e3223c5af90a6a757c90b5c5521564b07e5e7a958681bcd2afad421cdcd" +dependencies = [ + "atty", + "humantime 2.0.1", "log", "regex", "termcolor", @@ -335,6 +360,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "funty" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ba62103ce691c2fd80fbae2213dfdda9ce60804973ac6b6e97de818ea7f52c8" + [[package]] name = "getrandom" version = "0.1.15" @@ -396,6 +427,12 @@ dependencies = [ "quick-error", ] +[[package]] +name = "humantime" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c1ad908cc71012b7bea4d0c53ba96a8cba9962f048fa68d143376143d863b7a" + [[package]] name = "ident_case" version = "1.0.1" @@ -499,10 +536,11 @@ dependencies = [ [[package]] name = "nom" -version = "5.1.2" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af" +checksum = "4489ccc7d668957ddf64af7cd027c081728903afa6479d35da7e99bf5728f75f" dependencies = [ + "bitvec", "lexical-core", "memchr", "version_check", @@ -669,6 +707,12 @@ dependencies = [ "proc-macro2 1.0.24", ] +[[package]] +name = "radium" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "941ba9d78d8e2f7ce474c015eea4d9c6d25b6a3327f9832ee29a4de27f91bbb8" + [[package]] name = "rand" version = "0.7.3" @@ -902,6 +946,12 @@ dependencies = [ "unicode-xid 0.2.1", ] +[[package]] +name = "tap" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36474e732d1affd3a6ed582781b3683df3d0563714c59c39591e8ff707cf078e" + [[package]] name = "tempfile" version = "3.1.0" @@ -1006,7 +1056,7 @@ dependencies = [ "bstr", "clap", "clap-verbosity-flag", - "env_logger", + "env_logger 0.8.1", "ignore", "log", "phf", @@ -1071,7 +1121,7 @@ dependencies = [ "clap", "clap-verbosity-flag", "codegenrs", - "env_logger", + "env_logger 0.7.1", "itertools", "log", "phf", @@ -1220,3 +1270,9 @@ name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "wyz" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" diff --git a/Cargo.toml b/Cargo.toml index 80500cc..168dffb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -44,7 +44,7 @@ ignore = "0.4" serde = { version = "1.0", features = ["derive"] } toml = "0.5" log = "0.4" -env_logger = "0.7" +env_logger = "0.8" bstr = "0.2" [dev-dependencies] diff --git a/azure-pipelines.yml b/azure-pipelines.yml index e387fce..b8ed1fd 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -10,7 +10,7 @@ schedules: include: - master variables: - minrust: 1.42.0 + minrust: 1.47.0 codecov_token: $(CODECOV_TOKEN_SECRET) windows_vm: vs2017-win2016 mac_vm: macos-10.14 diff --git a/crates/varcon-core/Cargo.toml b/crates/varcon-core/Cargo.toml index e4af268..5929c04 100644 --- a/crates/varcon-core/Cargo.toml +++ b/crates/varcon-core/Cargo.toml @@ -19,7 +19,7 @@ parser = ["nom"] flags = ["enumflags2"] [dependencies] -nom = { version = "5.1.2", optional = true } +nom = { version = "6", optional = true } enumflags2 = { version = "0.6", optional = true } [package.metadata.docs.rs] diff --git a/crates/varcon-core/src/parser.rs b/crates/varcon-core/src/parser.rs index 14a9fad..ba517ae 100644 --- a/crates/varcon-core/src/parser.rs +++ b/crates/varcon-core/src/parser.rs @@ -81,7 +81,7 @@ impl Cluster { nom::character::streaming::line_ending, ), ); - let cluster = nom::sequence::tuple(( + let mut cluster = nom::sequence::tuple(( nom::combinator::opt(header), nom::multi::many1(nom::sequence::terminated( Entry::parse, @@ -156,8 +156,7 @@ impl Entry { nom::bytes::streaming::tag("/"), nom::character::streaming::space0, )); - let (input, variants) = - nom::multi::separated_nonempty_list(var_sep, Variant::parse)(input)?; + let (input, variants) = nom::multi::separated_list1(var_sep, Variant::parse)(input)?; let desc_sep = nom::sequence::tuple(( nom::character::streaming::space0, @@ -320,8 +319,7 @@ mod test_entry { impl Variant { pub fn parse(input: &str) -> IResult<&str, Self> { - let types = - nom::multi::separated_nonempty_list(nom::character::streaming::space1, Type::parse); + let types = nom::multi::separated_list1(nom::character::streaming::space1, Type::parse); let sep = nom::sequence::tuple(( nom::bytes::streaming::tag(":"), nom::character::streaming::space0,