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) \
\
\
SEG_TYPE(EXPECTED_QUOTE) \
SEG_TYPE(EXPECTED_EXPONENT) \
- SEG_TYPE(UNEXPECTED_DOT) \
SEG_TYPE(UNEXPECTED_CHAR)
/* Types of segments. */
{
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 *);