Commit 069aee1495
Changed files (1)
src
stage1
src/stage1/tokenizer.cpp
@@ -223,6 +223,7 @@ enum TokenizeState {
TokenizeStateSawGreaterThanGreaterThan,
TokenizeStateSawDot,
TokenizeStateSawDotDot,
+ TokenizeStateSawDotStar,
TokenizeStateSawAtSign,
TokenizeStateCharCode,
TokenizeStateError,
@@ -566,9 +567,8 @@ void tokenize(Buf *buf, Tokenization *out) {
set_token_id(&t, t.cur_tok, TokenIdEllipsis2);
break;
case '*':
- t.state = TokenizeStateStart;
+ t.state = TokenizeStateSawDotStar;
set_token_id(&t, t.cur_tok, TokenIdDotStar);
- end_token(&t);
break;
default:
t.pos -= 1;
@@ -591,6 +591,18 @@ void tokenize(Buf *buf, Tokenization *out) {
continue;
}
break;
+ case TokenizeStateSawDotStar:
+ switch (c) {
+ case '*':
+ tokenize_error(&t, "`.*` can't be followed by `*`. Are you missing a space?");
+ break;
+ default:
+ t.pos -= 1;
+ end_token(&t);
+ t.state = TokenizeStateStart;
+ continue;
+ }
+ break;
case TokenizeStateSawGreaterThan:
switch (c) {
case '=':