summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Vander Stoep <jeffv@google.com>2023-02-03 18:17:46 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-02-03 18:17:46 +0000
commit6da1f95fc5e757b889d3b44b71be02114eed27d1 (patch)
tree58525ccc4b2e0c130a3f640e59437d76fcd7900f
parent6326c17ec68e11e39b719928d78b51abf73aeb9f (diff)
parent3a2f3ea1462e89abc5453f2c3663df75a04c0ca1 (diff)
downloadpest_derive-6da1f95fc5e757b889d3b44b71be02114eed27d1.tar.gz
Upgrade pest_derive to 2.5.4 am: 1ee6e87451 am: 31fc7cfa63 am: 3a2f3ea146
Original change: https://android-review.googlesource.com/c/platform/external/rust/crates/pest_derive/+/2419086 Change-Id: I8dc2ea54dba6517a5a8f6130d227db8b59fb5590 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--Android.bp2
-rw-r--r--Cargo.lock (renamed from Cargo.lock.saved)58
-rw-r--r--Cargo.toml6
-rw-r--r--Cargo.toml.orig6
-rw-r--r--METADATA10
-rw-r--r--examples/base.pest2
-rw-r--r--examples/calc.pest5
-rw-r--r--examples/calc.rs1
-rw-r--r--tests/grammar.pest5
-rw-r--r--tests/implicit.pest14
-rw-r--r--tests/implicit.rs25
11 files changed, 89 insertions, 45 deletions
diff --git a/Android.bp b/Android.bp
index 4cc2568..a04437c 100644
--- a/Android.bp
+++ b/Android.bp
@@ -41,7 +41,7 @@ rust_proc_macro {
name: "libpest_derive",
crate_name: "pest_derive",
cargo_env_compat: true,
- cargo_pkg_version: "2.5.1",
+ cargo_pkg_version: "2.5.4",
srcs: ["src/lib.rs"],
edition: "2021",
features: [
diff --git a/Cargo.lock.saved b/Cargo.lock
index 1d1a350..67d29bb 100644
--- a/Cargo.lock.saved
+++ b/Cargo.lock
@@ -58,21 +58,21 @@ dependencies = [
[[package]]
name = "libc"
-version = "0.2.137"
+version = "0.2.139"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89"
+checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
[[package]]
name = "once_cell"
-version = "1.16.0"
+version = "1.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"
+checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66"
[[package]]
name = "pest"
-version = "2.5.1"
+version = "2.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc8bed3549e0f9b0a2a78bf7c0018237a2cdf085eecbbc048e52612438e4e9d0"
+checksum = "4ab62d2fa33726dbe6321cc97ef96d8cde531e3eeaf858a058de53a8a6d40d8f"
dependencies = [
"thiserror",
"ucd-trie",
@@ -80,7 +80,7 @@ dependencies = [
[[package]]
name = "pest_derive"
-version = "2.5.1"
+version = "2.5.4"
dependencies = [
"pest",
"pest_generator",
@@ -88,9 +88,9 @@ dependencies = [
[[package]]
name = "pest_generator"
-version = "2.5.1"
+version = "2.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28a1af60b1c4148bb269006a750cff8e2ea36aff34d2d96cf7be0b14d1bed23c"
+checksum = "2b27bd18aa01d91c8ed2b61ea23406a676b42d82609c6e2581fba42f0c15f17f"
dependencies = [
"pest",
"pest_meta",
@@ -101,38 +101,38 @@ dependencies = [
[[package]]
name = "pest_meta"
-version = "2.5.1"
+version = "2.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fec8605d59fc2ae0c6c1aefc0c7c7a9769732017c0ce07f7a9cfffa7b4404f20"
+checksum = "9f02b677c1859756359fc9983c2e56a0237f18624a3789528804406b7e915e5d"
dependencies = [
"once_cell",
"pest",
- "sha1",
+ "sha2",
]
[[package]]
name = "proc-macro2"
-version = "1.0.47"
+version = "1.0.50"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725"
+checksum = "6ef7d57beacfaf2d8aee5937dab7b7f28de3cb8b1828479bb5de2a7106f2bae2"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
-version = "1.0.21"
+version = "1.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
+checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"
dependencies = [
"proc-macro2",
]
[[package]]
-name = "sha1"
-version = "0.10.5"
+name = "sha2"
+version = "0.10.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
+checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
dependencies = [
"cfg-if",
"cpufeatures",
@@ -141,9 +141,9 @@ dependencies = [
[[package]]
name = "syn"
-version = "1.0.105"
+version = "1.0.107"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60b9b43d45702de4c839cb9b51d9f529c5dd26a4aff255b42b1ebc03e88ee908"
+checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
dependencies = [
"proc-macro2",
"quote",
@@ -152,18 +152,18 @@ dependencies = [
[[package]]
name = "thiserror"
-version = "1.0.37"
+version = "1.0.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e"
+checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.37"
+version = "1.0.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb"
+checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f"
dependencies = [
"proc-macro2",
"quote",
@@ -172,9 +172,9 @@ dependencies = [
[[package]]
name = "typenum"
-version = "1.15.0"
+version = "1.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
+checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
[[package]]
name = "ucd-trie"
@@ -184,9 +184,9 @@ checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81"
[[package]]
name = "unicode-ident"
-version = "1.0.5"
+version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"
+checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
[[package]]
name = "version_check"
diff --git a/Cargo.toml b/Cargo.toml
index 7266a1b..1af1392 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -13,7 +13,7 @@
edition = "2021"
rust-version = "1.56"
name = "pest_derive"
-version = "2.5.1"
+version = "2.5.4"
authors = ["DragoČ™ Tiselice <dragostiselice@gmail.com>"]
description = "pest's derive macro"
homepage = "https://pest.rs/"
@@ -34,11 +34,11 @@ name = "pest_derive"
proc-macro = true
[dependencies.pest]
-version = "2.5.1"
+version = "2.5.4"
default-features = false
[dependencies.pest_generator]
-version = "2.5.1"
+version = "2.5.4"
default-features = false
[features]
diff --git a/Cargo.toml.orig b/Cargo.toml.orig
index 2dd43a8..a7416a1 100644
--- a/Cargo.toml.orig
+++ b/Cargo.toml.orig
@@ -1,7 +1,7 @@
[package]
name = "pest_derive"
description = "pest's derive macro"
-version = "2.5.1"
+version = "2.5.4"
edition = "2021"
authors = ["DragoČ™ Tiselice <dragostiselice@gmail.com>"]
homepage = "https://pest.rs/"
@@ -23,5 +23,5 @@ std = ["pest/std", "pest_generator/std"]
[dependencies]
# for tests, included transitively anyway
-pest = { path = "../pest", version = "2.5.1", default-features = false }
-pest_generator = { path = "../generator", version = "2.5.1", default-features = false }
+pest = { path = "../pest", version = "2.5.4", default-features = false }
+pest_generator = { path = "../generator", version = "2.5.4", default-features = false }
diff --git a/METADATA b/METADATA
index abf251a..3fe8fbe 100644
--- a/METADATA
+++ b/METADATA
@@ -11,13 +11,13 @@ third_party {
}
url {
type: ARCHIVE
- value: "https://static.crates.io/crates/pest_derive/pest_derive-2.5.1.crate"
+ value: "https://static.crates.io/crates/pest_derive/pest_derive-2.5.4.crate"
}
- version: "2.5.1"
+ version: "2.5.4"
license_type: NOTICE
last_upgrade_date {
- year: 2022
- month: 12
- day: 13
+ year: 2023
+ month: 2
+ day: 3
}
}
diff --git a/examples/base.pest b/examples/base.pest
new file mode 100644
index 0000000..c63d48a
--- /dev/null
+++ b/examples/base.pest
@@ -0,0 +1,2 @@
+WHITESPACE = _{ " " | "\t" | NEWLINE }
+int = @{ (ASCII_NONZERO_DIGIT ~ ASCII_DIGIT+ | ASCII_DIGIT) } \ No newline at end of file
diff --git a/examples/calc.pest b/examples/calc.pest
index 9f2cc3b..3834973 100644
--- a/examples/calc.pest
+++ b/examples/calc.pest
@@ -1,5 +1,3 @@
-WHITESPACE = _{ " " | "\t" | NEWLINE }
-
program = { SOI ~ expr ~ EOI }
expr = { prefix* ~ primary ~ postfix* ~ (infix ~ prefix* ~ primary ~ postfix* )* }
infix = _{ add | sub | mul | div | pow }
@@ -12,5 +10,4 @@ WHITESPACE = _{ " " | "\t" | NEWLINE }
neg = { "-" } // Negation
postfix = _{ fac }
fac = { "!" } // Factorial
- primary = _{ int | "(" ~ expr ~ ")" }
- int = @{ (ASCII_NONZERO_DIGIT ~ ASCII_DIGIT+ | ASCII_DIGIT) } \ No newline at end of file
+ primary = _{ int | "(" ~ expr ~ ")" } \ No newline at end of file
diff --git a/examples/calc.rs b/examples/calc.rs
index efc6b7b..7071625 100644
--- a/examples/calc.rs
+++ b/examples/calc.rs
@@ -2,6 +2,7 @@ mod parser {
use pest_derive::Parser;
#[derive(Parser)]
+ #[grammar = "../examples/base.pest"]
#[grammar = "../examples/calc.pest"]
pub struct Parser;
}
diff --git a/tests/grammar.pest b/tests/grammar.pest
index 126f112..b24d477 100644
--- a/tests/grammar.pest
+++ b/tests/grammar.pest
@@ -63,6 +63,11 @@ newline = { NEWLINE+ }
unicode = { XID_START ~ XID_CONTINUE* }
SYMBOL = { "shadows builtin" }
+han = { HAN+ }
+hangul = { HANGUL+ }
+hiragana = { HIRAGANA+ }
+arabic = { ARABIC+ }
+
WHITESPACE = _{ " " }
COMMENT = _{ "$"+ }
diff --git a/tests/implicit.pest b/tests/implicit.pest
new file mode 100644
index 0000000..18ebf7e
--- /dev/null
+++ b/tests/implicit.pest
@@ -0,0 +1,14 @@
+program = _{ SOI ~ implicit ~ EOI }
+implicit= ${ or ~ (WHITESPACE+ ~ or )* }
+
+or = !{ and ~ (or_op ~ and)+ | and }
+and = { comp ~ (and_op ~ comp)+ | comp }
+comp = { array ~ eq_op ~ array | array }
+
+array = ${ term }
+
+term = _{ ASCII_ALPHANUMERIC+ }
+or_op = { "||" }
+and_op = { "&&" }
+eq_op = { "=" }
+WHITESPACE = _{ " " | "\t" | NEWLINE } \ No newline at end of file
diff --git a/tests/implicit.rs b/tests/implicit.rs
new file mode 100644
index 0000000..8ad5a7e
--- /dev/null
+++ b/tests/implicit.rs
@@ -0,0 +1,25 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT
+// license <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. All files in the project carrying such notice may not be copied,
+// modified, or distributed except according to those terms.
+
+#![cfg_attr(not(feature = "std"), no_std)]
+extern crate alloc;
+extern crate pest;
+extern crate pest_derive;
+
+use pest::Parser;
+use pest_derive::Parser;
+
+#[derive(Parser)]
+#[grammar = "../tests/implicit.pest"]
+struct TestImplicitParser;
+
+#[test]
+fn test_implicit_whitespace() {
+ // this failed to parse due to a bug in the optimizer
+ // see: https://github.com/pest-parser/pest/issues/762#issuecomment-1375374868
+ let successful_parse = TestImplicitParser::parse(Rule::program, "a a");
+ assert!(successful_parse.is_ok());
+}