return true;
else if ((the_token == Token.COMMA) || (the_token == Token.DOT))
goto start;
- else if (the_token == Token.INTERR)
+ else if (the_token == Token.INTERR || the_token == Token.STAR)
goto again;
else if (the_token == Token.OP_GENERICS_LT) {
if (!parse_less_than ())
}
bool taking = false;
if (ifstack == null)
- ifstack = new Stack ();
+ ifstack = new Stack (2);
if (ifstack.Count == 0){
taking = true;
current_location = new Location (ref_line, Col);
while ((c = getChar ()) != -1) {
+ loop:
if (is_identifier_part_character ((char) c)){
if (pos == max_id_size){
Report.Error (645, Location, "Identifier too long (limit is 512 chars)");
id_builder [pos++] = (char) c;
// putback_char = -1;
+ } else if (c == '\\') {
+ c = escape (c);
+ goto loop;
} else {
// putback_char = c;
putback (c);
if (c == -1)
return Token.EOF;
- if (is_identifier_start_character ((char)c)){
+ if (c == '\\' || is_identifier_start_character ((char)c)){
tokens_seen = true;
- return consume_identifier (c);
+ return consume_identifier (c);
}
current_location = new Location (ref_line, Col);