cql_parser_strict
[yaz-moved-to-github.git] / src / cql.y
index ea828dc..5af8777 100644 (file)
--- a/src/cql.y
+++ b/src/cql.y
@@ -44,6 +44,7 @@
         int last_pos;
         struct cql_node *top;
         NMEM nmem;
+        int strict;
     };
 
 #define YYSTYPE token
@@ -384,16 +385,14 @@ int yylex(YYSTYPE *lval, void *vp)
            lval->buf = "sortby";
            return SORTBY;
        }
+        if (cp->strict)
+            return PREFIX_NAME;
        if (!cql_strcmp(lval->buf, "all"))
            relation_like = 1;
        if (!cql_strcmp(lval->buf, "any"))
            relation_like = 1;
        if (!cql_strcmp(lval->buf, "adj"))
            relation_like = 1;
-       if (!cql_strcmp(lval->buf, "within"))
-           relation_like = 1;
-       if (!cql_strcmp(lval->buf, "encloses"))
-           relation_like = 1;
        if (relation_like)
            return PREFIX_NAME;
     }
@@ -428,6 +427,7 @@ CQL_parser cql_parser_create(void)
     cp->last_error = 0;
     cp->last_pos = 0;
     cp->nmem = nmem_create();
+    cp->strict = 0;
     return cp;
 }
 
@@ -443,6 +443,11 @@ struct cql_node *cql_parser_result(CQL_parser cp)
     return cp->top;
 }
 
+void cql_parser_strict(CQL_parser cp, int mode)
+{
+    cp->strict = mode;
+}
+
 /*
  * Local variables:
  * c-basic-offset: 4