identifier: Make T_STOP always 0.
authorBen Pfaff <blp@cs.stanford.edu>
Sat, 24 Jul 2021 05:51:34 +0000 (22:51 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Sat, 24 Jul 2021 06:18:02 +0000 (23:18 -0700)
This is more sensible default if a token is zero-initialized.

src/data/identifier.h

index abb16d5645904b5b93e72097f05839dd9b00f09c..d694a5201d815997d4ca53126875320bdfad686e 100644 (file)
 #include <stdbool.h>
 #include <unitypes.h>
 #include "libpspp/str.h"
+#include "gl/verify.h"
 
 #define TOKEN_TYPES                                                     \
+    TOKEN_TYPE(STOP)                /* End of input. */                 \
+                                                                        \
     TOKEN_TYPE(ID)                  /* Identifier. */                   \
     TOKEN_TYPE(POS_NUM)             /* Positive number. */              \
     TOKEN_TYPE(NEG_NUM)             /* Negative number. */              \
     TOKEN_TYPE(STRING)              /* Quoted string. */                \
-    TOKEN_TYPE(STOP)                /* End of input. */                 \
                                                                         \
     TOKEN_TYPE(ENDCMD)              /* . */                             \
     TOKEN_TYPE(PLUS)                /* + */                             \
@@ -68,6 +70,7 @@ enum token_type
     TOKEN_TYPES
 #undef TOKEN_TYPE
   };
+verify(T_STOP == 0);
 
 #define TOKEN_TYPE(TYPE) + 1
 enum { TOKEN_N_TYPES = TOKEN_TYPES };