aboutsummaryrefslogtreecommitdiff
path: root/src/tokenizer.c
diff options
context:
space:
mode:
authorGinger Bill <bill@gingerbill.org>2017-01-03 19:11:12 +0000
committerGinger Bill <bill@gingerbill.org>2017-01-03 19:11:12 +0000
commit70d4ca00df4cbc750ec66dd17c7e776805164ec1 (patch)
treee5093fb0192155fda13908e910c87c28bd67e816 /src/tokenizer.c
parenta86896e4d30b118287cf2111cd2fbec00ed2be70 (diff)
`while`; `range` is now `for`; remove ++ and --
Diffstat (limited to 'src/tokenizer.c')
-rw-r--r--src/tokenizer.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/tokenizer.c b/src/tokenizer.c
index b5f46bcd7..715c759db 100644
--- a/src/tokenizer.c
+++ b/src/tokenizer.c
@@ -53,8 +53,6 @@ TOKEN_KIND(Token__AssignOpBegin, "_AssignOpBegin"), \
TOKEN_KIND(Token_CmpAndEq, "&&="), \
TOKEN_KIND(Token_CmpOrEq, "||="), \
TOKEN_KIND(Token__AssignOpEnd, "_AssignOpEnd"), \
- TOKEN_KIND(Token_Increment, "++"), \
- TOKEN_KIND(Token_Decrement, "--"), \
TOKEN_KIND(Token_ArrowRight, "->"), \
TOKEN_KIND(Token_ArrowLeft, "<-"), \
\
@@ -77,7 +75,7 @@ TOKEN_KIND(Token__ComparisonEnd, "_ComparisonEnd"), \
TOKEN_KIND(Token_Semicolon, ";"), \
TOKEN_KIND(Token_Period, "."), \
TOKEN_KIND(Token_Comma, ","), \
- TOKEN_KIND(Token_Ellipsis, ".."), \
+ TOKEN_KIND(Token_Ellipsis, "..."), \
TOKEN_KIND(Token_Interval, "..<"), \
TOKEN_KIND(Token__OperatorEnd, "_OperatorEnd"), \
\
@@ -94,6 +92,7 @@ TOKEN_KIND(Token__KeywordBegin, "_KeywordBegin"), \
TOKEN_KIND(Token_then, "then"), \
TOKEN_KIND(Token_if, "if"), \
TOKEN_KIND(Token_else, "else"), \
+ TOKEN_KIND(Token_while, "while"), \
TOKEN_KIND(Token_for, "for"), \
TOKEN_KIND(Token_when, "when"), \
TOKEN_KIND(Token_range, "range"), \
@@ -837,8 +836,10 @@ Token tokenizer_get_token(Tokenizer *t) {
token = scan_number_to_token(t, true);
} else if (t->curr_rune == '.') { // Could be an ellipsis
advance_to_next_rune(t);
- token.kind = Token_Ellipsis;
- if (t->curr_rune == '<') {
+ if (t->curr_rune == '.') {
+ advance_to_next_rune(t);
+ token.kind = Token_Ellipsis;
+ } else if (t->curr_rune == '<') {
advance_to_next_rune(t);
token.kind = Token_Interval;
}
@@ -891,10 +892,10 @@ Token tokenizer_get_token(Tokenizer *t) {
case '~': token.kind = token_kind_variant2(t, Token_Xor, Token_XorEq); break;
case '!': token.kind = token_kind_variant2(t, Token_Not, Token_NotEq); break;
case '+':
- token.kind = token_kind_variant3(t, Token_Add, Token_AddEq, '+', Token_Increment);
+ token.kind = token_kind_variant2(t, Token_Add, Token_AddEq);
break;
case '-':
- token.kind = token_kind_variant4(t, Token_Sub, Token_SubEq, '-', Token_Decrement, '>', Token_ArrowRight);
+ token.kind = token_kind_variant3(t, Token_Sub, Token_SubEq, '>', Token_ArrowRight);
break;
case '/': {
if (t->curr_rune == '/') {