rustc: Accept commas to separate tag variants
This commit is contained in:
parent
397d9148a7
commit
1aaee20737
1 changed files with 12 additions and 3 deletions
|
@ -2047,7 +2047,8 @@ fn parse_item_tag(p: parser, attrs: [ast::attribute]) -> @ast::item {
|
||||||
expect(p, token::LBRACE);
|
expect(p, token::LBRACE);
|
||||||
let all_nullary = true;
|
let all_nullary = true;
|
||||||
let have_disr = false;
|
let have_disr = false;
|
||||||
while p.token != token::RBRACE {
|
let done = false;
|
||||||
|
while !done {
|
||||||
let tok = p.token;
|
let tok = p.token;
|
||||||
alt tok {
|
alt tok {
|
||||||
token::IDENT(name, _) {
|
token::IDENT(name, _) {
|
||||||
|
@ -2075,13 +2076,21 @@ fn parse_item_tag(p: parser, attrs: [ast::attribute]) -> @ast::item {
|
||||||
}
|
}
|
||||||
_ {/* empty */ }
|
_ {/* empty */ }
|
||||||
}
|
}
|
||||||
expect(p, token::SEMI);
|
|
||||||
|
alt p.token {
|
||||||
|
token::SEMI. | token::COMMA. {
|
||||||
|
p.bump();
|
||||||
|
if p.token == token::RBRACE { done = true; }
|
||||||
|
}
|
||||||
|
token::RBRACE. { done = true; }
|
||||||
|
_ { /* fall through */ }
|
||||||
|
}
|
||||||
|
|
||||||
p.get_id();
|
p.get_id();
|
||||||
let vr = {name: p.get_str(name), args: args, id: p.get_id(),
|
let vr = {name: p.get_str(name), args: args, id: p.get_id(),
|
||||||
disr_expr: disr_expr};
|
disr_expr: disr_expr};
|
||||||
variants += [spanned(vlo, vhi, vr)];
|
variants += [spanned(vlo, vhi, vr)];
|
||||||
}
|
}
|
||||||
token::RBRACE. {/* empty */ }
|
|
||||||
_ {
|
_ {
|
||||||
p.fatal("expected name of variant or '}' but found '" +
|
p.fatal("expected name of variant or '}' but found '" +
|
||||||
token::to_str(p.reader, tok) + "'");
|
token::to_str(p.reader, tok) + "'");
|
||||||
|
|
Loading…
Reference in a new issue