return new ArrayEvalFilter(pathFragment);
} else if (!pathFragment.contains("=") && !pathFragment.contains("<") && !pathFragment.contains(">")) {
//[?(@.isbn)]
return new HasPathFilter(pathFragment);
} else {
throw new InvalidPathException("Failed to create PathTokenFilter for path fragment: " + pathFragment);
}
} else {
//[0]
//[0,1, ...]
//[-1:]