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
/
scan.c
diff --git
a/src/language/lexer/scan.c
b/src/language/lexer/scan.c
index 3150470caa9e379af16d2072b63d2b5be3717488..f2dcebca15ea562543d5fde64b7cac95ec96ab4b 100644
(file)
--- a/
src/language/lexer/scan.c
+++ b/
src/language/lexer/scan.c
@@
-188,6
+188,8
@@
scan_punct1__ (char c0)
case '-': return T_DASH;
case '[': return T_LBRACK;
case ']': return T_RBRACK;
case '-': return T_DASH;
case '[': return T_LBRACK;
case ']': return T_RBRACK;
+ case '{': return T_LCURLY;
+ case '}': return T_RCURLY;
case '&': return T_AND;
case '|': return T_OR;
case '+': return T_PLUS;
case '&': return T_AND;
case '|': return T_OR;
case '+': return T_PLUS;
@@
-196,6
+198,8
@@
scan_punct1__ (char c0)
case '<': return T_LT;
case '>': return T_GT;
case '~': return T_NOT;
case '<': return T_LT;
case '>': return T_GT;
case '~': return T_NOT;
+ case ';': return T_SEMICOLON;
+ case ':': return T_COLON;
default: return T_MACRO_PUNCT;
}
default: return T_MACRO_PUNCT;
}
@@
-290,6
+294,7
@@
tokenize_string_segment__ (enum segment_type type,
else
{
tokenize_error__ (token, error);
else
{
tokenize_error__ (token, error);
+ ss_dealloc (&out);
return TOKENIZE_ERROR;
}
}
return TOKENIZE_ERROR;
}
}
@@
-328,6
+333,7
@@
token_from_segment (enum segment_type type, struct substring s,
case SEG_INLINE_DATA:
case SEG_DOCUMENT:
case SEG_MACRO_BODY:
case SEG_INLINE_DATA:
case SEG_DOCUMENT:
case SEG_MACRO_BODY:
+ case SEG_MACRO_NAME:
*token = (struct token) { .type = T_STRING };
ss_alloc_substring (&token->string, s);
return TOKENIZE_TOKEN;
*token = (struct token) { .type = T_STRING };
ss_alloc_substring (&token->string, s);
return TOKENIZE_TOKEN;