Revert the previous change, because it broke the regression test.
[cql-java-moved-to-github.git] / src / org / z3950 / zing / cql / CQLLexer.java
index 8d054d9..2cb8852 100644 (file)
@@ -1,4 +1,4 @@
-// $Id: CQLLexer.java,v 1.4 2002-11-02 01:21:35 mike Exp $
+// $Id: CQLLexer.java,v 1.9 2007-06-07 16:15:22 mike Exp $
 
 package org.z3950.zing.cql;
 import java.io.StreamTokenizer;
@@ -35,6 +35,8 @@ class CQLLexer extends StreamTokenizer {
     static int TT_RELEVANT  = 1016;    // The "relevant" relation modifier
     static int TT_FUZZY     = 1017;    // The "fuzzy" relation modifier
     static int TT_STEM      = 1018;    // The "stem" relation modifier
+    static int TT_SCR       = 1019;    // The server choice relation
+    static int TT_PHONETIC  = 1020;    // The "phonetic" relation modifier
 
     // Support for keywords.  It would be nice to compile this linear
     // list into a Hashtable, but it's hard to store ints as hash
@@ -67,6 +69,8 @@ class CQLLexer extends StreamTokenizer {
        new Keyword(TT_RELEVANT, "relevant"),
        new Keyword(TT_FUZZY, "fuzzy"),
        new Keyword(TT_STEM, "stem"),
+       new Keyword(TT_SCR, "scr"),
+       new Keyword(TT_PHONETIC, "phonetic"),
     };
 
     // For halfDecentPushBack() and the code at the top of nextToken()
@@ -184,7 +188,11 @@ class CQLLexer extends StreamTokenizer {
        if (token == TT_EOF) {
            return "EOF";
        } else if (token == TT_NUMBER) {
-           return new Integer((int) nval).toString();
+           if ((double) nval == (int) nval) {
+               return new Integer((int) nval).toString();
+           } else {
+               return new Double((double) nval).toString();
+           }
        } else if (token == TT_WORD) {
            return "word: " + sval;
        } else if (token == '"') {