1
Fork 0

simplify, based on invariant that items_allowed != foreign_items_allowed

This commit is contained in:
John Clements 2013-04-10 09:44:48 -07:00
parent ae4e09f71a
commit 71c0bd5c5d
2 changed files with 7 additions and 13 deletions

View file

@ -756,7 +756,6 @@ mod test {
assert_eq!(refold_test_sc(3,&t),test_sc); assert_eq!(refold_test_sc(3,&t),test_sc);
} }
// extend a syntax context with a sequence of marks given // extend a syntax context with a sequence of marks given
// in a vector. v[0] will be the outermost mark. // in a vector. v[0] will be the outermost mark.
fn unfold_marks(mrks:~[Mrk],tail:SyntaxContext,table: &mut SCTable) -> SyntaxContext { fn unfold_marks(mrks:~[Mrk],tail:SyntaxContext,table: &mut SCTable) -> SyntaxContext {

View file

@ -4107,38 +4107,34 @@ pub impl Parser {
maybe_append(attrs, maybe_append(attrs,
extra_attrs))); extra_attrs)));
} }
if !foreign_items_allowed { if items_allowed {
// EXTERN MODULE ITEM // EXTERN MODULE ITEM
return self.parse_item_foreign_mod(lo, opt_abis, visibility, attrs, return self.parse_item_foreign_mod(lo, opt_abis, visibility, attrs,
items_allowed); items_allowed);
} }
} }
if items_allowed && !foreign_items_allowed && if items_allowed && self.eat_keyword(&~"mod") {
self.eat_keyword(&~"mod") {
// MODULE ITEM // MODULE ITEM
let (ident, item_, extra_attrs) = self.parse_item_mod(attrs); let (ident, item_, extra_attrs) = self.parse_item_mod(attrs);
return iovi_item(self.mk_item(lo, self.last_span.hi, ident, item_, return iovi_item(self.mk_item(lo, self.last_span.hi, ident, item_,
visibility, visibility,
maybe_append(attrs, extra_attrs))); maybe_append(attrs, extra_attrs)));
} }
if items_allowed && !foreign_items_allowed && if items_allowed && self.eat_keyword(&~"type") {
self.eat_keyword(&~"type") {
// TYPE ITEM // TYPE ITEM
let (ident, item_, extra_attrs) = self.parse_item_type(); let (ident, item_, extra_attrs) = self.parse_item_type();
return iovi_item(self.mk_item(lo, self.last_span.hi, ident, item_, return iovi_item(self.mk_item(lo, self.last_span.hi, ident, item_,
visibility, visibility,
maybe_append(attrs, extra_attrs))); maybe_append(attrs, extra_attrs)));
} }
if items_allowed && !foreign_items_allowed && if items_allowed && self.eat_keyword(&~"enum") {
self.eat_keyword(&~"enum") {
// ENUM ITEM // ENUM ITEM
let (ident, item_, extra_attrs) = self.parse_item_enum(); let (ident, item_, extra_attrs) = self.parse_item_enum();
return iovi_item(self.mk_item(lo, self.last_span.hi, ident, item_, return iovi_item(self.mk_item(lo, self.last_span.hi, ident, item_,
visibility, visibility,
maybe_append(attrs, extra_attrs))); maybe_append(attrs, extra_attrs)));
} }
if items_allowed && !foreign_items_allowed && if items_allowed && self.eat_keyword(&~"trait") {
self.eat_keyword(&~"trait") {
// TRAIT ITEM // TRAIT ITEM
let (ident, item_, extra_attrs) = self.parse_item_trait(); let (ident, item_, extra_attrs) = self.parse_item_trait();
return iovi_item(self.mk_item(lo, self.last_span.hi, ident, item_, return iovi_item(self.mk_item(lo, self.last_span.hi, ident, item_,
@ -4154,15 +4150,14 @@ pub impl Parser {
visibility, visibility,
maybe_append(attrs, extra_attrs))); maybe_append(attrs, extra_attrs)));
} }
if items_allowed && !foreign_items_allowed && if items_allowed && self.eat_keyword(&~"struct") {
self.eat_keyword(&~"struct") {
// STRUCT ITEM // STRUCT ITEM
let (ident, item_, extra_attrs) = self.parse_item_struct(); let (ident, item_, extra_attrs) = self.parse_item_struct();
return iovi_item(self.mk_item(lo, self.last_span.hi, ident, item_, return iovi_item(self.mk_item(lo, self.last_span.hi, ident, item_,
visibility, visibility,
maybe_append(attrs, extra_attrs))); maybe_append(attrs, extra_attrs)));
} }
if !foreign_items_allowed && self.eat_keyword(&~"use") { if items_allowed && self.eat_keyword(&~"use") {
// USE ITEM // USE ITEM
let view_item = self.parse_use(); let view_item = self.parse_use();
self.expect(&token::SEMI); self.expect(&token::SEMI);