ext/rbs_extension/lexstate.c in rbs-3.6.0.dev.1 vs ext/rbs_extension/lexstate.c in rbs-3.6.0.pre.1

- old
+ new

@@ -127,9 +127,25 @@ } return t; } +token next_eof_token(lexstate *state) { + if (state->current.byte_pos == RSTRING_LEN(state->string)+1) { + // End of String + token t; + t.type = pEOF; + t.range.start = state->start; + t.range.end = state->start; + state->start = state->current; + + return t; + } else { + // NULL byte in the middle of the string + return next_token(state, pEOF); + } +} + void rbs_skip(lexstate *state) { if (!state->last_char) { peek(state); } int byte_len = rb_enc_codelen(state->last_char, rb_enc_get(state->string));