| ... | @@ -816,6 +816,15 @@ void tokenize(Buf *buf, Tokenization *out) { | ... | @@ -816,6 +816,15 @@ void tokenize(Buf *buf, Tokenization *out) { |
| 816 | case TokenizeStateNumber: | 816 | case TokenizeStateNumber: |
| 817 | { | 817 | { |
| 818 | if (c == '.') { | 818 | if (c == '.') { |
| | 819 | if (t.pos + 1 < buf_len(t.buf)) { |
| | 820 | uint8_t next_c = buf_ptr(t.buf)[t.pos + 1]; |
| | 821 | if (next_c == '.') { |
| | 822 | t.pos -= 1; |
| | 823 | end_token(&t); |
| | 824 | t.state = TokenizeStateStart; |
| | 825 | continue; |
| | 826 | } |
| | 827 | } |
| 819 | t.cur_tok->decimal_point_pos = t.pos; | 828 | t.cur_tok->decimal_point_pos = t.pos; |
| 820 | t.state = TokenizeStateFloatFraction; | 829 | t.state = TokenizeStateFloatFraction; |
| 821 | break; | 830 | break; |