diff --git a/.editorconfig b/.editorconfig index 2b46995..f14b998 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,4 +1,4 @@ -# Copyright © 2019 Peter M. Stahl pemistahl@gmail.com +# Copyright © 2019-2020 Peter M. Stahl pemistahl@gmail.com # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/.gitignore b/.gitignore index ee88980..07fe3e8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -# Copyright © 2019 Peter M. Stahl pemistahl@gmail.com +# Copyright © 2019-2020 Peter M. Stahl pemistahl@gmail.com # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/.travis.yml b/.travis.yml index bbaa0e7..168dea4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ # -# Copyright © 2019 Peter M. Stahl pemistahl@gmail.com +# Copyright © 2019-2020 Peter M. Stahl pemistahl@gmail.com # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/Cargo.toml b/Cargo.toml index 6ae4c7c..112c7ba 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,4 +1,4 @@ -# Copyright © 2019 Peter M. Stahl pemistahl@gmail.com +# Copyright © 2019-2020 Peter M. Stahl pemistahl@gmail.com # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 884ff12..5cd0aee 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,3 +1,17 @@ +## grex 0.3.1 (released on 06 Jan 2020) + +### Test Coverage +- property tests have been added using the [proptest](https://crates.io/crates/proptest) crate +- big thanks go to [Christophe Biocca](https://github.com/christophebiocca) for pointing me to the concept of property tests in the first place and for writing an initial implementation of these tests + +### Bug Fixes +- some regular expression specific characters were not escaped correctly in the generated expression +- expressions consisting of a single alternation such as `^(abc|xyz)$` were missing the outer parentheses. This caused an erroneous match of strings such as `abc123` or `456xyz` because of precedence rules. +- the created DFA was wrong for repetition conversion in some corner cases. The input `a, aa, aaa, aaaa, aaab` previously returned the expression `^a{1,4}b?$` which erroneously matches `aaaab`. Now the correct expression `^(a{3}b|a{1,4})$` is returned. + +### Documentation +- some minor documentation updates + ## grex 0.3.0 (released on 24 Dec 2019) ### Features diff --git a/src/ast.rs b/src/ast.rs index 5d6d576..7534eba 100644 --- a/src/ast.rs +++ b/src/ast.rs @@ -1,5 +1,5 @@ /* - * Copyright © 2019 Peter M. Stahl pemistahl@gmail.com + * Copyright © 2019-2020 Peter M. Stahl pemistahl@gmail.com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/dfa.rs b/src/dfa.rs index 782aa75..2d5446c 100644 --- a/src/dfa.rs +++ b/src/dfa.rs @@ -1,5 +1,5 @@ /* - * Copyright © 2019 Peter M. Stahl pemistahl@gmail.com + * Copyright © 2019-2020 Peter M. Stahl pemistahl@gmail.com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/fmt.rs b/src/fmt.rs index 3896965..3398027 100644 --- a/src/fmt.rs +++ b/src/fmt.rs @@ -1,5 +1,5 @@ /* - * Copyright © 2019 Peter M. Stahl pemistahl@gmail.com + * Copyright © 2019-2020 Peter M. Stahl pemistahl@gmail.com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/grapheme.rs b/src/grapheme.rs index 11274ac..1e5a684 100644 --- a/src/grapheme.rs +++ b/src/grapheme.rs @@ -1,5 +1,5 @@ /* - * Copyright © 2019 Peter M. Stahl pemistahl@gmail.com + * Copyright © 2019-2020 Peter M. Stahl pemistahl@gmail.com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/lib.rs b/src/lib.rs index b029694..54d71d7 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,5 +1,5 @@ /* - * Copyright © 2019 Peter M. Stahl pemistahl@gmail.com + * Copyright © 2019-2020 Peter M. Stahl pemistahl@gmail.com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/macros.rs b/src/macros.rs index 28763e6..11764e3 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -1,5 +1,5 @@ /* - * Copyright © 2019 Peter M. Stahl pemistahl@gmail.com + * Copyright © 2019-2020 Peter M. Stahl pemistahl@gmail.com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/main.rs b/src/main.rs index f87dcb5..a453862 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,5 @@ /* - * Copyright © 2019 Peter M. Stahl pemistahl@gmail.com + * Copyright © 2019-2020 Peter M. Stahl pemistahl@gmail.com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/regexp.rs b/src/regexp.rs index be3ed1d..79694dd 100644 --- a/src/regexp.rs +++ b/src/regexp.rs @@ -1,5 +1,5 @@ /* - * Copyright © 2019 Peter M. Stahl pemistahl@gmail.com + * Copyright © 2019-2020 Peter M. Stahl pemistahl@gmail.com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/tests/cli_integration_tests.rs b/tests/cli_integration_tests.rs index d245e5d..913c39e 100644 --- a/tests/cli_integration_tests.rs +++ b/tests/cli_integration_tests.rs @@ -1,5 +1,5 @@ /* - * Copyright © 2019 Peter M. Stahl pemistahl@gmail.com + * Copyright © 2019-2020 Peter M. Stahl pemistahl@gmail.com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/tests/lib_integration_tests.rs b/tests/lib_integration_tests.rs index 86b601a..e7979f4 100644 --- a/tests/lib_integration_tests.rs +++ b/tests/lib_integration_tests.rs @@ -1,5 +1,5 @@ /* - * Copyright © 2019 Peter M. Stahl pemistahl@gmail.com + * Copyright © 2019-2020 Peter M. Stahl pemistahl@gmail.com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/tests/property_tests.rs b/tests/property_tests.rs index 70331b0..6fcdba0 100644 --- a/tests/property_tests.rs +++ b/tests/property_tests.rs @@ -1,5 +1,5 @@ /* - * Copyright © 2019 Peter M. Stahl pemistahl@gmail.com + * Copyright © 2019-2020 Peter M. Stahl pemistahl@gmail.com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License.