function nextToken(reader){ var c = reader.read(), token = null; while (c) { switch(c) { case "/": if(reader.peek() == "*") token = commentToken(reader, c, startLine, startCol); else token = charToken(reader, c, startLine, startCol); break; case '"': case "'": token = stringToken(c, startLine, startCol); break; default: token = charToken(reader, c, startLine, startCol); } break; } return token; }