summaryrefslogtreecommitdiffstats
path: root/vendor/nom-6.1.2
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/nom-6.1.2')
-rw-r--r--vendor/nom-6.1.2/.cargo-checksum.json1
-rw-r--r--vendor/nom-6.1.2/.travis.yml110
-rw-r--r--vendor/nom-6.1.2/CHANGELOG.md1324
-rw-r--r--vendor/nom-6.1.2/Cargo.lock774
-rw-r--r--vendor/nom-6.1.2/Cargo.toml200
-rw-r--r--vendor/nom-6.1.2/LICENSE20
-rw-r--r--vendor/nom-6.1.2/README.md318
-rw-r--r--vendor/nom-6.1.2/build.rs7
-rw-r--r--vendor/nom-6.1.2/doc/nom_recipes.md295
-rw-r--r--vendor/nom-6.1.2/src/bits/complete.rs83
-rw-r--r--vendor/nom-6.1.2/src/bits/macros.rs265
-rw-r--r--vendor/nom-6.1.2/src/bits/mod.rs129
-rw-r--r--vendor/nom-6.1.2/src/bits/streaming.rs80
-rw-r--r--vendor/nom-6.1.2/src/branch/macros.rs954
-rw-r--r--vendor/nom-6.1.2/src/branch/mod.rs259
-rw-r--r--vendor/nom-6.1.2/src/bytes/complete.rs728
-rw-r--r--vendor/nom-6.1.2/src/bytes/macros.rs994
-rw-r--r--vendor/nom-6.1.2/src/bytes/mod.rs6
-rw-r--r--vendor/nom-6.1.2/src/bytes/streaming.rs715
-rw-r--r--vendor/nom-6.1.2/src/character/complete.rs1020
-rw-r--r--vendor/nom-6.1.2/src/character/macros.rs112
-rw-r--r--vendor/nom-6.1.2/src/character/mod.rs116
-rw-r--r--vendor/nom-6.1.2/src/character/streaming.rs993
-rw-r--r--vendor/nom-6.1.2/src/combinator/macros.rs1226
-rw-r--r--vendor/nom-6.1.2/src/combinator/mod.rs1138
-rw-r--r--vendor/nom-6.1.2/src/error.rs889
-rw-r--r--vendor/nom-6.1.2/src/internal.rs449
-rw-r--r--vendor/nom-6.1.2/src/lib.rs519
-rw-r--r--vendor/nom-6.1.2/src/multi/macros.rs1079
-rw-r--r--vendor/nom-6.1.2/src/multi/mod.rs1122
-rw-r--r--vendor/nom-6.1.2/src/number/complete.rs1903
-rw-r--r--vendor/nom-6.1.2/src/number/macros.rs265
-rw-r--r--vendor/nom-6.1.2/src/number/mod.rs18
-rw-r--r--vendor/nom-6.1.2/src/number/streaming.rs1986
-rw-r--r--vendor/nom-6.1.2/src/regexp/macros.rs409
-rw-r--r--vendor/nom-6.1.2/src/regexp/mod.rs675
-rw-r--r--vendor/nom-6.1.2/src/sequence/macros.rs920
-rw-r--r--vendor/nom-6.1.2/src/sequence/mod.rs357
-rw-r--r--vendor/nom-6.1.2/src/str.rs507
-rw-r--r--vendor/nom-6.1.2/src/traits.rs1658
-rw-r--r--vendor/nom-6.1.2/src/util.rs218
-rw-r--r--vendor/nom-6.1.2/tests/arithmetic.rs96
-rw-r--r--vendor/nom-6.1.2/tests/arithmetic_ast.rs163
-rw-r--r--vendor/nom-6.1.2/tests/bitstream.rs32
-rw-r--r--vendor/nom-6.1.2/tests/blockbuf-arithmetic.rs321
-rw-r--r--vendor/nom-6.1.2/tests/css.rs47
-rw-r--r--vendor/nom-6.1.2/tests/custom_errors.rs49
-rw-r--r--vendor/nom-6.1.2/tests/escaped.rs28
-rw-r--r--vendor/nom-6.1.2/tests/float.rs47
-rw-r--r--vendor/nom-6.1.2/tests/fnmut.rs41
-rw-r--r--vendor/nom-6.1.2/tests/inference.rs54
-rw-r--r--vendor/nom-6.1.2/tests/ini.rs226
-rw-r--r--vendor/nom-6.1.2/tests/ini_str.rs218
-rw-r--r--vendor/nom-6.1.2/tests/issues.rs360
-rw-r--r--vendor/nom-6.1.2/tests/json.rs237
-rw-r--r--vendor/nom-6.1.2/tests/mp4.rs318
-rw-r--r--vendor/nom-6.1.2/tests/multiline.rs33
-rw-r--r--vendor/nom-6.1.2/tests/named_args.rs122
-rw-r--r--vendor/nom-6.1.2/tests/overflow.rs139
-rw-r--r--vendor/nom-6.1.2/tests/reborrow_fold.rs18
-rw-r--r--vendor/nom-6.1.2/tests/test1.rs44
61 files changed, 27434 insertions, 0 deletions
diff --git a/vendor/nom-6.1.2/.cargo-checksum.json b/vendor/nom-6.1.2/.cargo-checksum.json
new file mode 100644
index 00000000..3e2fe34c
--- /dev/null
+++ b/vendor/nom-6.1.2/.cargo-checksum.json
@@ -0,0 +1 @@
+{"files":{".travis.yml":"d42be3314463c8292b8007849abbcfa7eb2859d725208bab29f8e6f5b4350d9b","CHANGELOG.md":"b394a89cd25428f9e50b38d37568bf21308c64f8584f6f4bf57daafb7678da22","Cargo.lock":"73ee56320ac53ea573c0b5c9c439c70eef4d4ca198e175b780465a1d40f60353","Cargo.toml":"a85416a91ebdb8cebae50d31c1ce77517de2bcaac6ad9561b3e54a2902315990","LICENSE":"4dbda04344456f09a7a588140455413a9ac59b6b26a1ef7cdf9c800c012d87f0","README.md":"1877d3bf37aa2ad1cbb7126d125a3d05dddc5845b68395a39014020b864fe2fe","build.rs":"a5af84de9e65e08b88127f99f6cb5ed9a84506b115f60be4a59c918471cc8c48","doc/nom_recipes.md":"9e0313c79b97fe9678b0d13bb666793170dcdffb9257a2d597a4a733c0551d4d","src/bits/complete.rs":"f5e35d32c3c370510445c7708ec5ff55ce3387aaf8a147b73b26b1bc5a5e171c","src/bits/macros.rs":"82896ae14c47735b906b81517cd49eb87423a5b874dff5a685383fb80427a3aa","src/bits/mod.rs":"490a8595bec6ad0c64ba088452f6a7ebd8846e7d3d48d61432af651e912d186c","src/bits/streaming.rs":"de63b314a893e414b61ba989bfc368136ea2759556d676cb2caad492c3ab7a34","src/branch/macros.rs":"2575b30b2b4a280014cce9b150b25180129ca3df22eb108a59fc4e6e840aeb2e","src/branch/mod.rs":"f2ff0eb5118ea3ecfc64cd522d6c25fabfc3ad4ce5c3ec66b24b80df116e951a","src/bytes/complete.rs":"7a8262ecd25cb4de5c4633681ad2d6e8953fd30545bafd5fc08ba175e8fe7160","src/bytes/macros.rs":"45e2d5c34daff2b1cc667a7908412f5ce05168fb3921e803f6464b49c03f916d","src/bytes/mod.rs":"2eea884d8b95f7caa831f29e918a1cfba112ca22fb842d1999e53aecacc8f6b7","src/bytes/streaming.rs":"7518cbd11f74f392dca9a707196618a909bc9ac6858a78f1efbb0c2ab4f96a2e","src/character/complete.rs":"61a35ab0ba05c2d230bfb4ee580dd44c352cbe3e00c10cddac59867dc835a619","src/character/macros.rs":"46f520da5d8c9443ed0a7e6f7f887729add4f444625727cf4931425c0e1b3afa","src/character/mod.rs":"4758410eb87ec505e616109f8b4bab0c28ce0cec6dd0f200c712d19e0d64f159","src/character/streaming.rs":"011edf543463456e808a7bdd07da2b97ba189270cddad57eb0965ed63987a6af","src/combinator/macros.rs":"67c598cb9568724b9701c4b400314f06faf81379f9c4cd3631860f727636a1ab","src/combinator/mod.rs":"4569cfe8e84d49dff348c8e65f75a870af1e9acd14d76c217e5ed577df6e1ca1","src/error.rs":"6524cada484c5a9eade3271f9c711c9b49bea7d84985c617e2afa6094cb3d474","src/internal.rs":"a03a2f50a661b79f74591b87438dd65c446f237102db5ff3d8033cee5079568e","src/lib.rs":"f653ce94b759a6e1faa9675e848150ae89641f5ea2c9377386adca4e8d78822b","src/multi/macros.rs":"e2cfd7daca17e4d994e17d6636774ed75ce9a0588fdada09f3026d515d06981b","src/multi/mod.rs":"da98e73e0eb9d245f04faf2d4bb346fdcf95f7349fbdfe409f5690a004b3a900","src/number/complete.rs":"fb7d1153ac6795acf8639e2d072ebb6b66a9c0d7b4aec56bed79dfe7f3598a5b","src/number/macros.rs":"565bdd351415a10f72d0d954e41d6edcc12d1f5d315ec952b163f208a9e2849f","src/number/mod.rs":"250acd33777fbb110db438c1be023335a46cf35859ae658b6ce5edf477d95d36","src/number/streaming.rs":"9b3c4002fee0802d5923fdcc0f40af9aee65116057034978784bd1ba0e57d47e","src/regexp/macros.rs":"3455d52e2564b8ab9a440c512ce3bc8370ecaf8dc314d360721ee202882ac458","src/regexp/mod.rs":"60ce2214dceb8b83f9a38d9124ed2855ddff26992ddc3c3674eafb9c22b7e3c3","src/sequence/macros.rs":"c53b433ed41f4823b7316a450d43de567db01ea5d16288afa7352889d4e44615","src/sequence/mod.rs":"87e5397fc633892ce80c184f4ac48c063d07b636d5f912c13b94195dd16a9cac","src/str.rs":"005fa4185bd1b05244b5d038a9b616a46c308160561ba0a91d625e8152c8fbe9","src/traits.rs":"1701402896d4350fc7068a893a2e8cc04a07ea35f3c5d87fe6e8c07b63e4d6b5","src/util.rs":"581d7c5d2fca708e7c04bb519e09e1a95920618082f0c79123ed5c18427bcf86","tests/arithmetic.rs":"7e49c0f01edcb4395c465b817fdfb0be650939dd23ba5cd39fa450ea963febfd","tests/arithmetic_ast.rs":"0fd86cf6fd674d999057e8ea0c37c07c5db5462f2449bb892d63390f312bc02b","tests/bitstream.rs":"ccaa880c6bf22a1672615e379ae14519d796df5e374eb97eefe05e7a56aab1e0","tests/blockbuf-arithmetic.rs":"099fdf75da97ae032006d8c82ea2207265c5161a08d1370e1ddddb01e73afaf4","tests/css.rs":"25225bbc0dcc5df42938b1a0b122277d01134356e8da106c0885336fb48d8f1c","tests/custom_errors.rs":"3ed0bdf11d25c9763e7a8e6d483d078761dd935d504042097c4d99c71e631dfe","tests/escaped.rs":"c25987ea6d9a7dde74d58a49c332d223da3a495569cb79e3fe921bce51729ead","tests/float.rs":"544a71e78594990c335f6e57e8c648918ca9f0de97625886a946ad90bc020300","tests/fnmut.rs":"c8ee3f9f4036a7bc1662c10e370c092c269529afd878ef7a4bd20460fd083db8","tests/inference.rs":"5a042bca67efe102de271ad2141b8c62340abfc2616722d34c199479da22eefe","tests/ini.rs":"89220678c57e15432b9e4df13729aeb26373e27c0149fa2afb8252a3664f0a20","tests/ini_str.rs":"5d06688889fecabd77a43d428776eab6c3c1941626416178da8fae246c66ca17","tests/issues.rs":"194799d06880cabf56d30e1693139013a1003530adadf1d718198c95993e72de","tests/json.rs":"2a5227216036e28bcff982d2c691346bae2a8d8678e0c088798cb3c773caf4ee","tests/mp4.rs":"802168de1363c42883076a4122d292d8c6f675546f595ad29e1f1b9a34b97c93","tests/multiline.rs":"6a89d3e2cc9b59c0b10993088b396f26a4ef4ad218a44d22284421376a498ec4","tests/named_args.rs":"8b4265ac687eadcac1ef93be3a10ea2ca31aa7119afc14fc4463af3c70e7324c","tests/overflow.rs":"124d503e66e05bb027c332ad5050cc7f5aea4492c8db74430c34b9af12bee1ec","tests/reborrow_fold.rs":"9328deafc2143c2a2d1a0be86e2448b644cffcb5f0935c8b24eb469f1f9477c0","tests/test1.rs":"06fc9e52638f16bfc3ef69cd26b927e0cf55706d6f132ab7c0f1072208475853"},"package":"e7413f999671bd4745a7b624bd370a569fb6bc574b23c83a3c5ed2e453f3d5e2"} \ No newline at end of file
diff --git a/vendor/nom-6.1.2/.travis.yml b/vendor/nom-6.1.2/.travis.yml
new file mode 100644
index 00000000..3c191811
--- /dev/null
+++ b/vendor/nom-6.1.2/.travis.yml
@@ -0,0 +1,110 @@
+language: rust
+# sudo is required to enable kcov to use the personality syscall
+sudo: required
+dist: trusty
+cache: cargo
+
+rust:
+ - nightly
+ - beta
+ - stable
+ - 1.44.0
+
+env:
+ matrix:
+ - FEATURES='--features "regexp"'
+
+before_script:
+ - eval git pull --rebase https://github.com/Geal/nom master
+ - eval git log --pretty=oneline HEAD~5..HEAD
+
+matrix:
+ include:
+ - rust: stable
+ env: FEATURES='--features "std lexical regexp"'
+ before_script:
+ - export PATH=$HOME/.cargo/bin:$PATH
+ - cargo install cargo-update || echo "cargo-update already installed"
+ - cargo install cargo-tarpaulin || echo "cargo tarpaulin already installed"
+ - cargo install-update -a
+ script:
+ cargo tarpaulin --ciserver travis-ci --coveralls $TRAVIS_JOB_ID
+ - rust: stable
+ env: FEATURES=''
+ - rust: stable
+ env: FEATURES='--no-default-features'
+ # still compatible with 1.36.0 if not using lexical-core
+ - rust: 1.37.0
+ env: FEATURES='--no-default-features --features "regexp lexical"'
+ - rust: stable
+ env: FEATURES='--no-default-features --features "alloc"'
+ - rust: nightly
+ env: FEATURES=''
+ - rust: nightly
+ env: FEATURES='--no-default-features'
+ - rust: nightly
+ env: FEATURES='--no-default-features --features "alloc"'
+ - rust: nightly
+ env: DOC_FEATURES='--features "std lexical regexp" --no-default-features'
+ before_script:
+ - export PATH=$HOME/.cargo/bin:$PATH
+ script:
+ - eval cargo doc --verbose $DOC_FEATURES
+
+ allow_failures:
+ - rust: stable
+ env: FEATURES=''
+ before_script:
+ - export PATH=$HOME/.cargo/bin:$PATH
+ - rustup component add rustfmt-preview
+ script:
+ - eval cargo fmt -- --write-mode=diff
+
+notifications:
+ webhooks:
+ urls:
+ - https://webhooks.gitter.im/e/9c035a194ac4fd4cc061
+ on_success: change
+ on_failure: always
+ on_start: false
+
+
+addons:
+ apt:
+ packages:
+ - libcurl4-openssl-dev
+ - libelf-dev
+ - libdw-dev
+ - binutils-dev
+ - cmake
+ sources:
+ - kalakris-cmake
+
+cache:
+ directories:
+ - /home/travis/.cargo
+
+before_cache:
+ - rm -rf /home/travis/.cargo/registry
+
+script:
+ - eval cargo build --verbose $FEATURES
+ - eval cargo test --verbose $FEATURES
+
+after_success: |
+ case "$TRAVIS_RUST_VERSION" in
+ nightly)
+ if [ "${TRAVIS_PULL_REQUEST_BRANCH:-$TRAVIS_BRANCH}" != "master" ]; then
+ git fetch &&
+ git checkout master &&
+ cargo bench --verbose
+ fi
+
+ if [ "$FEATURES" == '--features "regexp"' ]; then
+ cargo bench --verbose
+ fi
+ ;;
+
+ *)
+ ;;
+ esac
diff --git a/vendor/nom-6.1.2/CHANGELOG.md b/vendor/nom-6.1.2/CHANGELOG.md
new file mode 100644
index 00000000..328a95a3
--- /dev/null
+++ b/vendor/nom-6.1.2/CHANGELOG.md
@@ -0,0 +1,1324 @@
+# Change Log
+
+## [Unreleased][unreleased]
+
+### Thanks
+
+### Changed
+
+## 6.0.1 - 2020-11-24
+
+### Thanks
+
+This release was done thanks to the hard work of (by order of appearance in the commit list):
+
+- @Leonqn
+- @nickelc
+- @toshokan
+- @juchiast
+- @shssoichiro
+- @jlkiri
+- @chifflier
+- @fkloiber
+- @Kaoet
+- @Matthew Plant
+
+### Added
+
+- `ErrorConvert` implementation for `VerboseError`
+
+### Changed
+
+- CI fixes
+- `fold_many*` now accept `FnMut` for the accumulation function
+- relaxed input bounds on `length_count`
+
+# Fixed
+
+- documentation fixes
+- the `#[deprecated]` attribute was removed from traits because it does not compile anymore on nightly
+- bits and bytes combinators from the bits modules are now converted to use `FnMut`
+
+## 6.0.0 - 2020-10-31
+
+### Thanks
+
+This release was done thanks to the hard work of (by order of appearance in the commit list):
+- @chifflier
+- @shepmaster
+- @amerelo
+- @razican
+- @Palladinium
+- @0ndorio
+- Sebastian Zivota
+- @keruspe
+- @devonhollowood
+- @parasyte
+- @nnt0
+- @AntoineCezar
+- @GuillaumeGomez
+- @eijebong
+- @stadelmanma
+- @sphynx
+- @snawaz
+- @fosskers
+- @JamesHarrison
+- @calebsander
+- @jthornber
+- @ahmedcharles
+- @rljacobson
+- @benkay86
+- @georgeclaghorn
+- @TianyiShi2001
+- @shnewto
+- @alfriadox
+- @resistor
+- @myrrlyn
+- @chipsenkbeil
+- @ruza-net
+- @fanf2
+- @jameysharp
+- @FallenWarrior2k
+- @jmg-duarte
+- @ericseppanen
+- @hbina
+- Andreas Molzer
+- @nickelc
+- @bgourlie
+
+## Notable changes
+
+This release is a more polished version of nom 5, that came with a focus on
+function parsers, by relaxing the requirements: combinators will return a
+`impl FnMut` instead of `impl Fn`, allowing closures that change their context,
+and parsers can be any type now, as long as they implement the new `Parser` trait.
+That parser trait also comes with a few helper methods.
+
+Error management was often a pain point, so a lot of work went into making it easier.
+Now it integrates with `std:error::Error`, the `IResult::finish()` method allows you
+to convert to a more usable type, the `into` combinator can convert the error type
+if there's a `From` implementation, and there are more specific error traits like
+`ContextError` for the `context` combinator, and `FromExternalError` for `map_res`.
+While the `VerboseError` type and its `convert_error` function saw some changes,
+not many features ill be added to it, instead you are encouraged to build the error
+type that corresponds to your needs if you are building a language parser.
+
+This version also integrates with the excellent [bitvec](https://crates.io/crates/bitvec)
+crate for better bit level parsing. This part of nom was not great and a bit of a hack,
+so this will give better options for those parsers.
+
+At last, documentation! There are now more code examples, functions and macros that require
+specific cargo features are now clearly indicated, and there's a new `recipes` module
+containing example patterns.
+
+### Breaking changes
+
+- the minimal Rust version is now 1.44 (1.37 if building without the `alloc` or `std` features)
+- streaming parsers return the number of additional bytes they need, not the total. This was supposed to be the case everywhere, but some parsers were forgotten
+- removed the `regexp_macros` cargo feature
+- the `context` combinator is not linked to `ParseError` anymore, instead it come with its own `ContextError` trait
+- `Needed::Size` now contains a `NonZeroUsize`, so we can reduce the structure's size by 8 bytes. When upgrading, `Needed::Size(number)` can be replaced with `Needed::new(number)`
+- there is now a more general `Parser` trait, so parsers can be something else than a function. This trait also comes with combinator methods like `map`, `flat_map`, `or`. Since it is implemented on `Fn*` traits, it should not affect existing code too much
+- combinators that returned a `impl Fn` now return a `impl FnMut` to allow parser closures that capture some mutable value from the context
+- `separated_list` is now `separated_list0`
+- removed the deprecated `methods` module
+- removed the deprecated `whitespace` module
+- the default error type is now a struct (`nom::error::Error`) instead of a tuple
+- the `FromExternalError` allows wrapping the error returned by the function in the `map_res` combinator
+- renamed the `dbg!` macro to avoid conficts with `std::dbg!`
+- `separated_list` now allows empty elements
+
+
+### Added
+
+- function version of regex parsers
+- `fill`: attempts to fill the output slice passed as argument
+- `success`: returns a value without consuming the input
+- `satisfy`: checks a predicate over the next character
+- `eof` function combinator
+- `consumed`: returnes the produced value and the consumed input
+- `length_count` function combinator
+- `into`: converts a parser's output and error values if `From` implementations are available
+- `IResult::finish()`: converts a parser's result to `Result<(I, O), E>` by removing the distinction between `Error` and `Failure` and panicking on `Incomplete`
+- non macro versions of `u16`, `i32`, etc, with configurable endianness
+- `is_newline` function
+- `std::error::Error` implementation for nom's error types
+- recipes section of the documentation, outlining common patterns in nom
+- custom errors example
+- bitstream parsing with the `BitSlice` type from the bitvec crate
+- native endianness parsers
+- github actions for CI
+
+### Changed
+
+- allows lexical-core 0.7
+- number parsers are now generic over the input type
+- stabilized the `alloc` feature
+- `convert_error` accepts a type that derefs to `&str`
+- the JSON example now follows the spec better
+
+### Fixed
+- use `fold_many0c` in the `fold_many0` macro
+
+## 5.1.1 - 2020-02-24
+
+### Thanks
+
+- @Alexhuszagh for float fixes
+- @AlexanderEkdahl, @JoshOrndorff, @akitsu-sanae for docs fixes
+- @ignatenkobrain: dependency update
+- @derekdreery: `map` implementation for errors
+- @Lucretiel for docs fixes and compilation fixes
+- adytzu2007: warning fixes
+- @lo48576: error management fixes
+
+### Fixed
+
+- C symbols compilation errors due to old lexical-core version
+
+### Added
+
+- `Err` now has a `map` function
+
+### Changed
+
+- Make `error::context()` available without `alloc` feature
+
+## 5.1.0 - 2020-01-07
+
+### Thanks
+
+- @Hywan, @nickmooney, @jplatte, @ngortheone, @ejmg, @SirWindfield, @demurgos, @spazm, @nyarly, @guedou, @adamnemecek, for docs fixes
+- @Alxandr for error management bugfixes
+- @Lucretiel for example fixes and optimizations
+- @adytzu2007 for optimizations
+- @audunhalland for utf8 fixes
+
+### Fixed
+
+- panic in `convert_error`
+- `compile_error` macro usage
+
+### Added
+
+- `std::error::Error`, `std::fmt::Display`, `Eq`, `ToOwned` implementations for errors
+- inline attribute for `ToUsize`
+
+### Changed
+
+- `convert_error` optimization
+- `alt` optimization
+
+## 5.0.1 - 2019-08-22
+
+### Thanks
+
+- @waywardmonkeys, @phaazon, @dalance for docs fixes
+- @kali for `many0_m_n` fixes
+- @ia0 for macros fixes
+
+### Fixed
+
+- `many0_m_n` now supports the n=1 case
+- relaxed trait requirements in `cut`
+- `peek!` macro reimplementation
+- type inference in `value!`
+
+## 5.0.0 - 2019-06-24
+
+This version comes with a complete rewrite of nom internals to use functions as a base
+for parsers, instead of macros. Macros have been updated to use functions under
+the hood, so that most existing parsers will work directly or require minimal changes.
+
+The `CompleteByteSlice` and `CompleteStr` input types were removed. To get different
+behaviour related to streaming or complete input, there are different versions of some
+parsers in different submodules, like `nom::character::streaming::alpha0` and
+`nom::character::complete::alpha0`.
+
+The `verbose-errors` feature is gone, now the error type is decided through a generic
+bound. To get equivalent behaviour to `verbose-errors`, check out `nom::error::VerboseError`
+
+### Thanks
+
+- @lowenheim helped in refactoring and error management
+- @Keruspe helped in refactoring and fixing tests
+- @pingiun, @Songbird0, @jeremystucki, @BeatButton, @NamsooCho, @Waelwindows, @rbtcollins, @MarkMcCaskey for a lot of help in rewriting the documentation and adding code examples
+- @GuillaumeGomez for documentation rewriting and checking
+- @iosmanthus for bug fixes
+- @lo48576 for error management fixes
+- @vaffeine for macros visibility fixes
+- @webholik and @Havvy for `escaped` and `escaped_transform` fixes
+- @proman21 for help on porting bits parsers
+
+### Added
+
+- the `VerboseError` type accumulates position info and error codes, and can generate a trace with span information
+- the `lexical-core` crate is now used by default (through the `lexical` compilation feature) to parse floats from text
+- documentation and code examples for all functions and macros
+
+### Changed
+
+- nom now uses functions instead of macros to generate parsers
+- macros now use the functions under the hood
+- the minimal Rust version is now 1.31
+- the verify combinator's condition function now takes its argument by reference
+- `cond` will now return the error of the parser instead of None
+- `alpha*`, `digit*`, `hex_digit*`, `alphanumeric*` now recognize only ASCII characters
+
+### Removed
+
+- deprecated string parsers (with the `_s` suffix), the normal version can be used instead
+- `verbose-errors` is not needed anymore, now the error type can be decided when writing the parsers, and parsers provided by nom are generic over the error type
+- `AtEof`, `CompleteByteSlice` and `CompleteStr` are gone, instead some parsers are specialized to work on streaming or complete input, and provided in different modules
+- character parsers that were aliases to their `*1` version: eol, alpha, digit, hex_digit, oct_digit, alphanumeric, space, multispace
+- `count_fixed` macro
+- `whitespace::sp` can be replaced by `character::complete::multispace0`
+- method combinators are now in the nom-methods crate
+- `take_until_either`, `take_until_either1`, `take_until_either_and_consume` and `take_until_either_and_consume1`: they can be replaced with `is_not` (possibly combined with something else)
+- `take_until_and_consume`, `take_until_and_consume1`: they can be replaced with `take_until` combined with `take`
+- `sized_buffer` and `length_bytes!`: they can be replaced with the `length_data` function
+- `non_empty`, `begin` and `rest_s` function
+- `cond_reduce!`, `cond_with_error!`, `closure!`, `apply`, `map_res_err!`, `expr_opt!`, `expr_res!`
+- `alt_complete`, `separated_list_complete`, `separated_nonempty_list_complete`
+
+## 4.2.3 - 2019-03-23
+
+### Fixed
+
+- add missing `build.rs` file to the package
+- fix code comparison links in changelog
+
+## 4.2.2 - 2019-03-04
+
+### Fixed
+
+- regression in do_parse macro import for edition 2018
+
+## 4.2.1 - 2019-02-27
+
+### Fixed
+
+- macro expansion error in `do_parse` due to `compile_error` macro usage
+
+## 4.2.0 - 2019-01-29
+
+### Thanks
+
+- @JoshMcguigan for unit test fixes
+- @oza for documentation fixes
+- @wackywendell for better error conversion
+- @Zebradil for documentation fixes
+- @tsraom for new combinators
+- @hcpl for minimum Rust version tests
+- @KellerFuchs for removing some unsafe uses in float parsing
+
+### Changed
+
+- macro import in edition 2018 code should work without importing internal macros now
+- the regex parsers do not require the calling code to have imported the regex crate anymore
+- error conversions are more ergonomic
+- method combinators are now deprecated. They might be moved to a separate crate
+- nom now specifies Rust 1.24.1 as minimum version. This was already the case before, now it is made explicit
+
+### Added
+
+- `many0_count` and `many1_count` to count applications of a parser instead of
+accumulating its results in a `Vec`
+
+### Fixed
+
+- overflow in the byte wrapper for bit level parsers
+- `f64` parsing does not use `transmute` anymore
+
+## 4.1.1 - 2018-10-14
+
+### Fixed
+
+- compilation issue in verbose-errors mode for `add_return_error`
+
+## 4.1.0 - 2018-10-06
+
+### Thanks
+
+- @xfix for fixing warnings, simplifying examples and performance fixes
+- @dvberkel for documentation fixes
+- @chifflier for fixing warnings
+- @myrrlyn for dead code elimination
+- @petrochenkov for removing redundant test macros
+- @tbelaire for documentation fixes
+- @khernyo for fixing warnings
+- @linkmauve for documentation fixes
+- @ProgVal for documentation fixes, warning fixes and error management
+- @Nemo157 for compilation fixes
+- @RReverser for documentation fixes
+- @xpayn for fixing warnings
+- Blas Rodriguez Irizar for documentation fixes
+- @badboy for documentation fixes
+- @kyrias for compilation fixes
+- @kurnevsky for the `rest_len` parser
+- @hjr3 for new documentation examples
+- @fengalin for error management
+- @ithinuel for the pcap example project
+- @phaazon for documentation fixes
+- @juchiast for documentation fixes
+- @jrakow for the `u128` and `i128` parsers
+- @smarnach for documentation fixes
+- @derekdreery for `pub(crate)` support
+- @YaLTeR for `map_res_err!`
+
+### Added
+
+- `rest_len` parser, returns the length of the remaining input
+- `parse_to` has its own error code now
+- `u128` and `i128` parsers in big and little endian modes
+- support for `pub(crate)` synta