Work on DEFINE command.
[pspp] / src / language / lexer / segment.c
index a4fea0b213118559d474b94a2bc4efa4008ff0d0..ac88117ff5270e1a8b43cdf38172af5aaf431f16 100644 (file)
@@ -28,6 +28,7 @@
 
 #include "gl/c-ctype.h"
 #include "gl/c-strcase.h"
+#include "gl/verify.h"
 
 enum segmenter_state
   {
@@ -54,6 +55,9 @@ enum segmenter_state
     S_TITLE_2
   };
 
+/* S_SHBANG is the start state that SEGMENTER_INIT refers to as just 0. */
+verify (S_SHBANG == 0);
+
 #define SS_START_OF_LINE (1u << 0)
 #define SS_START_OF_COMMAND (1u << 1)
 
@@ -1806,9 +1810,7 @@ segment_type_to_string (enum segment_type type)
 void
 segmenter_init (struct segmenter *s, enum segmenter_mode mode)
 {
-  s->state = S_SHBANG;
-  s->substate = 0;
-  s->mode = mode;
+  *s = (struct segmenter) SEGMENTER_INIT (mode);
 }
 
 /* Returns the mode passed to segmenter_init() for S. */