void read_string(int del, SemInfo seminfo) {
save_and_next();
while (current != del) {
switch (current) {
case EOZ:
<BUG>lexerror("unfinished string", TK_EOS);
</BUG>
case '\n':
case '\r':
<BUG>lexerror("unfinished string", TK_STRING);
</BUG>
case '\\': {

void read_string(int del, SemInfo seminfo) {
save_and_next();
while (current != del) {
switch (current) {
case EOZ:
throw lexerror("unfinished string", TK_EOS);
case '\n':
case '\r':
throw lexerror("unfinished string", TK_STRING);
case '\\': {
