From 418ac17f6913ff92a6e969f7ee6222219e1197c7 Mon Sep 17 00:00:00 2001 From: Ziyang Hu Date: Sat, 8 Oct 2022 15:52:56 +0800 Subject: [PATCH] update dependencies --- Cargo.lock | 62 +++++++++++++++++++++++------------------------ src/parse/expr.rs | 44 ++++++++++++++++----------------- 2 files changed, 52 insertions(+), 54 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 390973ae..77d9df5e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -58,7 +58,7 @@ dependencies = [ "http", "httparse", "httpdate", - "itoa 1.0.3", + "itoa 1.0.4", "language-tags", "local-channel", "mime", @@ -168,7 +168,7 @@ dependencies = [ "futures-core", "futures-util", "http", - "itoa 1.0.3", + "itoa 1.0.4", "language-tags", "log", "mime", @@ -180,7 +180,7 @@ dependencies = [ "serde_urlencoded", "smallvec", "socket2", - "time 0.3.14", + "time 0.3.15", "url", ] @@ -570,7 +570,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "344adc371239ef32293cb1c4fe519592fcf21206c79c02854320afcdf3ab4917" dependencies = [ "percent-encoding", - "time 0.3.14", + "time 0.3.15", "version_check", ] @@ -1114,7 +1114,7 @@ checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" dependencies = [ "bytes", "fnv", - "itoa 1.0.3", + "itoa 1.0.4", ] [[package]] @@ -1161,7 +1161,7 @@ dependencies = [ "http-body", "httparse", "httpdate", - "itoa 1.0.3", + "itoa 1.0.4", "pin-project-lite", "socket2", "tokio", @@ -1260,9 +1260,9 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" [[package]] name = "itoa" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754" +checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" [[package]] name = "jni" @@ -1806,9 +1806,9 @@ checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] name = "pest" -version = "2.3.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb779fcf4bb850fbbb0edc96ff6cf34fd90c4b1a112ce042653280d9a7364048" +checksum = "dbc7bc69c062e492337d74d59b120c274fd3d261b6bf6d3207d499b4b379c41a" dependencies = [ "thiserror", "ucd-trie", @@ -1816,9 +1816,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.3.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "502b62a6d0245378b04ffe0a7fb4f4419a4815fce813bd8a0ec89a56e07d67b1" +checksum = "60b75706b9642ebcb34dab3bc7750f811609a0eb1dd8b88c2d15bf628c1c65b2" dependencies = [ "pest", "pest_generator", @@ -1826,9 +1826,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.3.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "451e629bf49b750254da26132f1a5a9d11fd8a95a3df51d15c4abd1ba154cb6c" +checksum = "f4f9272122f5979a6511a749af9db9bfc810393f63119970d7085fed1c4ea0db" dependencies = [ "pest", "pest_meta", @@ -1839,9 +1839,9 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.3.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcec162c71c45e269dfc3fc2916eaeb97feab22993a21bcce4721d08cd7801a6" +checksum = "4c8717927f9b79515e565a64fe46c38b8cd0427e64c40680b14a7365ab09ac8d" dependencies = [ "once_cell", "pest", @@ -2297,7 +2297,7 @@ version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44" dependencies = [ - "itoa 1.0.3", + "itoa 1.0.4", "ryu", "serde", ] @@ -2309,7 +2309,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ "form_urlencoded", - "itoa 1.0.3", + "itoa 1.0.4", "ryu", "serde", ] @@ -2374,9 +2374,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" dependencies = [ "serde", ] @@ -2462,9 +2462,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.101" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e90cde112c4b9690b8cbe810cba9ddd8bc1d7472e2cae317b69e9438c1cba7d2" +checksum = "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1" dependencies = [ "proc-macro2", "quote", @@ -2548,11 +2548,11 @@ dependencies = [ [[package]] name = "time" -version = "0.3.14" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3f9a28b618c3a6b9251b6908e9c99e04b9e5c02e6581ccbb67d59c34ef7f9b" +checksum = "d634a985c4d4238ec39cacaed2e7ae552fbd3c476b552c1deac3021b7d7eaf0c" dependencies = [ - "itoa 1.0.3", + "itoa 1.0.4", "libc", "num_threads", "time-macros", @@ -2639,9 +2639,9 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.36" +version = "0.1.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if", "log", @@ -2651,9 +2651,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.29" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aeea4303076558a00714b823f9ad67d58a3bbda1df83d8827d21193156e22f7" +checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" dependencies = [ "once_cell", ] @@ -2892,9 +2892,9 @@ dependencies = [ [[package]] name = "wide" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3aba2d1dac31ac7cae82847ac5b8be822aee8f99a4e100f279605016b185c5f" +checksum = "ae41ecad2489a1655c8ef8489444b0b113c0a0c795944a3572a0931cf7d2525c" dependencies = [ "bytemuck", "safe_arch", diff --git a/src/parse/expr.rs b/src/parse/expr.rs index 6e46eba6..3d5eee40 100644 --- a/src/parse/expr.rs +++ b/src/parse/expr.rs @@ -3,7 +3,7 @@ use std::collections::BTreeMap; use itertools::Itertools; use lazy_static::lazy_static; use miette::{bail, ensure, Diagnostic, Result}; -use pest::prec_climber::{Operator, PrecClimber}; +use pest::pratt_parser::{Op, PrattParser}; use smartstring::{LazyCompact, SmartString}; use thiserror::Error; @@ -17,24 +17,23 @@ use crate::data::value::DataValue; use crate::parse::{ExtractSpan, Pair, Rule, SourceSpan}; lazy_static! { - static ref PREC_CLIMBER: PrecClimber = { - use pest::prec_climber::Assoc::*; + static ref PRATT_PARSER: PrattParser = { + use pest::pratt_parser::Assoc::*; - PrecClimber::new(vec![ - Operator::new(Rule::op_or, Left), - Operator::new(Rule::op_and, Left), - Operator::new(Rule::op_gt, Left) - | Operator::new(Rule::op_lt, Left) - | Operator::new(Rule::op_ge, Left) - | Operator::new(Rule::op_le, Left), - Operator::new(Rule::op_mod, Left), - Operator::new(Rule::op_eq, Left) | Operator::new(Rule::op_ne, Left), - Operator::new(Rule::op_add, Left) - | Operator::new(Rule::op_sub, Left) - | Operator::new(Rule::op_concat, Left), - Operator::new(Rule::op_mul, Left) | Operator::new(Rule::op_div, Left), - Operator::new(Rule::op_pow, Right), - ]) + PrattParser::new() + .op(Op::infix(Rule::op_or, Left)) + .op(Op::infix(Rule::op_and, Left)) + .op(Op::infix(Rule::op_gt, Left) + | Op::infix(Rule::op_lt, Left) + | Op::infix(Rule::op_ge, Left) + | Op::infix(Rule::op_le, Left)) + .op(Op::infix(Rule::op_mod, Left)) + .op(Op::infix(Rule::op_eq, Left) | Op::infix(Rule::op_ne, Left)) + .op(Op::infix(Rule::op_add, Left) + | Op::infix(Rule::op_sub, Left) + | Op::infix(Rule::op_concat, Left)) + .op(Op::infix(Rule::op_mul, Left) | Op::infix(Rule::op_div, Left)) + .op(Op::infix(Rule::op_pow, Right)) }; } @@ -49,11 +48,10 @@ pub(crate) fn build_expr(pair: Pair<'_>, param_pool: &BTreeMap, op: Pair<'_>, rhs: Result) -> Result {