X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Flexer%2Fsegment.c;h=ac88117ff5270e1a8b43cdf38172af5aaf431f16;hb=c94be33beb7085e1cbb1ec47f0e3a49c896d443b;hp=a4fea0b213118559d474b94a2bc4efa4008ff0d0;hpb=6e0b939b8b107b911275b616f2cef6773a523d9f;p=pspp diff --git a/src/language/lexer/segment.c b/src/language/lexer/segment.c index a4fea0b213..ac88117ff5 100644 --- a/src/language/lexer/segment.c +++ b/src/language/lexer/segment.c @@ -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. */