Ejemplo n.º 1
0
        public TypeMember interface_declaration(TypeDefinition parent)
        {
            TypeMember member = null;
            IToken token = null;
            IToken token2 = null;
            try
            {
                InterfaceDefinition definition2;
                TypeReferenceCollection references;
                this.match(0x19);
                token = this.LT(1);
                this.match(0x3b);
                if (base.inputState.guessing == 0)
                {
                    InterfaceDefinition definition;
                    InterfaceDefinition definition1 = definition = new InterfaceDefinition(ToLexicalInfo(token));
                    definition.set_Name(token.getText());
                    member = definition2 = definition;
                    references = definition2.get_BaseTypes();
                    this.FlushAttributes(definition2);
                    parent.get_Members().Add(definition2);
                }
                switch (this.LA(1))
                {
                    case 14:
                        this.match(14);
                        this.type_reference_list(references);
                        break;

                    case 0x3d:
                        break;

                    default:
                        throw new NoViableAltException(this.LT(1), this.getFilename());
                }
                this.match(0x3d);
                while (true)
                {
                    if ((this.LA(1) != 0x13) && (this.LA(1) != 0x63))
                    {
                        break;
                    }
                    switch (this.LA(1))
                    {
                        case 0x63:
                            this.attributes();
                            break;

                        case 0x13:
                            break;

                        default:
                            throw new NoViableAltException(this.LT(1), this.getFilename());
                    }
                    this.interface_member(definition2);
                }
                token2 = this.LT(1);
                this.match(0x3e);
                if (base.inputState.guessing == 0)
                {
                    SetEndSourceLocation(definition2, token2);
                }
                while ((this.LA(1) == 0x4d) && tokenSet_33_.member(this.LA(2)))
                {
                    this.match(0x4d);
                }
                return member;
            }
            catch (RecognitionException exception)
            {
                if (base.inputState.guessing != 0)
                {
                    throw;
                }
                this.reportError(exception);
                this.recover(exception, tokenSet_33_);
                return member;
            }
            return member;
        }