summaryrefslogtreecommitdiff
path: root/src/parse/lex.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/parse/lex.cpp')
-rw-r--r--src/parse/lex.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/parse/lex.cpp b/src/parse/lex.cpp
index 8376eeee..0b145379 100644
--- a/src/parse/lex.cpp
+++ b/src/parse/lex.cpp
@@ -83,8 +83,10 @@ static const struct {
TOKENT("-=", TOK_DASH_EQUAL),
TOKENT("->", TOK_THINARROW),
TOKENT(".", TOK_DOT),
+ // NOTE: These have special handling when following numbers
TOKENT("..", TOK_DOUBLE_DOT),
TOKENT("...",TOK_TRIPLE_DOT),
+ TOKENT("..=",TOK_DOUBLE_DOT_EQUAL),
TOKENT("/" , TOK_SLASH),
TOKENT("/*", BLOCKCOMMENT),
TOKENT("//", LINECOMMENT),
@@ -402,9 +404,13 @@ Token Lexer::getTokenInt()
// Double/Triple Dot
if( ch == '.' )
{
- if( this->getc() == '.') {
+ ch = this->getc();
+ if( ch == '.') {
this->m_next_tokens.push_back(TOK_TRIPLE_DOT);
}
+ else if( ch == '=') {
+ this->m_next_tokens.push_back(TOK_DOUBLE_DOT_EQUAL);
+ }
else {
this->ungetc();
this->m_next_tokens.push_back(TOK_DOUBLE_DOT);