projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
MATRIX
[pspp]
/
src
/
language
/
lexer
/
segment.h
diff --git
a/src/language/lexer/segment.h
b/src/language/lexer/segment.h
index 1c209c5acb395dfe630035a4e34f4650215491dc..199e390f7e4f1279d877c9e01935534d405a2289 100644
(file)
--- 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(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(START_DOCUMENT) \
SEG_TYPE(DOCUMENT) \
\
@@
-88,7
+92,6
@@
enum segmenter_mode
\
SEG_TYPE(EXPECTED_QUOTE) \
SEG_TYPE(EXPECTED_EXPONENT) \
\
SEG_TYPE(EXPECTED_QUOTE) \
SEG_TYPE(EXPECTED_EXPONENT) \
- SEG_TYPE(UNEXPECTED_DOT) \
SEG_TYPE(UNEXPECTED_CHAR)
/* Types of segments. */
SEG_TYPE(UNEXPECTED_CHAR)
/* Types of segments. */
@@
-111,14
+114,15
@@
struct segmenter
{
unsigned char state;
unsigned char substate;
{
unsigned char state;
unsigned char substate;
+ unsigned char nest;
unsigned char mode;
};
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 *);
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 *);
enum segment_type *);
enum prompt_style segmenter_get_prompt (const struct segmenter *);