X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Flanguage%2Flexer%2Fsegment.h;h=199e390f7e4f1279d877c9e01935534d405a2289;hb=69b31e124aff05df3492e6e6412c03c64e4e9d12;hp=1c209c5acb395dfe630035a4e34f4650215491dc;hpb=ff5e81803b409939e921211f1ffd46cb24df33e9;p=pspp diff --git a/src/language/lexer/segment.h b/src/language/lexer/segment.h index 1c209c5acb..199e390f7e 100644 --- a/src/language/lexer/segment.h +++ b/src/language/lexer/segment.h @@ -78,6 +78,10 @@ enum segmenter_mode SEG_TYPE(DO_REPEAT_COMMAND) \ SEG_TYPE(INLINE_DATA) \ \ + SEG_TYPE(MACRO_ID) \ + SEG_TYPE(MACRO_NAME) \ + SEG_TYPE(MACRO_BODY) \ + \ SEG_TYPE(START_DOCUMENT) \ SEG_TYPE(DOCUMENT) \ \ @@ -88,7 +92,6 @@ enum segmenter_mode \ SEG_TYPE(EXPECTED_QUOTE) \ SEG_TYPE(EXPECTED_EXPONENT) \ - SEG_TYPE(UNEXPECTED_DOT) \ SEG_TYPE(UNEXPECTED_CHAR) /* Types of segments. */ @@ -111,14 +114,15 @@ struct segmenter { unsigned char state; unsigned char substate; + unsigned char nest; unsigned char mode; }; -void segmenter_init (struct segmenter *, enum segmenter_mode); +struct segmenter segmenter_init (enum segmenter_mode, bool is_snippet); enum segmenter_mode segmenter_get_mode (const struct segmenter *); -int segmenter_push (struct segmenter *, const char *input, size_t n, +int segmenter_push (struct segmenter *, const char *input, size_t n, bool eof, enum segment_type *); enum prompt_style segmenter_get_prompt (const struct segmenter *);