Array 파싱에러 수정

This commit is contained in:
freestrings 2019-03-05 18:43:58 +09:00
parent ca5d9bda4a
commit 521e293e83
21 changed files with 90 additions and 107 deletions

View File

@ -1,7 +1,7 @@
<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="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="nocapture" value="true" />
<option name="backtrace" value="NO" />

View File

@ -1,7 +1,7 @@
<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="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="nocapture" value="true" />
<option name="backtrace" value="NO" />

View File

@ -1,7 +1,7 @@
<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="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="nocapture" value="true" />
<option name="backtrace" value="NO" />

View File

@ -1,7 +1,7 @@
<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="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="nocapture" value="true" />
<option name="backtrace" value="NO" />

View 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>

View 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>

View 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>

View 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>

View File

@ -1,7 +1,7 @@
<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="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="nocapture" value="true" />
<option name="backtrace" value="NO" />

View File

@ -1,7 +1,7 @@
<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="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="nocapture" value="true" />
<option name="backtrace" value="NO" />

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -1,7 +1,7 @@
<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="command" value="test --package jsonpath --lib jsonpath::parser::tests" />
<option name="command" value="test --lib parser::parser" />
<option name="allFeatures" value="false" />
<option name="nocapture" value="true" />
<option name="backtrace" value="NO" />

View File

@ -1,7 +1,7 @@
<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="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="nocapture" value="true" />
<option name="backtrace" value="NO" />

View File

@ -11,7 +11,7 @@ To enjoy Rust
#### `jsonpath-wasm` 라이브리러
*(not yet published `jsonpath-wasm`)**
*(not yet published `jsonpath-wasm`)*
```javascript
import * as jsonpath from "jsonpath-wasm";
```

View File

@ -1,29 +1,23 @@
use super::parser::*;
mod cmp;
mod term;
pub mod value_filter;
mod value_wrapper;
use super::parser::*;
#[cfg(test)]
mod tests {
extern crate env_logger;
use std::io::Read;
use std::sync::{Once, ONCE_INIT};
use super::parser::Parser;
use serde_json::Value;
use super::parser::Parser;
use super::value_filter::*;
static INIT: Once = ONCE_INIT;
fn setup() {
INIT.call_once(|| {
env_logger::init();
});
let _ = env_logger::try_init();
}
fn new_value_filter(file: &str) -> ValueFilter {

View File

@ -1,9 +1,14 @@
#[macro_use]
extern crate log;
extern crate env_logger;
extern crate serde;
#[cfg(test)]
#[macro_use]
extern crate serde_json;
#[cfg(not(test))]
extern crate serde_json;
extern crate core;
extern crate indexmap;

View File

@ -1,8 +1,8 @@
use std::result;
use super::tokenizer::{
Token,
PreloadedTokenizer,
Token,
TokenError,
};
@ -636,9 +636,6 @@ impl<'a> Parser<'a> {
Ok(ref t) if t.partial_eq(token) => {
Ok(ret)
}
Err(TokenError::Eof) => {
Ok(ret)
}
_ => {
Err(self.tokenizer.err_msg())
}
@ -698,12 +695,8 @@ pub trait NodeVisitor {
mod tests {
extern crate env_logger;
use std::sync::{Once, ONCE_INIT};
use super::*;
static INIT: Once = ONCE_INIT;
struct NodeVisitorTestImpl<'a> {
input: &'a str,
stack: Vec<ParseToken>,
@ -729,9 +722,7 @@ mod tests {
}
fn setup() {
INIT.call_once(|| {
env_logger::init();
});
let _ = env_logger::try_init();
}
fn run(input: &str) -> result::Result<Vec<ParseToken>, String> {
@ -804,7 +795,7 @@ mod tests {
}
#[test]
fn parse_array() {
fn parse_array_sytax() {
setup();
assert_eq!(run("$.book[?(@.isbn)]"), Ok(vec![
@ -951,6 +942,11 @@ mod tests {
ParseToken::ArrayEof
]));
match run("$[") {
Ok(_) => panic!(),
_ => {}
}
match run("$[]") {
Ok(_) => panic!(),
_ => {}