fn parse_opt_abis(&self) -> Option<AbiSet> {
        match *self.token {
            token::LIT_STR(s) => {
                self.bump();
                let the_string = ident_to_str(&s);
                let mut abis = AbiSet::empty();
                for word in the_string.word_iter() {
                    match abi::lookup(word) {
                        Some(abi) => {
                            if abis.contains(abi) {
                                self.span_err(
                                    *self.span,
                                    fmt!("ABI `%s` appears twice",
                                         word));
                            } else {
                                abis.add(abi);
                            }
                        }

                        None => {
                            self.span_err(
                                *self.span,
                                fmt!("illegal ABI: \
                                      expected one of [%s], \
                                      found `%s`",
                                     abi::all_names().connect(", "),
                                     word));
                        }
                    }
                }
                Some(abis)
            }

            _ => {
                None
            }
        }
    }
// parse a string as an ABI spec on an extern type or module
parse a string as an ABI spec on an extern type or module
parse a string as an ABI spec on an extern type or module
fn parse_opt_abis(&self) -> Option<AbiSet> {
        match *self.token {
            token::LIT_STR(s) => {
                self.bump();
                let the_string = ident_to_str(&s);
                let mut abis = AbiSet::empty();
                for word in the_string.word_iter() {
                    match abi::lookup(word) {
                        Some(abi) => {
                            if abis.contains(abi) {
                                self.span_err(
                                    *self.span,
                                    fmt!("ABI `%s` appears twice",
                                         word));
                            } else {
                                abis.add(abi);
                            }
                        }
                        None => {
                            self.span_err(
                                *self.span,
                                fmt!("illegal ABI: \
                                      expected one of [%s], \
                                      found `%s`",
                                     abi::all_names().connect(", "),
                                     word));
                        }
                    }
                }
                Some(abis)
            }
            _ => {
                None
            }
        }
    }
fn parse_opt_abis ( & self ) -> Option < AbiSet > { match * self . token { token :: LIT_STR ( s ) => { self . bump ( ) ; let the_string = ident_to_str ( & s ) ; let mut abis = AbiSet :: empty ( ) ; for word in the_string . word_iter ( ) { match abi :: lookup ( word ) { Some ( abi ) => { if abis . contains ( abi ) { self . span_err ( * self . span , fmt ! ( " " word ) ) ; } else { abis . add ( abi ) ; } } None => { self . span_err ( * self . span , fmt ! ( " \
 \
 " abi all_names ( ) connect ( " " ) word ) ) ; } } } Some ( abis ) } _ => { None } } }
parse a string as an ABI spec on an extern type or module
parse a string as an ABI spec on an extern type or module
&self
&self