mirror of
https://github.com/fluencelabs/jsonpath
synced 2025-03-30 21:51:02 +00:00
Array 파싱에러 수정
This commit is contained in:
parent
ca5d9bda4a
commit
521e293e83
@ -1,7 +1,7 @@
|
|||||||
<component name="ProjectRunConfigurationManager">
|
<component name="ProjectRunConfigurationManager">
|
||||||
<configuration default="false" name="filter_array - trace" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
<configuration default="false" name="[trace] filter::array" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
||||||
<option name="channel" value="DEFAULT" />
|
<option name="channel" value="DEFAULT" />
|
||||||
<option name="command" value="test --package jsonpath --lib jsonpath::json_filter::tests::array -- --exact" />
|
<option name="command" value="test --lib filter::tests::array" />
|
||||||
<option name="allFeatures" value="false" />
|
<option name="allFeatures" value="false" />
|
||||||
<option name="nocapture" value="true" />
|
<option name="nocapture" value="true" />
|
||||||
<option name="backtrace" value="NO" />
|
<option name="backtrace" value="NO" />
|
@ -1,7 +1,7 @@
|
|||||||
<component name="ProjectRunConfigurationManager">
|
<component name="ProjectRunConfigurationManager">
|
||||||
<configuration default="false" name="filter_op - trace" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
<configuration default="false" name="[trace] filter::example" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
||||||
<option name="channel" value="DEFAULT" />
|
<option name="channel" value="DEFAULT" />
|
||||||
<option name="command" value="test --package jsonpath --lib jsonpath::json_filter::tests::op -- --exact" />
|
<option name="command" value="test --lib filter::tests::example" />
|
||||||
<option name="allFeatures" value="false" />
|
<option name="allFeatures" value="false" />
|
||||||
<option name="nocapture" value="true" />
|
<option name="nocapture" value="true" />
|
||||||
<option name="backtrace" value="NO" />
|
<option name="backtrace" value="NO" />
|
@ -1,7 +1,7 @@
|
|||||||
<component name="ProjectRunConfigurationManager">
|
<component name="ProjectRunConfigurationManager">
|
||||||
<configuration default="false" name="parse_path - trace" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
<configuration default="false" name="[trace] filter::op" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
||||||
<option name="channel" value="DEFAULT" />
|
<option name="channel" value="DEFAULT" />
|
||||||
<option name="command" value="test --package jsonpath --lib jsonpath::parser::tests::parse_path -- --exact" />
|
<option name="command" value="test --lib filter::tests::op" />
|
||||||
<option name="allFeatures" value="false" />
|
<option name="allFeatures" value="false" />
|
||||||
<option name="nocapture" value="true" />
|
<option name="nocapture" value="true" />
|
||||||
<option name="backtrace" value="NO" />
|
<option name="backtrace" value="NO" />
|
@ -1,7 +1,7 @@
|
|||||||
<component name="ProjectRunConfigurationManager">
|
<component name="ProjectRunConfigurationManager">
|
||||||
<configuration default="false" name="parse_array - trace" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
<configuration default="false" name="[trace] filter::return_type" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
||||||
<option name="channel" value="DEFAULT" />
|
<option name="channel" value="DEFAULT" />
|
||||||
<option name="command" value="test --package jsonpath --lib jsonpath::parser::tests::parse_array -- --exact" />
|
<option name="command" value="test --lib filter::tests::return_type" />
|
||||||
<option name="allFeatures" value="false" />
|
<option name="allFeatures" value="false" />
|
||||||
<option name="nocapture" value="true" />
|
<option name="nocapture" value="true" />
|
||||||
<option name="backtrace" value="NO" />
|
<option name="backtrace" value="NO" />
|
14
.idea/runConfigurations/_trace__filter__step_in.xml
generated
Normal file
14
.idea/runConfigurations/_trace__filter__step_in.xml
generated
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<component name="ProjectRunConfigurationManager">
|
||||||
|
<configuration default="false" name="[trace] filter::step_in" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
||||||
|
<option name="channel" value="DEFAULT" />
|
||||||
|
<option name="command" value="test --lib filter::tests::step_in" />
|
||||||
|
<option name="allFeatures" value="false" />
|
||||||
|
<option name="nocapture" value="true" />
|
||||||
|
<option name="backtrace" value="NO" />
|
||||||
|
<option name="workingDirectory" value="file://$PROJECT_DIR$" />
|
||||||
|
<envs>
|
||||||
|
<env name="RUST_LOG" value="trace" />
|
||||||
|
</envs>
|
||||||
|
<method v="2" />
|
||||||
|
</configuration>
|
||||||
|
</component>
|
14
.idea/runConfigurations/_trace__parser__parse_array_float.xml
generated
Normal file
14
.idea/runConfigurations/_trace__parser__parse_array_float.xml
generated
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<component name="ProjectRunConfigurationManager">
|
||||||
|
<configuration default="false" name="[trace] parser::parse_array_float" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
||||||
|
<option name="channel" value="DEFAULT" />
|
||||||
|
<option name="command" value="test --lib parser::parser::tests::parse_array_float" />
|
||||||
|
<option name="allFeatures" value="false" />
|
||||||
|
<option name="nocapture" value="true" />
|
||||||
|
<option name="backtrace" value="NO" />
|
||||||
|
<option name="workingDirectory" value="file://$PROJECT_DIR$" />
|
||||||
|
<envs>
|
||||||
|
<env name="RUST_LOG" value="trace" />
|
||||||
|
</envs>
|
||||||
|
<method v="2" />
|
||||||
|
</configuration>
|
||||||
|
</component>
|
14
.idea/runConfigurations/_trace__parser__parse_array_sytax.xml
generated
Normal file
14
.idea/runConfigurations/_trace__parser__parse_array_sytax.xml
generated
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<component name="ProjectRunConfigurationManager">
|
||||||
|
<configuration default="false" name="[trace] parser::parse_array_sytax" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
||||||
|
<option name="channel" value="DEFAULT" />
|
||||||
|
<option name="command" value="test --lib parser::parser::tests::parse_array_sytax" />
|
||||||
|
<option name="allFeatures" value="false" />
|
||||||
|
<option name="nocapture" value="true" />
|
||||||
|
<option name="backtrace" value="NO" />
|
||||||
|
<option name="workingDirectory" value="file://$PROJECT_DIR$" />
|
||||||
|
<envs>
|
||||||
|
<env name="RUST_LOG" value="trace" />
|
||||||
|
</envs>
|
||||||
|
<method v="2" />
|
||||||
|
</configuration>
|
||||||
|
</component>
|
14
.idea/runConfigurations/_trace__parser__parse_path.xml
generated
Normal file
14
.idea/runConfigurations/_trace__parser__parse_path.xml
generated
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<component name="ProjectRunConfigurationManager">
|
||||||
|
<configuration default="false" name="[trace] parser::parse_path" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
||||||
|
<option name="channel" value="DEFAULT" />
|
||||||
|
<option name="command" value="test --lib parser::parser::tests::parse_path" />
|
||||||
|
<option name="allFeatures" value="false" />
|
||||||
|
<option name="nocapture" value="true" />
|
||||||
|
<option name="backtrace" value="NO" />
|
||||||
|
<option name="workingDirectory" value="file://$PROJECT_DIR$" />
|
||||||
|
<envs>
|
||||||
|
<env name="RUST_LOG" value="trace" />
|
||||||
|
</envs>
|
||||||
|
<method v="2" />
|
||||||
|
</configuration>
|
||||||
|
</component>
|
@ -1,7 +1,7 @@
|
|||||||
<component name="ProjectRunConfigurationManager">
|
<component name="ProjectRunConfigurationManager">
|
||||||
<configuration default="false" name="parse_path" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
<configuration default="false" name="all" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
||||||
<option name="channel" value="DEFAULT" />
|
<option name="channel" value="DEFAULT" />
|
||||||
<option name="command" value="test --package jsonpath --lib jsonpath::parser::tests::parse_path -- --exact" />
|
<option name="command" value="test --lib --all" />
|
||||||
<option name="allFeatures" value="false" />
|
<option name="allFeatures" value="false" />
|
||||||
<option name="nocapture" value="true" />
|
<option name="nocapture" value="true" />
|
||||||
<option name="backtrace" value="NO" />
|
<option name="backtrace" value="NO" />
|
4
.idea/runConfigurations/filter_all.xml
generated
4
.idea/runConfigurations/filter_all.xml
generated
@ -1,7 +1,7 @@
|
|||||||
<component name="ProjectRunConfigurationManager">
|
<component name="ProjectRunConfigurationManager">
|
||||||
<configuration default="false" name="filter_all" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
<configuration default="false" name="filter-all" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
||||||
<option name="channel" value="DEFAULT" />
|
<option name="channel" value="DEFAULT" />
|
||||||
<option name="command" value="test --package jsonpath --lib jsonpath::json_filter::tests" />
|
<option name="command" value="test --lib filter::tests" />
|
||||||
<option name="allFeatures" value="false" />
|
<option name="allFeatures" value="false" />
|
||||||
<option name="nocapture" value="true" />
|
<option name="nocapture" value="true" />
|
||||||
<option name="backtrace" value="NO" />
|
<option name="backtrace" value="NO" />
|
||||||
|
14
.idea/runConfigurations/filter_example__trace.xml
generated
14
.idea/runConfigurations/filter_example__trace.xml
generated
@ -1,14 +0,0 @@
|
|||||||
<component name="ProjectRunConfigurationManager">
|
|
||||||
<configuration default="false" name="filter_example- trace" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
|
||||||
<option name="channel" value="DEFAULT" />
|
|
||||||
<option name="command" value="test --package jsonpath --lib jsonpath::json_filter::tests::example -- --exact" />
|
|
||||||
<option name="allFeatures" value="false" />
|
|
||||||
<option name="nocapture" value="true" />
|
|
||||||
<option name="backtrace" value="NO" />
|
|
||||||
<option name="workingDirectory" value="file://$PROJECT_DIR$" />
|
|
||||||
<envs>
|
|
||||||
<env name="RUST_LOG" value="trace" />
|
|
||||||
</envs>
|
|
||||||
<method v="2" />
|
|
||||||
</configuration>
|
|
||||||
</component>
|
|
@ -1,14 +0,0 @@
|
|||||||
<component name="ProjectRunConfigurationManager">
|
|
||||||
<configuration default="false" name="filter_return_type - trace" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
|
||||||
<option name="channel" value="DEFAULT" />
|
|
||||||
<option name="command" value="test --package jsonpath --lib jsonpath::json_filter::tests::return_type -- --exact" />
|
|
||||||
<option name="allFeatures" value="false" />
|
|
||||||
<option name="nocapture" value="true" />
|
|
||||||
<option name="backtrace" value="NO" />
|
|
||||||
<option name="workingDirectory" value="file://$PROJECT_DIR$" />
|
|
||||||
<envs>
|
|
||||||
<env name="RUST_LOG" value="trace" />
|
|
||||||
</envs>
|
|
||||||
<method v="2" />
|
|
||||||
</configuration>
|
|
||||||
</component>
|
|
14
.idea/runConfigurations/filter_step_in__trace.xml
generated
14
.idea/runConfigurations/filter_step_in__trace.xml
generated
@ -1,14 +0,0 @@
|
|||||||
<component name="ProjectRunConfigurationManager">
|
|
||||||
<configuration default="false" name="filter_step_in- trace" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
|
||||||
<option name="channel" value="DEFAULT" />
|
|
||||||
<option name="command" value="test --package jsonpath --lib jsonpath::json_filter::tests::step_in -- --exact" />
|
|
||||||
<option name="allFeatures" value="false" />
|
|
||||||
<option name="nocapture" value="true" />
|
|
||||||
<option name="backtrace" value="NO" />
|
|
||||||
<option name="workingDirectory" value="file://$PROJECT_DIR$" />
|
|
||||||
<envs>
|
|
||||||
<env name="RUST_LOG" value="trace" />
|
|
||||||
</envs>
|
|
||||||
<method v="2" />
|
|
||||||
</configuration>
|
|
||||||
</component>
|
|
12
.idea/runConfigurations/parse_array_float.xml
generated
12
.idea/runConfigurations/parse_array_float.xml
generated
@ -1,12 +0,0 @@
|
|||||||
<component name="ProjectRunConfigurationManager">
|
|
||||||
<configuration default="false" name="parse_array_float" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
|
||||||
<option name="channel" value="DEFAULT" />
|
|
||||||
<option name="command" value="test --package jsonpath --lib jsonpath::parser::tests::parse_array_float -- --exact" />
|
|
||||||
<option name="allFeatures" value="false" />
|
|
||||||
<option name="nocapture" value="true" />
|
|
||||||
<option name="backtrace" value="NO" />
|
|
||||||
<option name="workingDirectory" value="file://$PROJECT_DIR$" />
|
|
||||||
<envs />
|
|
||||||
<method v="2" />
|
|
||||||
</configuration>
|
|
||||||
</component>
|
|
@ -1,14 +0,0 @@
|
|||||||
<component name="ProjectRunConfigurationManager">
|
|
||||||
<configuration default="false" name="parse_array_float - trace" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
|
||||||
<option name="channel" value="DEFAULT" />
|
|
||||||
<option name="command" value="test --package jsonpath --lib jsonpath::parser::tests::parse_array_float -- --exact" />
|
|
||||||
<option name="allFeatures" value="false" />
|
|
||||||
<option name="nocapture" value="true" />
|
|
||||||
<option name="backtrace" value="NO" />
|
|
||||||
<option name="workingDirectory" value="file://$PROJECT_DIR$" />
|
|
||||||
<envs>
|
|
||||||
<env name="RUST_LOG" value="trace" />
|
|
||||||
</envs>
|
|
||||||
<method v="2" />
|
|
||||||
</configuration>
|
|
||||||
</component>
|
|
4
.idea/runConfigurations/parser_all.xml
generated
4
.idea/runConfigurations/parser_all.xml
generated
@ -1,7 +1,7 @@
|
|||||||
<component name="ProjectRunConfigurationManager">
|
<component name="ProjectRunConfigurationManager">
|
||||||
<configuration default="false" name="parser_all" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
<configuration default="false" name="parser-all" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
||||||
<option name="channel" value="DEFAULT" />
|
<option name="channel" value="DEFAULT" />
|
||||||
<option name="command" value="test --package jsonpath --lib jsonpath::parser::tests" />
|
<option name="command" value="test --lib parser::parser" />
|
||||||
<option name="allFeatures" value="false" />
|
<option name="allFeatures" value="false" />
|
||||||
<option name="nocapture" value="true" />
|
<option name="nocapture" value="true" />
|
||||||
<option name="backtrace" value="NO" />
|
<option name="backtrace" value="NO" />
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<component name="ProjectRunConfigurationManager">
|
<component name="ProjectRunConfigurationManager">
|
||||||
<configuration default="false" name="parse_array" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
<configuration default="false" name="tokenize-all" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
||||||
<option name="channel" value="DEFAULT" />
|
<option name="channel" value="DEFAULT" />
|
||||||
<option name="command" value="test --package jsonpath --lib jsonpath::parser::tests::parse_array -- --exact" />
|
<option name="command" value="test --lib parser::tokenizer" />
|
||||||
<option name="allFeatures" value="false" />
|
<option name="allFeatures" value="false" />
|
||||||
<option name="nocapture" value="true" />
|
<option name="nocapture" value="true" />
|
||||||
<option name="backtrace" value="NO" />
|
<option name="backtrace" value="NO" />
|
@ -11,7 +11,7 @@ To enjoy Rust
|
|||||||
|
|
||||||
#### `jsonpath-wasm` 라이브리러
|
#### `jsonpath-wasm` 라이브리러
|
||||||
|
|
||||||
*(not yet published `jsonpath-wasm`)**
|
*(not yet published `jsonpath-wasm`)*
|
||||||
```javascript
|
```javascript
|
||||||
import * as jsonpath from "jsonpath-wasm";
|
import * as jsonpath from "jsonpath-wasm";
|
||||||
```
|
```
|
||||||
|
@ -1,29 +1,23 @@
|
|||||||
|
use super::parser::*;
|
||||||
|
|
||||||
mod cmp;
|
mod cmp;
|
||||||
mod term;
|
mod term;
|
||||||
pub mod value_filter;
|
pub mod value_filter;
|
||||||
mod value_wrapper;
|
mod value_wrapper;
|
||||||
|
|
||||||
use super::parser::*;
|
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
extern crate env_logger;
|
extern crate env_logger;
|
||||||
|
|
||||||
use std::io::Read;
|
use std::io::Read;
|
||||||
use std::sync::{Once, ONCE_INIT};
|
|
||||||
|
|
||||||
use super::parser::Parser;
|
|
||||||
|
|
||||||
use serde_json::Value;
|
use serde_json::Value;
|
||||||
|
|
||||||
|
use super::parser::Parser;
|
||||||
use super::value_filter::*;
|
use super::value_filter::*;
|
||||||
|
|
||||||
static INIT: Once = ONCE_INIT;
|
|
||||||
|
|
||||||
fn setup() {
|
fn setup() {
|
||||||
INIT.call_once(|| {
|
let _ = env_logger::try_init();
|
||||||
env_logger::init();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn new_value_filter(file: &str) -> ValueFilter {
|
fn new_value_filter(file: &str) -> ValueFilter {
|
||||||
|
@ -1,9 +1,14 @@
|
|||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate log;
|
extern crate log;
|
||||||
extern crate env_logger;
|
extern crate env_logger;
|
||||||
|
|
||||||
extern crate serde;
|
extern crate serde;
|
||||||
|
#[cfg(test)]
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate serde_json;
|
extern crate serde_json;
|
||||||
|
#[cfg(not(test))]
|
||||||
|
extern crate serde_json;
|
||||||
|
|
||||||
extern crate core;
|
extern crate core;
|
||||||
extern crate indexmap;
|
extern crate indexmap;
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
use std::result;
|
use std::result;
|
||||||
|
|
||||||
use super::tokenizer::{
|
use super::tokenizer::{
|
||||||
Token,
|
|
||||||
PreloadedTokenizer,
|
PreloadedTokenizer,
|
||||||
|
Token,
|
||||||
TokenError,
|
TokenError,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -636,9 +636,6 @@ impl<'a> Parser<'a> {
|
|||||||
Ok(ref t) if t.partial_eq(token) => {
|
Ok(ref t) if t.partial_eq(token) => {
|
||||||
Ok(ret)
|
Ok(ret)
|
||||||
}
|
}
|
||||||
Err(TokenError::Eof) => {
|
|
||||||
Ok(ret)
|
|
||||||
}
|
|
||||||
_ => {
|
_ => {
|
||||||
Err(self.tokenizer.err_msg())
|
Err(self.tokenizer.err_msg())
|
||||||
}
|
}
|
||||||
@ -698,12 +695,8 @@ pub trait NodeVisitor {
|
|||||||
mod tests {
|
mod tests {
|
||||||
extern crate env_logger;
|
extern crate env_logger;
|
||||||
|
|
||||||
use std::sync::{Once, ONCE_INIT};
|
|
||||||
|
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
static INIT: Once = ONCE_INIT;
|
|
||||||
|
|
||||||
struct NodeVisitorTestImpl<'a> {
|
struct NodeVisitorTestImpl<'a> {
|
||||||
input: &'a str,
|
input: &'a str,
|
||||||
stack: Vec<ParseToken>,
|
stack: Vec<ParseToken>,
|
||||||
@ -729,9 +722,7 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn setup() {
|
fn setup() {
|
||||||
INIT.call_once(|| {
|
let _ = env_logger::try_init();
|
||||||
env_logger::init();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn run(input: &str) -> result::Result<Vec<ParseToken>, String> {
|
fn run(input: &str) -> result::Result<Vec<ParseToken>, String> {
|
||||||
@ -804,7 +795,7 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn parse_array() {
|
fn parse_array_sytax() {
|
||||||
setup();
|
setup();
|
||||||
|
|
||||||
assert_eq!(run("$.book[?(@.isbn)]"), Ok(vec![
|
assert_eq!(run("$.book[?(@.isbn)]"), Ok(vec![
|
||||||
@ -951,6 +942,11 @@ mod tests {
|
|||||||
ParseToken::ArrayEof
|
ParseToken::ArrayEof
|
||||||
]));
|
]));
|
||||||
|
|
||||||
|
match run("$[") {
|
||||||
|
Ok(_) => panic!(),
|
||||||
|
_ => {}
|
||||||
|
}
|
||||||
|
|
||||||
match run("$[]") {
|
match run("$[]") {
|
||||||
Ok(_) => panic!(),
|
Ok(_) => panic!(),
|
||||||
_ => {}
|
_ => {}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user