X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fz3950%2Fzing%2Fcql%2FCQLParser.java;h=25b49d083f76bb669ab9a50f7906494f79355401;hb=4d0ef95b01450f0462d1b2bffccbc3cefb5c2996;hp=dab0e802a959dd1e631407ef0760472d63a4b0a5;hpb=937c1bab3e8708237535d1c402ae093bb9b5e000;p=cql-java-moved-to-github.git diff --git a/src/main/java/org/z3950/zing/cql/CQLParser.java b/src/main/java/org/z3950/zing/cql/CQLParser.java index dab0e80..25b49d0 100644 --- a/src/main/java/org/z3950/zing/cql/CQLParser.java +++ b/src/main/java/org/z3950/zing/cql/CQLParser.java @@ -192,7 +192,12 @@ public class CQLParser { debug("non-parenthesised term"); word = matchSymbol("index or term"); - if (!isSymbolicRelation() && lexer.ttype != lexer.TT_WORD) + while (lexer.ttype == lexer.TT_WORD && !isRelation()) { + word = word + " " + lexer.sval; + match(lexer.TT_WORD); + } + + if (!isRelation()) break; index = word; @@ -235,10 +240,11 @@ public class CQLParser { debug("isRelation: checking ttype=" + lexer.ttype + " (" + lexer.render() + ")"); if (lexer.ttype == lexer.TT_WORD && - (lexer.sval == "exact" || - lexer.sval == "any" || - lexer.sval == "all" || - (lexer.sval == "scr" && compat == V1POINT2))) + (lexer.sval.indexOf('.') >= 0 || + lexer.sval.equals("exact") || + lexer.sval.equals("any") || + lexer.sval.equals("all") || + (lexer.sval.equals("scr") && compat == V1POINT2))) return true; return isSymbolicRelation();