Allow '.' to begin a word character
[cql-java-moved-to-github.git] / src / main / java / org / z3950 / zing / cql / CQLLexer.java
index 31abebc..5376f1d 100644 (file)
@@ -1,9 +1,9 @@
-// $Id: CQLLexer.java,v 1.14 2007-07-03 13:30:42 mike Exp $
 
 package org.z3950.zing.cql;
+import java.io.InputStream;
+import java.io.Reader;
 import java.io.StreamTokenizer;
 import java.io.StringReader;
-import java.util.Hashtable;
 
 
 // This is a semi-trivial subclass for java.io.StreamTokenizer that:
@@ -58,7 +58,11 @@ class CQLLexer extends StreamTokenizer {
     private static boolean DEBUG;
 
     CQLLexer(String cql, boolean lexdebug) {
-       super(new StringReader(cql));
+        this(new StringReader(cql), lexdebug);
+    }
+    
+    CQLLexer(Reader cql, boolean lexdebug) {
+       super(cql);
        wordChars('!', '?');    // ASCII-dependency!
        wordChars('[', '`');    // ASCII-dependency!
        quoteChar('"');
@@ -68,6 +72,8 @@ class CQLLexer extends StreamTokenizer {
        ordinaryChar('/');
        ordinaryChar('(');
        ordinaryChar(')');
+        ordinaryChar('.');
+        wordChars('.', '.');
        wordChars('\'', '\''); // prevent this from introducing strings
        //parseNumbers();
        ordinaryChar('-');
@@ -94,6 +100,7 @@ class CQLLexer extends StreamTokenizer {
        saved_sval = sval;
     }
 
+    @Override
     public int nextToken() throws java.io.IOException {
        if (saved_ttype != TT_UNDEFINED) {
            ttype = saved_ttype;