Index: XIOS/trunk/src/parse_expr/lex_parser.cpp
===================================================================
--- XIOS/trunk/src/parse_expr/lex_parser.cpp	(revision 1001)
+++ XIOS/trunk/src/parse_expr/lex_parser.cpp	(revision 1019)
@@ -10,5 +10,5 @@
 #define YY_FLEX_MAJOR_VERSION 2
 #define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 39
+#define YY_FLEX_SUBMINOR_VERSION 37
 #if YY_FLEX_SUBMINOR_VERSION > 0
 #define FLEX_BETA
@@ -143,13 +143,5 @@
 /* Size of default input buffer. */
 #ifndef YY_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k.
- * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
- * Ditto for the __ia64__ case accordingly.
- */
-#define YY_BUF_SIZE 32768
-#else
 #define YY_BUF_SIZE 16384
-#endif /* __ia64__ */
 #endif
 
@@ -177,5 +169,4 @@
 
     #define YY_LESS_LINENO(n)
-    #define YY_LINENO_REWIND_TO(ptr)
     
 /* Return all but the first "n" matched characters back to the input stream. */
@@ -356,5 +347,4 @@
 extern char *yytext;
 #define yytext_ptr yytext
-
 static yyconst flex_int16_t yy_nxt[][128] =
     {
@@ -574,5 +564,5 @@
       -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
       -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
-      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,   23,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
       -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
       -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
@@ -589,11 +579,11 @@
       -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
       -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
-      -13,  -13,  -13,  -13,  -13,  -13,   23,  -13,   24,   24,
-       24,   24,   24,   24,   24,   24,   24,   24,  -13,  -13,
-      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,   25,
+      -13,  -13,  -13,  -13,  -13,  -13,   24,  -13,   25,   25,
+       25,   25,   25,   25,   25,   25,   25,   25,  -13,  -13,
+      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,   26,
       -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
       -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
       -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
-      -13,   25,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+      -13,   26,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
 
       -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
@@ -608,5 +598,5 @@
       -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
       -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
-      -14,   26,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
+      -14,   27,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
       -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
 
@@ -626,5 +616,5 @@
 
       -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
-      -15,   27,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,   28,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
       -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
       -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
@@ -643,5 +633,5 @@
       -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
       -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
-      -16,   28,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
+      -16,   29,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
       -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
       -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
@@ -660,12 +650,12 @@
       -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
       -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
-      -17,  -17,  -17,  -17,  -17,   29,   29,   29,   29,   29,
-       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
-       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
-
-       29,  -17,  -17,  -17,  -17,  -17,  -17,   29,   29,   29,
-       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
-       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
-       29,   29,   29,  -17,  -17,  -17,  -17,  -17
+      -17,  -17,  -17,  -17,  -17,   30,   30,   30,   30,   30,
+       30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
+       30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
+
+       30,  -17,  -17,  -17,  -17,  -17,  -17,   30,   30,   30,
+       30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
+       30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
+       30,   30,   30,  -17,  -17,  -17,  -17,  -17
     },
 
@@ -675,14 +665,14 @@
       -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
       -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
-      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,   30,   30,
-       30,   30,   30,   30,   30,   30,   30,   30,  -18,  -18,
-
-      -18,  -18,  -18,  -18,  -18,   30,   30,   30,   30,   30,
-       30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
-       30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
-       30,  -18,  -18,  -18,  -18,   30,  -18,   30,   30,   30,
-       30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
-       30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
-       30,   30,   30,  -18,  -18,  -18,  -18,  -18
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,   31,   31,
+       31,   31,   31,   31,   31,   31,   31,   31,  -18,  -18,
+
+      -18,  -18,  -18,  -18,  -18,   31,   31,   31,   31,   31,
+       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
+       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
+       31,  -18,  -18,  -18,  -18,   31,  -18,   31,   31,   31,
+       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
+       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
+       31,   31,   31,  -18,  -18,  -18,  -18,  -18
     },
 
@@ -745,13 +735,13 @@
       -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
 
-      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,   31,   31,
-       31,   31,   31,   31,   31,   31,   31,   31,  -22,  -22,
-      -22,  -22,  -22,  -22,  -22,   31,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
-       31,  -22,  -22,  -22,  -22,   31,  -22,   31,   31,   31,
-       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
-       31,   31,   31,  -22,  -22,  -22,  -22,  -22
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,   32,   32,
+       32,   32,   32,   32,   32,   32,   32,   32,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,   32,   32,   32,   32,   32,
+       32,   32,   32,   32,   32,   32,   32,   32,   32,   32,
+       32,   32,   32,   32,   32,   32,   32,   32,   32,   32,
+       32,  -22,  -22,  -22,  -22,   32,  -22,   32,   32,   32,
+       32,   32,   32,   32,   32,   32,   32,   32,   32,   32,
+       32,   32,   32,   32,   32,   32,   32,   32,   32,   32,
+       32,   32,   32,  -22,  -22,  -22,  -22,  -22
     },
 
@@ -759,9 +749,4 @@
         3,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
 
-      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
-      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
-      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
-      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,   32,   32,
-       32,   32,   32,   32,   32,   32,   32,   32,  -23,  -23,
       -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
       -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
@@ -769,4 +754,9 @@
       -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
       -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
 
       -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
@@ -779,12 +769,12 @@
       -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
       -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
-      -24,  -24,  -24,  -24,  -24,  -24,   23,  -24,   24,   24,
-       24,   24,   24,   24,   24,   24,   24,   24,  -24,  -24,
-      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,   25,
-      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
-
+      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,   33,   33,
+       33,   33,   33,   33,   33,   33,   33,   33,  -24,  -24,
       -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
       -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
-      -24,   25,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+
+      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
       -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
       -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24
@@ -796,12 +786,12 @@
       -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
       -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
-      -25,  -25,  -25,   33,  -25,   33,  -25,  -25,   34,   34,
-
-       34,   34,   34,   34,   34,   34,   34,   34,  -25,  -25,
+      -25,  -25,  -25,  -25,  -25,  -25,   24,  -25,   25,   25,
+
+       25,   25,   25,   25,   25,   25,   25,   25,  -25,  -25,
+      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,   26,
       -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
       -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
       -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
-      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
-      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
+      -25,   26,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
       -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
       -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25
@@ -814,6 +804,6 @@
       -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
       -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
-      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
-      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
+      -26,  -26,  -26,   34,  -26,   34,  -26,  -26,   35,   35,
+       35,   35,   35,   35,   35,   35,   35,   35,  -26,  -26,
       -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
       -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
@@ -866,13 +856,13 @@
 
       -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
-      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,   35,   35,
-       35,   35,   35,   35,   35,   35,   35,   35,  -29,  -29,
-      -29,  -29,  -29,  -29,  -29,   35,   35,   35,   35,   35,
-       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
-       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
-       35,  -29,  -29,  -29,  -29,   35,  -29,   35,   35,   35,
-       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
-       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
-       35,   35,   35,  -29,  -29,  -29,  -29,  -29
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29
 
     },
@@ -883,14 +873,14 @@
       -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
       -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
-      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,   30,   30,
-       30,   30,   30,   30,   30,   30,   30,   30,  -30,  -30,
-      -30,  -30,  -30,  -30,  -30,   30,   30,   30,   30,   30,
-       30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
-       30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
-       30,  -30,  -30,  -30,  -30,   30,  -30,   30,   30,   30,
-
-       30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
-       30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
-       30,   30,   30,  -30,  -30,  -30,  -30,  -30
+      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,   36,   36,
+       36,   36,   36,   36,   36,   36,   36,   36,  -30,  -30,
+      -30,  -30,  -30,  -30,  -30,   36,   36,   36,   36,   36,
+       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+       36,  -30,  -30,  -30,  -30,   36,  -30,   36,   36,   36,
+
+       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+       36,   36,   36,  -30,  -30,  -30,  -30,  -30
     },
 
@@ -920,11 +910,11 @@
       -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,   32,   32,
        32,   32,   32,   32,   32,   32,   32,   32,  -32,  -32,
-      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,   25,
-      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
-      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
-      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
-      -32,   25,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
-      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
-      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32
+      -32,  -32,  -32,  -32,  -32,   32,   32,   32,   32,   32,
+       32,   32,   32,   32,   32,   32,   32,   32,   32,   32,
+       32,   32,   32,   32,   32,   32,   32,   32,   32,   32,
+       32,  -32,  -32,  -32,  -32,   32,  -32,   32,   32,   32,
+       32,   32,   32,   32,   32,   32,   32,   32,   32,   32,
+       32,   32,   32,   32,   32,   32,   32,   32,   32,   32,
+       32,   32,   32,  -32,  -32,  -32,  -32,  -32
     },
 
@@ -935,11 +925,11 @@
       -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
       -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
-      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,   34,   34,
-       34,   34,   34,   34,   34,   34,   34,   34,  -33,  -33,
+      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,   33,   33,
+       33,   33,   33,   33,   33,   33,   33,   33,  -33,  -33,
+      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,   26,
       -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
       -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
       -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
-      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
-      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
+      -33,   26,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
 
       -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
@@ -952,6 +942,6 @@
       -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,
       -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,
-      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,   34,   34,
-       34,   34,   34,   34,   34,   34,   34,   34,  -34,  -34,
+      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,   35,   35,
+       35,   35,   35,   35,   35,   35,   35,   35,  -34,  -34,
       -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,
       -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,
@@ -972,11 +962,29 @@
 
        35,   35,   35,   35,   35,   35,   35,   35,  -35,  -35,
-      -35,  -35,  -35,  -35,  -35,   35,   35,   35,   35,   35,
-       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
-       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
-       35,  -35,  -35,  -35,  -35,   35,  -35,   35,   35,   35,
-       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
-       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
-       35,   35,   35,  -35,  -35,  -35,  -35,  -35
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35
+    },
+
+    {
+        3,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,   36,   36,
+       36,   36,   36,   36,   36,   36,   36,   36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,   36,   36,   36,   36,   36,
+       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+       36,  -36,  -36,  -36,  -36,   36,  -36,   36,   36,   36,
+       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+
+       36,   36,   36,  -36,  -36,  -36,  -36,  -36
     },
 
@@ -998,6 +1006,6 @@
 	(yy_c_buf_p) = yy_cp;
 
-#define YY_NUM_RULES 19
-#define YY_END_OF_BUFFER 20
+#define YY_NUM_RULES 20
+#define YY_END_OF_BUFFER 21
 /* This struct is not used in this scanner,
    but its presence is necessary. */
@@ -1007,10 +1015,10 @@
 	flex_int32_t yy_nxt;
 	};
-static yyconst flex_int16_t yy_accept[36] =
+static yyconst flex_int16_t yy_accept[37] =
     {   0,
-        0,    0,   20,   19,    1,   19,   16,   17,    8,    6,
-        7,    9,    2,   12,   19,   13,   19,    5,   10,   18,
-        1,    4,    0,    2,    0,   14,   11,   15,    3,    5,
-        4,    2,    0,    2,    3
+        0,    0,   21,   20,    1,   20,   17,   18,    8,    6,
+        7,    9,    2,   12,   20,   13,   20,    5,   10,   19,
+        1,    4,   16,    0,    2,    0,   14,   11,   15,    3,
+        5,    4,    2,    0,    2,    3
     } ;
 
@@ -1018,10 +1026,10 @@
 static char *yy_last_accepting_cpos;
 
-static yyconst yy_state_type yy_NUL_trans[36] =
+static yyconst yy_state_type yy_NUL_trans[37] =
     {   0,
        20,   20,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0
+        0,    0,    0,    0,    0,    0
     } ;
 
@@ -1053,5 +1061,5 @@
 #include "yacc_parser.hpp"
 
-#line 1056 "lex_parser.cpp"
+#line 1064 "lex_parser.cpp"
 
 #define INITIAL 0
@@ -1134,10 +1142,5 @@
 /* Amount of stuff to slurp up with each read. */
 #ifndef YY_READ_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k */
-#define YY_READ_BUF_SIZE 16384
-#else
 #define YY_READ_BUF_SIZE 8192
-#endif /* __ia64__ */
 #endif
 
@@ -1224,4 +1227,9 @@
 	register int yy_act;
     
+#line 29 "lex_parser.lex"
+
+
+#line 1233 "lex_parser.cpp"
+
 	if ( !(yy_init) )
 		{
@@ -1249,10 +1257,4 @@
 		yy_load_buffer_state( );
 		}
-
-	{
-#line 29 "lex_parser.lex"
-
-
-#line 1257 "lex_parser.cpp"
 
 	while ( 1 )		/* loops until end-of-file is reached */
@@ -1388,23 +1390,28 @@
 case 16:
 YY_RULE_SETUP
-#line 68 "lex_parser.lex"
-return LEFT_PARENTHESIS;
+#line 67 "lex_parser.lex"
+return NE;
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
 #line 69 "lex_parser.lex"
-return RIGHT_PARENTHESIS;
+return LEFT_PARENTHESIS;
 	YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 71 "lex_parser.lex"
-return END;
+#line 70 "lex_parser.lex"
+return RIGHT_PARENTHESIS;
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
 #line 72 "lex_parser.lex"
+return END;
+	YY_BREAK
+case 20:
+YY_RULE_SETUP
+#line 73 "lex_parser.lex"
 ECHO;
 	YY_BREAK
-#line 1409 "lex_parser.cpp"
+#line 1416 "lex_parser.cpp"
 case YY_STATE_EOF(INITIAL):
 	yyterminate();
@@ -1537,5 +1544,4 @@
 	} /* end of action switch */
 		} /* end of scanning one token */
-	} /* end of user's declarations */
 } /* end of yylex */
 
@@ -2396,3 +2402,3 @@
 #define YYTABLES_NAME "yytables"
 
-#line 71 "lex_parser.lex"
+#line 73 "lex_parser.lex"
Index: XIOS/trunk/src/parse_expr/lex_parser.lex
===================================================================
--- XIOS/trunk/src/parse_expr/lex_parser.lex	(revision 1001)
+++ XIOS/trunk/src/parse_expr/lex_parser.lex	(revision 1019)
@@ -65,4 +65,5 @@
 "<=" return LE;
 ">=" return GE;
+"/=" return NE;
 
 "("  return LEFT_PARENTHESIS;
Index: XIOS/trunk/src/parse_expr/operator_expr.hpp
===================================================================
--- XIOS/trunk/src/parse_expr/operator_expr.hpp	(revision 1001)
+++ XIOS/trunk/src/parse_expr/operator_expr.hpp	(revision 1019)
@@ -43,4 +43,5 @@
       opScalarScalar[string("le")] = le_ss;
       opScalarScalar[string("ge")] = ge_ss;
+      opScalarScalar[string("ne")] = ne_ss;
 
       opField[string("neg")] = neg_f;
@@ -63,4 +64,5 @@
       opFieldField[string("le")] = le_ff;
       opFieldField[string("ge")] = ge_ff;
+      opFieldField[string("ne")] = ne_ff;
 
       opFieldScalar[string("add")] = add_fs;
@@ -74,4 +76,5 @@
       opFieldScalar[string("le")] = le_fs;
       opFieldScalar[string("ge")] = ge_fs;
+      opFieldScalar[string("ne")] = ne_fs;
 
       opScalarField[string("add")] = add_sf;
@@ -84,4 +87,5 @@
       opScalarField[string("le")] = le_sf;
       opScalarField[string("ge")] = ge_sf;
+      opScalarField[string("ne")] = ne_sf;
     }
 
@@ -160,4 +164,5 @@
     static inline double le_ss(double x, double y)    { return x <= y; }
     static inline double ge_ss(double x, double y)    { return x >= y; }
+    static inline double ne_ss(double x, double y)    { return x != y; }
 
     static inline CArray<double,1> neg_f(const CArray<double,1>& x)   { return Array<double,1>(-x); }
@@ -180,4 +185,5 @@
     static inline CArray<double,1> le_ff(const CArray<double,1>& x, const CArray<double,1>& y)    { return Array<double,1>(x <= y); }
     static inline CArray<double,1> ge_ff(const CArray<double,1>& x, const CArray<double,1>& y)    { return Array<double,1>(x >= y); }
+    static inline CArray<double,1> ne_ff(const CArray<double,1>& x, const CArray<double,1>& y)    { return Array<double,1>(x != y); }
 
     static inline CArray<double,1> add_fs(const CArray<double,1>& x, double y)   { return Array<double,1>(x + y); }
@@ -191,4 +197,5 @@
     static inline CArray<double,1> le_fs(const CArray<double,1>& x, double y)    { return Array<double,1>(x <= y); }
     static inline CArray<double,1> ge_fs(const CArray<double,1>& x, double y)    { return Array<double,1>(x >= y); }
+    static inline CArray<double,1> ne_fs(const CArray<double,1>& x, double y)    { return Array<double,1>(x != y); }
 
     static inline CArray<double,1> add_sf(double x, const CArray<double,1>& y)   { return Array<double,1>(x + y); }
@@ -201,4 +208,5 @@
     static inline CArray<double,1> le_sf(double x, const CArray<double,1>& y)    { return Array<double,1>(x <= y); }
     static inline CArray<double,1> ge_sf(double x, const CArray<double,1>& y)    { return Array<double,1>(x >= y); }
+    static inline CArray<double,1> ne_sf(double x, const CArray<double,1>& y)    { return Array<double,1>(x != y); }
   };
 
Index: XIOS/trunk/src/parse_expr/yacc_parser.cpp
===================================================================
--- XIOS/trunk/src/parse_expr/yacc_parser.cpp	(revision 1001)
+++ XIOS/trunk/src/parse_expr/yacc_parser.cpp	(revision 1019)
@@ -1,18 +1,18 @@
-/* A Bison parser, made by GNU Bison 3.0.2.  */
+/* A Bison parser, made by GNU Bison 2.7.  */
 
 /* Bison implementation for Yacc-like parsers in C
-
-   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
-
+   
+      Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
+   
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
-
+   
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-
+   
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
@@ -27,5 +27,5 @@
    Bison output files to be licensed under the GNU General Public
    License without this special exception.
-
+   
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
@@ -45,5 +45,5 @@
 
 /* Bison version.  */
-#define YYBISON_VERSION "3.0.2"
+#define YYBISON_VERSION "2.7"
 
 /* Skeleton name.  */
@@ -63,5 +63,6 @@
 
 /* Copy the first part of user declarations.  */
-#line 1 "yacc_parser.yacc" /* yacc.c:339  */
+/* Line 371 of yacc.c  */
+#line 1 "yacc_parser.yacc"
 
 #include "filter_expr_node.hpp"
@@ -96,11 +97,12 @@
   }
 
-#line 99 "yacc_parser.cpp" /* yacc.c:339  */
-
-# ifndef YY_NULLPTR
+/* Line 371 of yacc.c  */
+#line 101 "yacc_parser.cpp"
+
+# ifndef YY_NULL
 #  if defined __cplusplus && 201103L <= __cplusplus
-#   define YY_NULLPTR nullptr
+#   define YY_NULL nullptr
 #  else
-#   define YY_NULLPTR 0
+#   define YY_NULL 0
 #  endif
 # endif
@@ -118,5 +120,5 @@
 #ifndef YY_YY_YACC_PARSER_HPP_INCLUDED
 # define YY_YY_YACC_PARSER_HPP_INCLUDED
-/* Debug traces.  */
+/* Enabling traces.  */
 #ifndef YYDEBUG
 # define YYDEBUG 0
@@ -126,36 +128,38 @@
 #endif
 
-/* Token type.  */
+/* Tokens.  */
 #ifndef YYTOKENTYPE
 # define YYTOKENTYPE
-  enum yytokentype
-  {
-    NUMBER = 258,
-    VAR = 259,
-    ID = 260,
-    AVERAGE = 261,
-    PLUS = 262,
-    MINUS = 263,
-    TIMES = 264,
-    DIVIDE = 265,
-    POWER = 266,
-    EQ = 267,
-    LT = 268,
-    GT = 269,
-    LE = 270,
-    GE = 271,
-    LEFT_PARENTHESIS = 272,
-    RIGHT_PARENTHESIS = 273,
-    END = 274,
-    NEG = 275
-  };
-#endif
-
-/* Value type.  */
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     NUMBER = 258,
+     VAR = 259,
+     ID = 260,
+     AVERAGE = 261,
+     PLUS = 262,
+     MINUS = 263,
+     TIMES = 264,
+     DIVIDE = 265,
+     POWER = 266,
+     EQ = 267,
+     LT = 268,
+     GT = 269,
+     LE = 270,
+     GE = 271,
+     NE = 272,
+     LEFT_PARENTHESIS = 273,
+     RIGHT_PARENTHESIS = 274,
+     END = 275,
+     NEG = 276
+   };
+#endif
+
+
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE YYSTYPE;
-union YYSTYPE
-{
-#line 35 "yacc_parser.yacc" /* yacc.c:355  */
+typedef union YYSTYPE
+{
+/* Line 387 of yacc.c  */
+#line 35 "yacc_parser.yacc"
 
   std::string* str;                /* symbol table index */
@@ -163,14 +167,28 @@
   xios::IFilterExprNode* filterNode;
 
-#line 166 "yacc_parser.cpp" /* yacc.c:355  */
-};
+
+/* Line 387 of yacc.c  */
+#line 172 "yacc_parser.cpp"
+} YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 #endif
 
-
 extern YYSTYPE yylval;
 
+#ifdef YYPARSE_PARAM
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void *YYPARSE_PARAM);
+#else
+int yyparse ();
+#endif
+#else /* ! YYPARSE_PARAM */
+#if defined __STDC__ || defined __cplusplus
 int yyparse (void);
+#else
+int yyparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
 
 #endif /* !YY_YY_YACC_PARSER_HPP_INCLUDED  */
@@ -178,5 +196,6 @@
 /* Copy the second part of user declarations.  */
 
-#line 181 "yacc_parser.cpp" /* yacc.c:358  */
+/* Line 390 of yacc.c  */
+#line 200 "yacc_parser.cpp"
 
 #ifdef short
@@ -192,6 +211,9 @@
 #ifdef YYTYPE_INT8
 typedef YYTYPE_INT8 yytype_int8;
+#elif (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+typedef signed char yytype_int8;
 #else
-typedef signed char yytype_int8;
+typedef short int yytype_int8;
 #endif
 
@@ -213,5 +235,6 @@
 # elif defined size_t
 #  define YYSIZE_T size_t
-# elif ! defined YYSIZE_T
+# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
 #  define YYSIZE_T size_t
@@ -235,31 +258,4 @@
 #endif
 
-#ifndef YY_ATTRIBUTE
-# if (defined __GNUC__                                               \
-      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
-     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
-#  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
-# else
-#  define YY_ATTRIBUTE(Spec) /* empty */
-# endif
-#endif
-
-#ifndef YY_ATTRIBUTE_PURE
-# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
-#endif
-
-#ifndef YY_ATTRIBUTE_UNUSED
-# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
-#endif
-
-#if !defined _Noreturn \
-     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
-# if defined _MSC_VER && 1200 <= _MSC_VER
-#  define _Noreturn __declspec (noreturn)
-# else
-#  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
-# endif
-#endif
-
 /* Suppress unused-variable warnings by "using" E.  */
 #if ! defined lint || defined __GNUC__
@@ -269,23 +265,21 @@
 #endif
 
-#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
-/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
-    _Pragma ("GCC diagnostic push") \
-    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
-    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
-    _Pragma ("GCC diagnostic pop")
+/* Identity function, used to suppress warnings about constant conditions.  */
+#ifndef lint
+# define YYID(N) (N)
 #else
-# define YY_INITIAL_VALUE(Value) Value
-#endif
-#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END
-#endif
-#ifndef YY_INITIAL_VALUE
-# define YY_INITIAL_VALUE(Value) /* Nothing. */
-#endif
-
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static int
+YYID (int yyi)
+#else
+static int
+YYID (yyi)
+    int yyi;
+#endif
+{
+  return yyi;
+}
+#endif
 
 #if ! defined yyoverflow || YYERROR_VERBOSE
@@ -306,5 +300,6 @@
 #   else
 #    define YYSTACK_ALLOC alloca
-#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
+#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
@@ -318,6 +313,6 @@
 
 # ifdef YYSTACK_ALLOC
-   /* Pacify GCC's 'empty if-body' warning.  */
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+   /* Pacify GCC's `empty if-body' warning.  */
+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
 #  ifndef YYSTACK_ALLOC_MAXIMUM
     /* The OS might guarantee only one guard page at the bottom of the stack,
@@ -335,5 +330,5 @@
 #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
        && ! ((defined YYMALLOC || defined malloc) \
-             && (defined YYFREE || defined free)))
+	     && (defined YYFREE || defined free)))
 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
 #   ifndef EXIT_SUCCESS
@@ -343,5 +338,6 @@
 #  ifndef YYMALLOC
 #   define YYMALLOC malloc
-#   if ! defined malloc && ! defined EXIT_SUCCESS
+#   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
 #   endif
@@ -349,5 +345,6 @@
 #  ifndef YYFREE
 #   define YYFREE free
-#   if ! defined free && ! defined EXIT_SUCCESS
+#   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 void free (void *); /* INFRINGES ON USER NAME SPACE */
 #   endif
@@ -359,5 +356,5 @@
 #if (! defined yyoverflow \
      && (! defined __cplusplus \
-         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+	 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
 
 /* A type that is properly aligned for any stack member.  */
@@ -384,14 +381,14 @@
    stack.  Advance YYPTR to a properly aligned location for the next
    stack.  */
-# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
-    do                                                                  \
-      {                                                                 \
-        YYSIZE_T yynewbytes;                                            \
-        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
-        Stack = &yyptr->Stack_alloc;                                    \
-        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
-        yyptr += yynewbytes / sizeof (*yyptr);                          \
-      }                                                                 \
-    while (0)
+# define YYSTACK_RELOCATE(Stack_alloc, Stack)				\
+    do									\
+      {									\
+	YYSIZE_T yynewbytes;						\
+	YYCOPY (&yyptr->Stack_alloc, Stack, yysize);			\
+	Stack = &yyptr->Stack_alloc;					\
+	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+	yyptr += yynewbytes / sizeof (*yyptr);				\
+      }									\
+    while (YYID (0))
 
 #endif
@@ -412,5 +409,5 @@
             (Dst)[yyi] = (Src)[yyi];            \
         }                                       \
-      while (0)
+      while (YYID (0))
 #  endif
 # endif
@@ -420,25 +417,23 @@
 #define YYFINAL  16
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   204
+#define YYLAST   229
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  21
+#define YYNTOKENS  22
 /* YYNNTS -- Number of nonterminals.  */
 #define YYNNTS  4
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  52
-/* YYNSTATES -- Number of states.  */
-#define YYNSTATES  108
-
-/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
-   by yylex, with out-of-bounds checking.  */
+#define YYNRULES  56
+/* YYNRULES -- Number of states.  */
+#define YYNSTATES  116
+
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   275
-
-#define YYTRANSLATE(YYX)                                                \
+#define YYMAXUTOK   276
+
+#define YYTRANSLATE(YYX)						\
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
-/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
-   as returned by yylex, without out-of-bounds checking.  */
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
 static const yytype_uint8 yytranslate[] =
 {
@@ -470,17 +465,56 @@
        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20
+      15,    16,    17,    18,    19,    20,    21
 };
 
 #if YYDEBUG
-  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+   YYRHS.  */
+static const yytype_uint8 yyprhs[] =
+{
+       0,     0,     3,     5,     8,    10,    12,    16,    20,    24,
+      28,    31,    35,    39,    43,    47,    51,    55,    59,    63,
+      68,    70,    72,    76,    80,    84,    88,    91,    95,    99,
+     103,   107,   111,   115,   119,   123,   127,   131,   135,   139,
+     143,   147,   151,   155,   159,   163,   167,   171,   175,   179,
+     183,   187,   191,   195,   199,   203,   207
+};
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
+static const yytype_int8 yyrhs[] =
+{
+      23,     0,    -1,    20,    -1,    25,    20,    -1,     3,    -1,
+       4,    -1,    24,     7,    24,    -1,    24,     8,    24,    -1,
+      24,     9,    24,    -1,    24,    10,    24,    -1,     8,    24,
+      -1,    24,    11,    24,    -1,    24,    12,    24,    -1,    24,
+      13,    24,    -1,    24,    14,    24,    -1,    24,    15,    24,
+      -1,    24,    16,    24,    -1,    24,    17,    24,    -1,    18,
+      24,    19,    -1,     5,    18,    24,    19,    -1,     5,    -1,
+       6,    -1,    25,     7,    25,    -1,    25,     8,    25,    -1,
+      25,     9,    25,    -1,    25,    10,    25,    -1,     8,    25,
+      -1,    25,    11,    25,    -1,    25,    12,    25,    -1,    25,
+      13,    25,    -1,    25,    14,    25,    -1,    25,    15,    25,
+      -1,    25,    16,    25,    -1,    25,    17,    25,    -1,    18,
+      25,    19,    -1,    25,     7,    24,    -1,    24,     7,    25,
+      -1,    25,     8,    24,    -1,    24,     8,    25,    -1,    25,
+       9,    24,    -1,    24,     9,    25,    -1,    25,    10,    24,
+      -1,    24,    10,    25,    -1,    25,    11,    24,    -1,    25,
+      12,    24,    -1,    24,    12,    25,    -1,    25,    13,    24,
+      -1,    24,    13,    25,    -1,    25,    14,    24,    -1,    24,
+      14,    25,    -1,    25,    15,    24,    -1,    24,    15,    25,
+      -1,    25,    16,    24,    -1,    24,    16,    25,    -1,    25,
+      17,    24,    -1,    24,    17,    25,    -1,     5,    18,    25,
+      19,    -1
+};
+
+/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint8 yyrline[] =
 {
        0,    61,    61,    62,    66,    67,    68,    69,    70,    71,
-      72,    73,    74,    75,    76,    77,    78,    79,    80,    84,
+      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
-     115,   116,   117
+     115,   116,   117,   118,   119,   120,   121
 };
 #endif
@@ -492,73 +526,63 @@
 {
   "$end", "error", "$undefined", "NUMBER", "VAR", "ID", "AVERAGE", "PLUS",
-  "MINUS", "TIMES", "DIVIDE", "POWER", "EQ", "LT", "GT", "LE", "GE",
+  "MINUS", "TIMES", "DIVIDE", "POWER", "EQ", "LT", "GT", "LE", "GE", "NE",
   "LEFT_PARENTHESIS", "RIGHT_PARENTHESIS", "END", "NEG", "$accept", "Line",
-  "Expression", "Field_expr", YY_NULLPTR
+  "Expression", "Field_expr", YY_NULL
 };
 #endif
 
 # ifdef YYPRINT
-/* YYTOKNUM[NUM] -- (External) token number corresponding to the
-   (internal) symbol number NUM (which must be that of a token).  */
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+   token YYLEX-NUM.  */
 static const yytype_uint16 yytoknum[] =
 {
        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
-     275
+     275,   276
 };
 # endif
 
-#define YYPACT_NINF -13
-
-#define yypact_value_is_default(Yystate) \
-  (!!((Yystate) == (-13)))
-
-#define YYTABLE_NINF -1
-
-#define yytable_value_is_error(Yytable_value) \
-  0
-
-  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-     STATE-NUM.  */
-static const yytype_int16 yypact[] =
-{
-      90,   -13,   -13,   -12,   -13,    35,    35,   -13,    44,   188,
-     103,    35,    24,    34,   116,   128,   -13,    35,    35,    35,
-      35,    65,    35,    35,    35,    35,    35,    35,    35,    35,
-      35,    35,    35,    35,    35,    35,    35,   -13,   140,   152,
-     -13,   -13,    -7,    23,    -7,    23,    24,    34,    24,    34,
-      54,    65,    65,    24,     0,    67,     0,    67,     0,    67,
-       0,    67,     0,    67,    -7,    23,    -7,    23,    24,    34,
-      24,    34,    24,    34,     0,    67,     0,    67,     0,    67,
-       0,    67,     0,    67,   -13,   -13,    65,    24,   164,    65,
-      65,    65,    65,    65,    65,    65,    65,    65,   176,    95,
-      95,    24,    24,    92,    92,    92,    92,    92
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
+static const yytype_uint8 yyr1[] =
+{
+       0,    22,    23,    23,    24,    24,    24,    24,    24,    24,
+      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
+      25,    25,    25,    25,    25,    25,    25,    25,    25,    25,
+      25,    25,    25,    25,    25,    25,    25,    25,    25,    25,
+      25,    25,    25,    25,    25,    25,    25,    25,    25,    25,
+      25,    25,    25,    25,    25,    25,    25
 };
 
-  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
-     Performed when YYTABLE does not specify something else to do.  Zero
-     means the default is an error.  */
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
+static const yytype_uint8 yyr2[] =
+{
+       0,     2,     1,     2,     1,     1,     3,     3,     3,     3,
+       2,     3,     3,     3,     3,     3,     3,     3,     3,     4,
+       1,     1,     3,     3,     3,     3,     2,     3,     3,     3,
+       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
+       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
+       3,     3,     3,     3,     3,     3,     4
+};
+
+/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
+   Performed when YYTABLE doesn't specify something else to do.  Zero
+   means the default is an error.  */
 static const yytype_uint8 yydefact[] =
 {
-       0,     4,     5,    19,    20,     0,     0,     2,     0,     0,
-       0,     0,    10,    25,     0,     0,     1,     0,     0,     0,
+       0,     4,     5,    20,    21,     0,     0,     2,     0,     0,
+       0,     0,    10,    26,     0,     0,     1,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     3,     0,     0,
-      17,    32,     6,    34,     7,    36,     8,    38,     9,    40,
-       0,     0,     0,    11,    12,    43,    13,    45,    14,    47,
-      15,    49,    16,    51,    33,    21,    35,    22,    37,    23,
-      39,    24,    41,    26,    42,    27,    44,    28,    46,    29,
-      48,    30,    50,    31,    18,    52,     0,    10,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     6,
-       7,     8,     9,    12,    13,    14,    15,    16
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     3,
+       0,     0,    18,    34,     6,    36,     7,    38,     8,    40,
+       9,    42,     0,     0,     0,    11,    12,    45,    13,    47,
+      14,    49,    15,    51,    16,    53,    17,    55,    35,    22,
+      37,    23,    39,    24,    41,    25,    43,    27,    44,    28,
+      46,    29,    48,    30,    50,    31,    52,    32,    54,    33,
+      19,    56,     0,    10,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     6,     7,     8,     9,
+      12,    13,    14,    15,    16,    17
 };
 
-  /* YYPGOTO[NTERM-NUM].  */
-static const yytype_int8 yypgoto[] =
-{
-     -13,   -13,    -5,    31
-};
-
-  /* YYDEFGOTO[NTERM-NUM].  */
+/* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int8 yydefgoto[] =
 {
@@ -566,106 +590,135 @@
 };
 
-  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
-     positive, shift that token.  If negative, reduce the rule whose
-     number is the opposite.  If YYTABLE_NINF, syntax error.  */
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+   STATE-NUM.  */
+#define YYPACT_NINF -14
+static const yytype_int16 yypact[] =
+{
+      97,   -14,   -14,   -13,   -14,    70,    70,   -14,    37,   207,
+     115,    70,    32,    34,   129,   142,   -14,    70,    70,    70,
+      70,   103,    70,    70,    70,    70,    70,    70,    70,    70,
+      70,    70,    70,    70,    70,    70,    70,    70,    70,   -14,
+     155,   168,   -14,   -14,    -7,    25,    -7,    25,    32,    34,
+      32,    34,    28,   103,   103,    32,     0,    72,     0,    72,
+       0,    72,     0,    72,     0,    72,     0,    72,    -7,    25,
+      -7,    25,    32,    34,    32,    34,    32,    34,     0,    72,
+       0,    72,     0,    72,     0,    72,     0,    72,     0,    72,
+     -14,   -14,   103,    32,   181,   103,   103,   103,   103,   103,
+     103,   103,   103,   103,   103,   194,    31,    31,    32,    32,
+     218,   218,   218,   218,   218,   218
+};
+
+/* YYPGOTO[NTERM-NUM].  */
+static const yytype_int8 yypgoto[] =
+{
+     -14,   -14,    -5,    33
+};
+
+/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
+   positive, shift that token.  If negative, reduce the rule which
+   number is the opposite.  If YYTABLE_NINF, syntax error.  */
+#define YYTABLE_NINF -1
 static const yytype_uint8 yytable[] =
 {
-      12,    14,    19,    20,    21,    11,    38,    17,    18,    19,
-      20,    21,    42,    44,    46,    48,    53,    54,    56,    58,
-      60,    62,    64,    66,    68,    70,    72,    74,    76,    78,
-      80,    82,    29,    30,    31,    21,    13,    15,     1,     2,
-       3,     4,    39,     5,    16,    31,    87,    88,    43,    45,
-      47,    49,     6,    55,    57,    59,    61,    63,    65,    67,
-      69,    71,    73,    75,    77,    79,    81,    83,     1,     2,
-      50,    86,     0,    51,    27,    28,    29,    30,    31,     0,
-       0,    98,    52,     0,    99,   100,   101,   102,   103,   104,
-     105,   106,   107,     1,     2,     3,     4,     0,     5,    89,
-      90,    91,    92,    21,    91,    92,    21,     6,     0,     7,
-      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
-       0,     0,    37,    17,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,     0,    40,    27,    28,    29,    30,    31,
-      32,    33,    34,    35,    36,     0,    41,    17,    18,    19,
-      20,    21,    22,    23,    24,    25,    26,     0,    84,    27,
-      28,    29,    30,    31,    32,    33,    34,    35,    36,     0,
-      85,    89,    90,    91,    92,    21,    93,    94,    95,    96,
-      97,     0,    40,    89,    90,    91,    92,    21,    93,    94,
-      95,    96,    97,     0,    84,    17,    18,    19,    20,    21,
-      22,    23,    24,    25,    26
+      12,    14,    19,    20,    21,    11,    40,    17,    18,    19,
+      20,    21,    44,    46,    48,    50,    55,    56,    58,    60,
+      62,    64,    66,    68,    70,    72,    74,    76,    78,    80,
+      82,    84,    86,    88,    30,    31,    32,    16,    13,    15,
+      97,    98,    21,    21,    41,    32,    92,     0,    93,    94,
+      45,    47,    49,    51,     0,    57,    59,    61,    63,    65,
+      67,    69,    71,    73,    75,    77,    79,    81,    83,    85,
+      87,    89,     0,     1,     2,     3,     4,     0,     5,    28,
+      29,    30,    31,    32,     0,     0,     0,   105,     6,     0,
+     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
+       1,     2,     3,     4,     0,     5,     1,     2,    52,     0,
+       0,    53,     0,     0,     0,     6,     0,     7,     0,     0,
+       0,    54,    28,    29,    30,    31,    32,    33,    34,    35,
+      36,    37,    38,     0,     0,    39,    17,    18,    19,    20,
+      21,    22,    23,    24,    25,    26,    27,     0,    42,    28,
+      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
+       0,    43,    17,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,     0,    90,    28,    29,    30,    31,    32,
+      33,    34,    35,    36,    37,    38,     0,    91,    95,    96,
+      97,    98,    21,    99,   100,   101,   102,   103,   104,     0,
+      42,    95,    96,    97,    98,    21,    99,   100,   101,   102,
+     103,   104,     0,    90,    17,    18,    19,    20,    21,    22,
+      23,    24,    25,    26,    27,    95,    96,    97,    98,    21
 };
 
+#define yypact_value_is_default(Yystate) \
+  (!!((Yystate) == (-14)))
+
+#define yytable_value_is_error(Yytable_value) \
+  YYID (0)
+
 static const yytype_int8 yycheck[] =
 {
-       5,     6,     9,    10,    11,    17,    11,     7,     8,     9,
+       5,     6,     9,    10,    11,    18,    11,     7,     8,     9,
       10,    11,    17,    18,    19,    20,    21,    22,    23,    24,
       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      35,    36,     9,    10,    11,    11,     5,     6,     3,     4,
-       5,     6,    11,     8,     0,    11,    51,    52,    17,    18,
-      19,    20,    17,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,    34,    35,    36,     3,     4,
-       5,    17,    -1,     8,     7,     8,     9,    10,    11,    -1,
-      -1,    86,    17,    -1,    89,    90,    91,    92,    93,    94,
-      95,    96,    97,     3,     4,     5,     6,    -1,     8,     7,
-       8,     9,    10,    11,     9,    10,    11,    17,    -1,    19,
-       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
-      -1,    -1,    19,     7,     8,     9,    10,    11,    12,    13,
-      14,    15,    16,    -1,    18,     7,     8,     9,    10,    11,
-      12,    13,    14,    15,    16,    -1,    18,     7,     8,     9,
-      10,    11,    12,    13,    14,    15,    16,    -1,    18,     7,
-       8,     9,    10,    11,    12,    13,    14,    15,    16,    -1,
-      18,     7,     8,     9,    10,    11,    12,    13,    14,    15,
-      16,    -1,    18,     7,     8,     9,    10,    11,    12,    13,
-      14,    15,    16,    -1,    18,     7,     8,     9,    10,    11,
-      12,    13,    14,    15,    16
+      35,    36,    37,    38,     9,    10,    11,     0,     5,     6,
+       9,    10,    11,    11,    11,    11,    18,    -1,    53,    54,
+      17,    18,    19,    20,    -1,    22,    23,    24,    25,    26,
+      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
+      37,    38,    -1,     3,     4,     5,     6,    -1,     8,     7,
+       8,     9,    10,    11,    -1,    -1,    -1,    92,    18,    -1,
+      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
+       3,     4,     5,     6,    -1,     8,     3,     4,     5,    -1,
+      -1,     8,    -1,    -1,    -1,    18,    -1,    20,    -1,    -1,
+      -1,    18,     7,     8,     9,    10,    11,    12,    13,    14,
+      15,    16,    17,    -1,    -1,    20,     7,     8,     9,    10,
+      11,    12,    13,    14,    15,    16,    17,    -1,    19,     7,
+       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+      -1,    19,     7,     8,     9,    10,    11,    12,    13,    14,
+      15,    16,    17,    -1,    19,     7,     8,     9,    10,    11,
+      12,    13,    14,    15,    16,    17,    -1,    19,     7,     8,
+       9,    10,    11,    12,    13,    14,    15,    16,    17,    -1,
+      19,     7,     8,     9,    10,    11,    12,    13,    14,    15,
+      16,    17,    -1,    19,     7,     8,     9,    10,    11,    12,
+      13,    14,    15,    16,    17,     7,     8,     9,    10,    11
 };
 
-  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-     symbol of state STATE-NUM.  */
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+   symbol of state STATE-NUM.  */
 static const yytype_uint8 yystos[] =
 {
-       0,     3,     4,     5,     6,     8,    17,    19,    22,    23,
-      24,    17,    23,    24,    23,    24,     0,     7,     8,     9,
-      10,    11,    12,    13,    14,    15,    16,     7,     8,     9,
-      10,    11,    12,    13,    14,    15,    16,    19,    23,    24,
-      18,    18,    23,    24,    23,    24,    23,    24,    23,    24,
-       5,     8,    17,    23,    23,    24,    23,    24,    23,    24,
-      23,    24,    23,    24,    23,    24,    23,    24,    23,    24,
-      23,    24,    23,    24,    23,    24,    23,    24,    23,    24,
-      23,    24,    23,    24,    18,    18,    17,    23,    23,     7,
-       8,     9,    10,    12,    13,    14,    15,    16,    23,    23,
-      23,    23,    23,    23,    23,    23,    23,    23
+       0,     3,     4,     5,     6,     8,    18,    20,    23,    24,
+      25,    18,    24,    25,    24,    25,     0,     7,     8,     9,
+      10,    11,    12,    13,    14,    15,    16,    17,     7,     8,
+       9,    10,    11,    12,    13,    14,    15,    16,    17,    20,
+      24,    25,    19,    19,    24,    25,    24,    25,    24,    25,
+      24,    25,     5,     8,    18,    24,    24,    25,    24,    25,
+      24,    25,    24,    25,    24,    25,    24,    25,    24,    25,
+      24,    25,    24,    25,    24,    25,    24,    25,    24,    25,
+      24,    25,    24,    25,    24,    25,    24,    25,    24,    25,
+      19,    19,    18,    24,    24,     7,     8,     9,    10,    12,
+      13,    14,    15,    16,    17,    24,    24,    24,    24,    24,
+      24,    24,    24,    24,    24,    24
 };
 
-  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
-static const yytype_uint8 yyr1[] =
-{
-       0,    21,    22,    22,    23,    23,    23,    23,    23,    23,
-      23,    23,    23,    23,    23,    23,    23,    23,    23,    24,
-      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
-      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
-      24,    24,    24,    24,    24,    24,    24,    24,    24,    24,
-      24,    24,    24
-};
-
-  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
-static const yytype_uint8 yyr2[] =
-{
-       0,     2,     1,     2,     1,     1,     3,     3,     3,     3,
-       2,     3,     3,     3,     3,     3,     3,     3,     4,     1,
-       1,     3,     3,     3,     3,     2,     3,     3,     3,     3,
-       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
-       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
-       3,     3,     4
-};
-
-
-#define yyerrok         (yyerrstatus = 0)
-#define yyclearin       (yychar = YYEMPTY)
-#define YYEMPTY         (-2)
-#define YYEOF           0
-
-#define YYACCEPT        goto yyacceptlab
-#define YYABORT         goto yyabortlab
-#define YYERROR         goto yyerrorlab
-
+#define yyerrok		(yyerrstatus = 0)
+#define yyclearin	(yychar = YYEMPTY)
+#define YYEMPTY		(-2)
+#define YYEOF		0
+
+#define YYACCEPT	goto yyacceptlab
+#define YYABORT		goto yyabortlab
+#define YYERROR		goto yyerrorlab
+
+
+/* Like YYERROR except do call yyerror.  This remains here temporarily
+   to ease the transition to the new meaning of YYERROR, for GCC.
+   Once GCC version 2 has supplanted version 1, this can go.  However,
+   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
+   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
+   discussed.  */
+
+#define YYFAIL		goto yyerrlab
+#if defined YYFAIL
+  /* This is here to suppress warnings from the GCC cpp's
+     -Wunused-macros.  Normally we don't worry about that warning, but
+     some users do, and we want to make it easy for users to remove
+     YYFAIL uses, which will produce warnings from Bison 2.5.  */
+#endif
 
 #define YYRECOVERING()  (!!yyerrstatus)
@@ -684,13 +737,25 @@
     {                                                           \
       yyerror (YY_("syntax error: cannot back up")); \
-      YYERROR;                                                  \
-    }                                                           \
-while (0)
+      YYERROR;							\
+    }								\
+while (YYID (0))
 
 /* Error token number */
-#define YYTERROR        1
-#define YYERRCODE       256
-
-
+#define YYTERROR	1
+#define YYERRCODE	256
+
+
+/* This macro is provided for backward compatibility. */
+#ifndef YY_LOCATION_PRINT
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+#endif
+
+
+/* YYLEX -- calling `yylex' with the right arguments.  */
+#ifdef YYLEX_PARAM
+# define YYLEX yylex (YYLEX_PARAM)
+#else
+# define YYLEX yylex ()
+#endif
 
 /* Enable debugging if requested.  */
@@ -702,34 +767,38 @@
 # endif
 
-# define YYDPRINTF(Args)                        \
-do {                                            \
-  if (yydebug)                                  \
-    YYFPRINTF Args;                             \
-} while (0)
-
-/* This macro is provided for backward compatibility. */
-#ifndef YY_LOCATION_PRINT
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-#endif
-
-
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
-do {                                                                      \
-  if (yydebug)                                                            \
-    {                                                                     \
-      YYFPRINTF (stderr, "%s ", Title);                                   \
-      yy_symbol_print (stderr,                                            \
-                  Type, Value); \
-      YYFPRINTF (stderr, "\n");                                           \
-    }                                                                     \
-} while (0)
-
-
-/*----------------------------------------.
-| Print this symbol's value on YYOUTPUT.  |
-`----------------------------------------*/
-
+# define YYDPRINTF(Args)			\
+do {						\
+  if (yydebug)					\
+    YYFPRINTF Args;				\
+} while (YYID (0))
+
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
+do {									  \
+  if (yydebug)								  \
+    {									  \
+      YYFPRINTF (stderr, "%s ", Title);					  \
+      yy_symbol_print (stderr,						  \
+		  Type, Value); \
+      YYFPRINTF (stderr, "\n");						  \
+    }									  \
+} while (YYID (0))
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
+
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static void
 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+#else
+static void
+yy_symbol_value_print (yyoutput, yytype, yyvaluep)
+    FILE *yyoutput;
+    int yytype;
+    YYSTYPE const * const yyvaluep;
+#endif
 {
   FILE *yyo = yyoutput;
@@ -740,6 +809,12 @@
   if (yytype < YYNTOKENS)
     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# else
+  YYUSE (yyoutput);
 # endif
-  YYUSE (yytype);
+  switch (yytype)
+    {
+      default:
+        break;
+    }
 }
 
@@ -749,9 +824,20 @@
 `--------------------------------*/
 
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static void
 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-{
-  YYFPRINTF (yyoutput, "%s %s (",
-             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
+#else
+static void
+yy_symbol_print (yyoutput, yytype, yyvaluep)
+    FILE *yyoutput;
+    int yytype;
+    YYSTYPE const * const yyvaluep;
+#endif
+{
+  if (yytype < YYNTOKENS)
+    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+  else
+    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
 
   yy_symbol_value_print (yyoutput, yytype, yyvaluep);
@@ -764,6 +850,14 @@
 `------------------------------------------------------------------*/
 
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static void
 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
+#else
+static void
+yy_stack_print (yybottom, yytop)
+    yytype_int16 *yybottom;
+    yytype_int16 *yytop;
+#endif
 {
   YYFPRINTF (stderr, "Stack now");
@@ -776,9 +870,9 @@
 }
 
-# define YY_STACK_PRINT(Bottom, Top)                            \
-do {                                                            \
-  if (yydebug)                                                  \
-    yy_stack_print ((Bottom), (Top));                           \
-} while (0)
+# define YY_STACK_PRINT(Bottom, Top)				\
+do {								\
+  if (yydebug)							\
+    yy_stack_print ((Bottom), (Top));				\
+} while (YYID (0))
 
 
@@ -787,29 +881,36 @@
 `------------------------------------------------*/
 
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static void
-yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
-{
-  unsigned long int yylno = yyrline[yyrule];
+yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
+#else
+static void
+yy_reduce_print (yyvsp, yyrule)
+    YYSTYPE *yyvsp;
+    int yyrule;
+#endif
+{
   int yynrhs = yyr2[yyrule];
   int yyi;
+  unsigned long int yylno = yyrline[yyrule];
   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
-             yyrule - 1, yylno);
+	     yyrule - 1, yylno);
   /* The symbols being reduced.  */
   for (yyi = 0; yyi < yynrhs; yyi++)
     {
       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
-      yy_symbol_print (stderr,
-                       yystos[yyssp[yyi + 1 - yynrhs]],
-                       &(yyvsp[(yyi + 1) - (yynrhs)])
-                                              );
+      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
+		       &(yyvsp[(yyi + 1) - (yynrhs)])
+		       		       );
       YYFPRINTF (stderr, "\n");
     }
 }
 
-# define YY_REDUCE_PRINT(Rule)          \
-do {                                    \
-  if (yydebug)                          \
-    yy_reduce_print (yyssp, yyvsp, Rule); \
-} while (0)
+# define YY_REDUCE_PRINT(Rule)		\
+do {					\
+  if (yydebug)				\
+    yy_reduce_print (yyvsp, Rule); \
+} while (YYID (0))
 
 /* Nonzero means print parse trace.  It is left uninitialized so that
@@ -825,5 +926,5 @@
 
 /* YYINITDEPTH -- initial size of the parser's stacks.  */
-#ifndef YYINITDEPTH
+#ifndef	YYINITDEPTH
 # define YYINITDEPTH 200
 #endif
@@ -848,6 +949,13 @@
 #  else
 /* Return the length of YYSTR.  */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static YYSIZE_T
 yystrlen (const char *yystr)
+#else
+static YYSIZE_T
+yystrlen (yystr)
+    const char *yystr;
+#endif
 {
   YYSIZE_T yylen;
@@ -865,6 +973,14 @@
 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
    YYDEST.  */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static char *
 yystpcpy (char *yydest, const char *yysrc)
+#else
+static char *
+yystpcpy (yydest, yysrc)
+    char *yydest;
+    const char *yysrc;
+#endif
 {
   char *yyd = yydest;
@@ -896,25 +1012,25 @@
 
       for (;;)
-        switch (*++yyp)
-          {
-          case '\'':
-          case ',':
-            goto do_not_strip_quotes;
-
-          case '\\':
-            if (*++yyp != '\\')
-              goto do_not_strip_quotes;
-            /* Fall through.  */
-          default:
-            if (yyres)
-              yyres[yyn] = *yyp;
-            yyn++;
-            break;
-
-          case '"':
-            if (yyres)
-              yyres[yyn] = '\0';
-            return yyn;
-          }
+	switch (*++yyp)
+	  {
+	  case '\'':
+	  case ',':
+	    goto do_not_strip_quotes;
+
+	  case '\\':
+	    if (*++yyp != '\\')
+	      goto do_not_strip_quotes;
+	    /* Fall through.  */
+	  default:
+	    if (yyres)
+	      yyres[yyn] = *yyp;
+	    yyn++;
+	    break;
+
+	  case '"':
+	    if (yyres)
+	      yyres[yyn] = '\0';
+	    return yyn;
+	  }
     do_not_strip_quotes: ;
     }
@@ -939,9 +1055,9 @@
                 yytype_int16 *yyssp, int yytoken)
 {
-  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
+  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
   YYSIZE_T yysize = yysize0;
   enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
   /* Internationalized format string. */
-  const char *yyformat = YY_NULLPTR;
+  const char *yyformat = YY_NULL;
   /* Arguments of yyformat. */
   char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
@@ -951,4 +1067,8 @@
 
   /* There are many possibilities here to consider:
+     - Assume YYFAIL is not used.  It's too flawed to consider.  See
+       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
+       for details.  YYERROR is fine as it does not invoke this
+       function.
      - If this state is a consistent state with a default action, then
        the only way this function was invoked is if the default action
@@ -1000,5 +1120,5 @@
                 yyarg[yycount++] = yytname[yyx];
                 {
-                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
+                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
                   if (! (yysize <= yysize1
                          && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
@@ -1067,15 +1187,29 @@
 `-----------------------------------------------*/
 
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static void
 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yydestruct (yymsg, yytype, yyvaluep)
+    const char *yymsg;
+    int yytype;
+    YYSTYPE *yyvaluep;
+#endif
 {
   YYUSE (yyvaluep);
+
   if (!yymsg)
     yymsg = "Deleting";
   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
 
-  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-  YYUSE (yytype);
-  YY_IGNORE_MAYBE_UNINITIALIZED_END
+  switch (yytype)
+    {
+
+      default:
+        break;
+    }
 }
 
@@ -1086,6 +1220,16 @@
 int yychar;
 
+
+#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END
+#endif
+#ifndef YY_INITIAL_VALUE
+# define YY_INITIAL_VALUE(Value) /* Nothing. */
+#endif
+
 /* The semantic value of the lookahead symbol.  */
-YYSTYPE yylval;
+YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
+
 /* Number of syntax errors so far.  */
 int yynerrs;
@@ -1096,6 +1240,25 @@
 `----------*/
 
+#ifdef YYPARSE_PARAM
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+int
+yyparse (void *YYPARSE_PARAM)
+#else
+int
+yyparse (YYPARSE_PARAM)
+    void *YYPARSE_PARAM;
+#endif
+#else /* ! YYPARSE_PARAM */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 int
 yyparse (void)
+#else
+int
+yyparse ()
+
+#endif
+#endif
 {
     int yystate;
@@ -1104,6 +1267,6 @@
 
     /* The stacks and their tools:
-       'yyss': related to states.
-       'yyvs': related to semantic values.
+       `yyss': related to states.
+       `yyvs': related to semantic values.
 
        Refer to the stacks through separate pointers, to allow yyoverflow
@@ -1173,21 +1336,21 @@
 #ifdef yyoverflow
       {
-        /* Give user a chance to reallocate the stack.  Use copies of
-           these so that the &'s don't force the real ones into
-           memory.  */
-        YYSTYPE *yyvs1 = yyvs;
-        yytype_int16 *yyss1 = yyss;
-
-        /* Each stack pointer address is followed by the size of the
-           data in use in that stack, in bytes.  This used to be a
-           conditional around just the two extra args, but that might
-           be undefined if yyoverflow is a macro.  */
-        yyoverflow (YY_("memory exhausted"),
-                    &yyss1, yysize * sizeof (*yyssp),
-                    &yyvs1, yysize * sizeof (*yyvsp),
-                    &yystacksize);
-
-        yyss = yyss1;
-        yyvs = yyvs1;
+	/* Give user a chance to reallocate the stack.  Use copies of
+	   these so that the &'s don't force the real ones into
+	   memory.  */
+	YYSTYPE *yyvs1 = yyvs;
+	yytype_int16 *yyss1 = yyss;
+
+	/* Each stack pointer address is followed by the size of the
+	   data in use in that stack, in bytes.  This used to be a
+	   conditional around just the two extra args, but that might
+	   be undefined if yyoverflow is a macro.  */
+	yyoverflow (YY_("memory exhausted"),
+		    &yyss1, yysize * sizeof (*yyssp),
+		    &yyvs1, yysize * sizeof (*yyvsp),
+		    &yystacksize);
+
+	yyss = yyss1;
+	yyvs = yyvs1;
       }
 #else /* no yyoverflow */
@@ -1197,20 +1360,20 @@
       /* Extend the stack our own way.  */
       if (YYMAXDEPTH <= yystacksize)
-        goto yyexhaustedlab;
+	goto yyexhaustedlab;
       yystacksize *= 2;
       if (YYMAXDEPTH < yystacksize)
-        yystacksize = YYMAXDEPTH;
+	yystacksize = YYMAXDEPTH;
 
       {
-        yytype_int16 *yyss1 = yyss;
-        union yyalloc *yyptr =
-          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
-        if (! yyptr)
-          goto yyexhaustedlab;
-        YYSTACK_RELOCATE (yyss_alloc, yyss);
-        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
+	yytype_int16 *yyss1 = yyss;
+	union yyalloc *yyptr =
+	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+	if (! yyptr)
+	  goto yyexhaustedlab;
+	YYSTACK_RELOCATE (yyss_alloc, yyss);
+	YYSTACK_RELOCATE (yyvs_alloc, yyvs);
 #  undef YYSTACK_RELOCATE
-        if (yyss1 != yyssa)
-          YYSTACK_FREE (yyss1);
+	if (yyss1 != yyssa)
+	  YYSTACK_FREE (yyss1);
       }
 # endif
@@ -1221,8 +1384,8 @@
 
       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
-                  (unsigned long int) yystacksize));
+		  (unsigned long int) yystacksize));
 
       if (yyss + yystacksize - 1 <= yyssp)
-        YYABORT;
+	YYABORT;
     }
 
@@ -1253,5 +1416,5 @@
     {
       YYDPRINTF ((stderr, "Reading a token: "));
-      yychar = yylex ();
+      yychar = YYLEX;
     }
 
@@ -1318,5 +1481,5 @@
 
   /* If YYLEN is nonzero, implement the default value of the action:
-     '$$ = $1'.
+     `$$ = $1'.
 
      Otherwise, the following line sets YYVAL to garbage.
@@ -1332,311 +1495,336 @@
     {
         case 2:
-#line 61 "yacc_parser.yacc" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 61 "yacc_parser.yacc"
     { /* Nothing to do */ }
-#line 1337 "yacc_parser.cpp" /* yacc.c:1646  */
     break;
 
   case 3:
-#line 62 "yacc_parser.yacc" /* yacc.c:1646  */
-    { parsed = (yyvsp[-1].filterNode); }
-#line 1343 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 62 "yacc_parser.yacc"
+    { parsed = (yyvsp[(1) - (2)].filterNode); }
     break;
 
   case 4:
-#line 66 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.scalarNode) = new CScalarValExprNode(*(yyvsp[0].str)); delete (yyvsp[0].str); }
-#line 1349 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 66 "yacc_parser.yacc"
+    { (yyval.scalarNode) = new CScalarValExprNode(*(yyvsp[(1) - (1)].str)); delete (yyvsp[(1) - (1)].str); }
     break;
 
   case 5:
-#line 67 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.scalarNode) = new CScalarVarExprNode(*(yyvsp[0].str)); delete (yyvsp[0].str); }
-#line 1355 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 67 "yacc_parser.yacc"
+    { (yyval.scalarNode) = new CScalarVarExprNode(*(yyvsp[(1) - (1)].str)); delete (yyvsp[(1) - (1)].str); }
     break;
 
   case 6:
-#line 68 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "add", (yyvsp[0].scalarNode)); }
-#line 1361 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 68 "yacc_parser.yacc"
+    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "add", (yyvsp[(3) - (3)].scalarNode)); }
     break;
 
   case 7:
-#line 69 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "minus", (yyvsp[0].scalarNode)); }
-#line 1367 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 69 "yacc_parser.yacc"
+    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "minus", (yyvsp[(3) - (3)].scalarNode)); }
     break;
 
   case 8:
-#line 70 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "mult", (yyvsp[0].scalarNode)); }
-#line 1373 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 70 "yacc_parser.yacc"
+    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "mult", (yyvsp[(3) - (3)].scalarNode)); }
     break;
 
   case 9:
-#line 71 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "div", (yyvsp[0].scalarNode)); }
-#line 1379 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 71 "yacc_parser.yacc"
+    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "div", (yyvsp[(3) - (3)].scalarNode)); }
     break;
 
   case 10:
-#line 72 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.scalarNode) = new CScalarUnaryOpExprNode("neg", (yyvsp[0].scalarNode)); }
-#line 1385 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 72 "yacc_parser.yacc"
+    { (yyval.scalarNode) = new CScalarUnaryOpExprNode("neg", (yyvsp[(2) - (2)].scalarNode)); }
     break;
 
   case 11:
-#line 73 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "pow", (yyvsp[0].scalarNode)); }
-#line 1391 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 73 "yacc_parser.yacc"
+    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "pow", (yyvsp[(3) - (3)].scalarNode)); }
     break;
 
   case 12:
-#line 74 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "eq", (yyvsp[0].scalarNode)); }
-#line 1397 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 74 "yacc_parser.yacc"
+    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "eq", (yyvsp[(3) - (3)].scalarNode)); }
     break;
 
   case 13:
-#line 75 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "lt", (yyvsp[0].scalarNode)); }
-#line 1403 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 75 "yacc_parser.yacc"
+    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "lt", (yyvsp[(3) - (3)].scalarNode)); }
     break;
 
   case 14:
-#line 76 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "gt", (yyvsp[0].scalarNode)); }
-#line 1409 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 76 "yacc_parser.yacc"
+    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "gt", (yyvsp[(3) - (3)].scalarNode)); }
     break;
 
   case 15:
-#line 77 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "le", (yyvsp[0].scalarNode)); }
-#line 1415 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 77 "yacc_parser.yacc"
+    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "le", (yyvsp[(3) - (3)].scalarNode)); }
     break;
 
   case 16:
-#line 78 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[-2].scalarNode), "ge", (yyvsp[0].scalarNode)); }
-#line 1421 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 78 "yacc_parser.yacc"
+    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "ge", (yyvsp[(3) - (3)].scalarNode)); }
     break;
 
   case 17:
-#line 79 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.scalarNode) = (yyvsp[-1].scalarNode); }
-#line 1427 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 79 "yacc_parser.yacc"
+    { (yyval.scalarNode) = new CScalarBinaryOpExprNode((yyvsp[(1) - (3)].scalarNode), "ne", (yyvsp[(3) - (3)].scalarNode)); }
     break;
 
   case 18:
-#line 80 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.scalarNode) = new CScalarUnaryOpExprNode(*(yyvsp[-3].str), (yyvsp[-1].scalarNode)); delete (yyvsp[-3].str); }
-#line 1433 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 80 "yacc_parser.yacc"
+    { (yyval.scalarNode) = (yyvsp[(2) - (3)].scalarNode); }
     break;
 
   case 19:
-#line 84 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterFieldExprNode(*(yyvsp[0].str)); delete (yyvsp[0].str); }
-#line 1439 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 81 "yacc_parser.yacc"
+    { (yyval.scalarNode) = new CScalarUnaryOpExprNode(*(yyvsp[(1) - (4)].str), (yyvsp[(3) - (4)].scalarNode)); delete (yyvsp[(1) - (4)].str); }
     break;
 
   case 20:
-#line 85 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterTemporalFieldExprNode(*(yyvsp[0].str)); delete (yyvsp[0].str); }
-#line 1445 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 85 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterFieldExprNode(*(yyvsp[(1) - (1)].str)); delete (yyvsp[(1) - (1)].str); }
     break;
 
   case 21:
-#line 86 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "add", (yyvsp[0].filterNode)); }
-#line 1451 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 86 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterTemporalFieldExprNode(*(yyvsp[(1) - (1)].str)); delete (yyvsp[(1) - (1)].str); }
     break;
 
   case 22:
-#line 87 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "minus", (yyvsp[0].filterNode)); }
-#line 1457 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 87 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "add", (yyvsp[(3) - (3)].filterNode)); }
     break;
 
   case 23:
-#line 88 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "mult", (yyvsp[0].filterNode)); }
-#line 1463 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 88 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "minus", (yyvsp[(3) - (3)].filterNode)); }
     break;
 
   case 24:
-#line 89 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "div", (yyvsp[0].filterNode)); }
-#line 1469 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 89 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "mult", (yyvsp[(3) - (3)].filterNode)); }
     break;
 
   case 25:
-#line 90 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterUnaryOpExprNode("neg", (yyvsp[0].filterNode)); }
-#line 1475 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 90 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "div", (yyvsp[(3) - (3)].filterNode)); }
     break;
 
   case 26:
-#line 91 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "pow", (yyvsp[0].filterNode)); }
-#line 1481 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 91 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterUnaryOpExprNode("neg", (yyvsp[(2) - (2)].filterNode)); }
     break;
 
   case 27:
-#line 92 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "eq", (yyvsp[0].filterNode)); }
-#line 1487 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 92 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "pow", (yyvsp[(3) - (3)].filterNode)); }
     break;
 
   case 28:
-#line 93 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "lt", (yyvsp[0].filterNode)); }
-#line 1493 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 93 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "eq", (yyvsp[(3) - (3)].filterNode)); }
     break;
 
   case 29:
-#line 94 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "gt", (yyvsp[0].filterNode)); }
-#line 1499 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 94 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "lt", (yyvsp[(3) - (3)].filterNode)); }
     break;
 
   case 30:
-#line 95 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "le", (yyvsp[0].filterNode)); }
-#line 1505 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 95 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "gt", (yyvsp[(3) - (3)].filterNode)); }
     break;
 
   case 31:
-#line 96 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[-2].filterNode), "ge", (yyvsp[0].filterNode)); }
-#line 1511 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 96 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "le", (yyvsp[(3) - (3)].filterNode)); }
     break;
 
   case 32:
-#line 97 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = (yyvsp[-1].filterNode); }
-#line 1517 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 97 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "ge", (yyvsp[(3) - (3)].filterNode)); }
     break;
 
   case 33:
-#line 98 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "add", (yyvsp[0].scalarNode)); }
-#line 1523 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 98 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterFieldFieldOpExprNode((yyvsp[(1) - (3)].filterNode), "ne", (yyvsp[(3) - (3)].filterNode)); }
     break;
 
   case 34:
-#line 99 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "add", (yyvsp[0].filterNode)); }
-#line 1529 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 99 "yacc_parser.yacc"
+    { (yyval.filterNode) = (yyvsp[(2) - (3)].filterNode); }
     break;
 
   case 35:
-#line 100 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "minus", (yyvsp[0].scalarNode)); }
-#line 1535 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 100 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "add", (yyvsp[(3) - (3)].scalarNode)); }
     break;
 
   case 36:
-#line 101 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "minus", (yyvsp[0].filterNode)); }
-#line 1541 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 101 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "add", (yyvsp[(3) - (3)].filterNode)); }
     break;
 
   case 37:
-#line 102 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "mult", (yyvsp[0].scalarNode)); }
-#line 1547 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 102 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "minus", (yyvsp[(3) - (3)].scalarNode)); }
     break;
 
   case 38:
-#line 103 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "mult", (yyvsp[0].filterNode)); }
-#line 1553 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 103 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "minus", (yyvsp[(3) - (3)].filterNode)); }
     break;
 
   case 39:
-#line 104 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "div", (yyvsp[0].scalarNode)); }
-#line 1559 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 104 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "mult", (yyvsp[(3) - (3)].scalarNode)); }
     break;
 
   case 40:
-#line 105 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "div", (yyvsp[0].filterNode)); }
-#line 1565 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 105 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "mult", (yyvsp[(3) - (3)].filterNode)); }
     break;
 
   case 41:
-#line 106 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "pow", (yyvsp[0].scalarNode)); }
-#line 1571 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 106 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "div", (yyvsp[(3) - (3)].scalarNode)); }
     break;
 
   case 42:
-#line 107 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "eq", (yyvsp[0].scalarNode)); }
-#line 1577 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 107 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "div", (yyvsp[(3) - (3)].filterNode)); }
     break;
 
   case 43:
-#line 108 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "eq", (yyvsp[0].filterNode)); }
-#line 1583 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 108 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "pow", (yyvsp[(3) - (3)].scalarNode)); }
     break;
 
   case 44:
-#line 109 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "lt", (yyvsp[0].scalarNode)); }
-#line 1589 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 109 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "eq", (yyvsp[(3) - (3)].scalarNode)); }
     break;
 
   case 45:
-#line 110 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "lt", (yyvsp[0].filterNode)); }
-#line 1595 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 110 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "eq", (yyvsp[(3) - (3)].filterNode)); }
     break;
 
   case 46:
-#line 111 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "gt", (yyvsp[0].scalarNode)); }
-#line 1601 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 111 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "lt", (yyvsp[(3) - (3)].scalarNode)); }
     break;
 
   case 47:
-#line 112 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "gt", (yyvsp[0].filterNode)); }
-#line 1607 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 112 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "lt", (yyvsp[(3) - (3)].filterNode)); }
     break;
 
   case 48:
-#line 113 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "le", (yyvsp[0].scalarNode)); }
-#line 1613 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 113 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "gt", (yyvsp[(3) - (3)].scalarNode)); }
     break;
 
   case 49:
-#line 114 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "le", (yyvsp[0].filterNode)); }
-#line 1619 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 114 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "gt", (yyvsp[(3) - (3)].filterNode)); }
     break;
 
   case 50:
-#line 115 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[-2].filterNode), "ge", (yyvsp[0].scalarNode)); }
-#line 1625 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 115 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "le", (yyvsp[(3) - (3)].scalarNode)); }
     break;
 
   case 51:
-#line 116 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[-2].scalarNode), "ge", (yyvsp[0].filterNode)); }
-#line 1631 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 116 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "le", (yyvsp[(3) - (3)].filterNode)); }
     break;
 
   case 52:
-#line 117 "yacc_parser.yacc" /* yacc.c:1646  */
-    { (yyval.filterNode) = new CFilterUnaryOpExprNode(*(yyvsp[-3].str), (yyvsp[-1].filterNode)); delete (yyvsp[-3].str); }
-#line 1637 "yacc_parser.cpp" /* yacc.c:1646  */
-    break;
-
-
-#line 1641 "yacc_parser.cpp" /* yacc.c:1646  */
+/* Line 1792 of yacc.c  */
+#line 117 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "ge", (yyvsp[(3) - (3)].scalarNode)); }
+    break;
+
+  case 53:
+/* Line 1792 of yacc.c  */
+#line 118 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "ge", (yyvsp[(3) - (3)].filterNode)); }
+    break;
+
+  case 54:
+/* Line 1792 of yacc.c  */
+#line 119 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterFieldScalarOpExprNode((yyvsp[(1) - (3)].filterNode), "ne", (yyvsp[(3) - (3)].scalarNode)); }
+    break;
+
+  case 55:
+/* Line 1792 of yacc.c  */
+#line 120 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterScalarFieldOpExprNode((yyvsp[(1) - (3)].scalarNode), "ne", (yyvsp[(3) - (3)].filterNode)); }
+    break;
+
+  case 56:
+/* Line 1792 of yacc.c  */
+#line 121 "yacc_parser.yacc"
+    { (yyval.filterNode) = new CFilterUnaryOpExprNode(*(yyvsp[(1) - (4)].str), (yyvsp[(3) - (4)].filterNode)); delete (yyvsp[(1) - (4)].str); }
+    break;
+
+
+/* Line 1792 of yacc.c  */
+#line 1829 "yacc_parser.cpp"
       default: break;
     }
@@ -1660,5 +1848,5 @@
   *++yyvsp = yyval;
 
-  /* Now 'shift' the result of the reduction.  Determine what state
+  /* Now `shift' the result of the reduction.  Determine what state
      that goes to, based on the state we popped back to and the rule
      number reduced by.  */
@@ -1675,7 +1863,7 @@
 
 
-/*--------------------------------------.
-| yyerrlab -- here on detecting error.  |
-`--------------------------------------*/
+/*------------------------------------.
+| yyerrlab -- here on detecting error |
+`------------------------------------*/
 yyerrlab:
   /* Make sure we have latest lookahead translation.  See comments at
@@ -1728,18 +1916,18 @@
     {
       /* If just tried and failed to reuse lookahead token after an
-         error, discard it.  */
+	 error, discard it.  */
 
       if (yychar <= YYEOF)
-        {
-          /* Return failure if at end of input.  */
-          if (yychar == YYEOF)
-            YYABORT;
-        }
+	{
+	  /* Return failure if at end of input.  */
+	  if (yychar == YYEOF)
+	    YYABORT;
+	}
       else
-        {
-          yydestruct ("Error: discarding",
-                      yytoken, &yylval);
-          yychar = YYEMPTY;
-        }
+	{
+	  yydestruct ("Error: discarding",
+		      yytoken, &yylval);
+	  yychar = YYEMPTY;
+	}
     }
 
@@ -1760,5 +1948,5 @@
      goto yyerrorlab;
 
-  /* Do not reclaim the symbols of the rule whose action triggered
+  /* Do not reclaim the symbols of the rule which action triggered
      this YYERROR.  */
   YYPOPSTACK (yylen);
@@ -1773,5 +1961,5 @@
 `-------------------------------------------------------------*/
 yyerrlab1:
-  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
+  yyerrstatus = 3;	/* Each real token shifted decrements this.  */
 
   for (;;)
@@ -1779,21 +1967,21 @@
       yyn = yypact[yystate];
       if (!yypact_value_is_default (yyn))
-        {
-          yyn += YYTERROR;
-          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
-            {
-              yyn = yytable[yyn];
-              if (0 < yyn)
-                break;
-            }
-        }
+	{
+	  yyn += YYTERROR;
+	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+	    {
+	      yyn = yytable[yyn];
+	      if (0 < yyn)
+		break;
+	    }
+	}
 
       /* Pop the current state because it cannot handle the error token.  */
       if (yyssp == yyss)
-        YYABORT;
+	YYABORT;
 
 
       yydestruct ("Error: popping",
-                  yystos[yystate], yyvsp);
+		  yystos[yystate], yyvsp);
       YYPOPSTACK (1);
       yystate = *yyssp;
@@ -1846,5 +2034,5 @@
                   yytoken, &yylval);
     }
-  /* Do not reclaim the symbols of the rule whose action triggered
+  /* Do not reclaim the symbols of the rule which action triggered
      this YYABORT or YYACCEPT.  */
   YYPOPSTACK (yylen);
@@ -1853,5 +2041,5 @@
     {
       yydestruct ("Cleanup: popping",
-                  yystos[*yyssp], yyvsp);
+		  yystos[*yyssp], yyvsp);
       YYPOPSTACK (1);
     }
@@ -1864,7 +2052,11 @@
     YYSTACK_FREE (yymsg);
 #endif
-  return yyresult;
+  /* Make sure YYID is used.  */
+  return YYID (yyresult);
 }
-#line 119 "yacc_parser.yacc" /* yacc.c:1906  */
+
+
+/* Line 2055 of yacc.c  */
+#line 123 "yacc_parser.yacc"
 
 
Index: XIOS/trunk/src/parse_expr/yacc_parser.hpp
===================================================================
--- XIOS/trunk/src/parse_expr/yacc_parser.hpp	(revision 1001)
+++ XIOS/trunk/src/parse_expr/yacc_parser.hpp	(revision 1019)
@@ -1,18 +1,18 @@
-/* A Bison parser, made by GNU Bison 3.0.2.  */
+/* A Bison parser, made by GNU Bison 2.7.  */
 
 /* Bison interface for Yacc-like parsers in C
-
-   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
-
+   
+      Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
+   
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
-
+   
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-
+   
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
@@ -27,5 +27,5 @@
    Bison output files to be licensed under the GNU General Public
    License without this special exception.
-
+   
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
@@ -33,5 +33,5 @@
 #ifndef YY_YY_YACC_PARSER_HPP_INCLUDED
 # define YY_YY_YACC_PARSER_HPP_INCLUDED
-/* Debug traces.  */
+/* Enabling traces.  */
 #ifndef YYDEBUG
 # define YYDEBUG 0
@@ -41,36 +41,38 @@
 #endif
 
-/* Token type.  */
+/* Tokens.  */
 #ifndef YYTOKENTYPE
 # define YYTOKENTYPE
-  enum yytokentype
-  {
-    NUMBER = 258,
-    VAR = 259,
-    ID = 260,
-    AVERAGE = 261,
-    PLUS = 262,
-    MINUS = 263,
-    TIMES = 264,
-    DIVIDE = 265,
-    POWER = 266,
-    EQ = 267,
-    LT = 268,
-    GT = 269,
-    LE = 270,
-    GE = 271,
-    LEFT_PARENTHESIS = 272,
-    RIGHT_PARENTHESIS = 273,
-    END = 274,
-    NEG = 275
-  };
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     NUMBER = 258,
+     VAR = 259,
+     ID = 260,
+     AVERAGE = 261,
+     PLUS = 262,
+     MINUS = 263,
+     TIMES = 264,
+     DIVIDE = 265,
+     POWER = 266,
+     EQ = 267,
+     LT = 268,
+     GT = 269,
+     LE = 270,
+     GE = 271,
+     NE = 272,
+     LEFT_PARENTHESIS = 273,
+     RIGHT_PARENTHESIS = 274,
+     END = 275,
+     NEG = 276
+   };
 #endif
 
-/* Value type.  */
+
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE YYSTYPE;
-union YYSTYPE
+typedef union YYSTYPE
 {
-#line 35 "yacc_parser.yacc" /* yacc.c:1909  */
+/* Line 2058 of yacc.c  */
+#line 35 "yacc_parser.yacc"
 
   std::string* str;                /* symbol table index */
@@ -78,14 +80,28 @@
   xios::IFilterExprNode* filterNode;
 
-#line 81 "yacc_parser.hpp" /* yacc.c:1909  */
-};
+
+/* Line 2058 of yacc.c  */
+#line 85 "yacc_parser.hpp"
+} YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 #endif
 
-
 extern YYSTYPE yylval;
 
+#ifdef YYPARSE_PARAM
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void *YYPARSE_PARAM);
+#else
+int yyparse ();
+#endif
+#else /* ! YYPARSE_PARAM */
+#if defined __STDC__ || defined __cplusplus
 int yyparse (void);
+#else
+int yyparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
 
 #endif /* !YY_YY_YACC_PARSER_HPP_INCLUDED  */
Index: XIOS/trunk/src/parse_expr/yacc_parser.yacc
===================================================================
--- XIOS/trunk/src/parse_expr/yacc_parser.yacc	(revision 1001)
+++ XIOS/trunk/src/parse_expr/yacc_parser.yacc	(revision 1019)
@@ -42,9 +42,9 @@
 %token <str> VAR ID AVERAGE
 %token PLUS MINUS TIMES DIVIDE POWER
-%token EQ LT GT LE GE
+%token EQ LT GT LE GE NE
 %token LEFT_PARENTHESIS RIGHT_PARENTHESIS
 %token <str> END
 
-%left EQ LT GT LE GE
+%left EQ LT GT LE GE NE
 %left PLUS MINUS
 %left TIMES DIVIDE
@@ -77,4 +77,5 @@
           | Expression LE Expression  { $$ = new CScalarBinaryOpExprNode($1, "le", $3); }
           | Expression GE Expression  { $$ = new CScalarBinaryOpExprNode($1, "ge", $3); }
+          | Expression NE Expression  { $$ = new CScalarBinaryOpExprNode($1, "ne", $3); }
           | LEFT_PARENTHESIS Expression RIGHT_PARENTHESIS    { $$ = $2; }
           | ID LEFT_PARENTHESIS Expression RIGHT_PARENTHESIS { $$ = new CScalarUnaryOpExprNode(*$1, $3); delete $1; }
@@ -95,4 +96,5 @@
           | Field_expr LE Field_expr { $$ = new CFilterFieldFieldOpExprNode($1, "le", $3); }
           | Field_expr GE Field_expr { $$ = new CFilterFieldFieldOpExprNode($1, "ge", $3); }
+          | Field_expr NE Field_expr { $$ = new CFilterFieldFieldOpExprNode($1, "ne", $3); }
           | LEFT_PARENTHESIS Field_expr RIGHT_PARENTHESIS	{ $$ = $2; }
           | Field_expr PLUS Expression   { $$ = new CFilterFieldScalarOpExprNode($1, "add", $3); }
@@ -115,4 +117,6 @@
           | Field_expr GE Expression { $$ = new CFilterFieldScalarOpExprNode($1, "ge", $3); }
           | Expression GE Field_expr { $$ = new CFilterScalarFieldOpExprNode($1, "ge", $3); }
+          | Field_expr NE Expression { $$ = new CFilterFieldScalarOpExprNode($1, "ne", $3); }
+          | Expression NE Field_expr { $$ = new CFilterScalarFieldOpExprNode($1, "ne", $3); }
           | ID LEFT_PARENTHESIS Field_expr RIGHT_PARENTHESIS { $$ = new CFilterUnaryOpExprNode(*$1, $3); delete $1; }
           ;
