public void module_member(Module module)
        {
            Block b = module.get_Globals();
            try
            {
                bool flag = false;
                if ((tokenSet_7_.member(this.LA(1)) && tokenSet_8_.member(this.LA(2))) && this.GlobalVariablesBecomeFields())
                {
                    int num = this.mark();
                    flag = true;
                    base.inputState.guessing++;
                    try
                    {
                        this.module_member_modifiers();
                        this.match(0x2d);
                    }
                    catch (RecognitionException)
                    {
                        flag = false;
                    }
                    this.rewind(num);
                    base.inputState.guessing--;
                }
                if (flag)
                {
                    this.module_field(module);
                }
                else if ((this.LA(1) == 0x2d) && tokenSet_9_.member(this.LA(2)))
                {
                    this.declaration_statement(b);
                    this.eos();
                }
                else
                {
                    TypeMember member;
                    if (!tokenSet_10_.member(this.LA(1)) || !tokenSet_11_.member(this.LA(2)))
                    {
                        throw new NoViableAltException(this.LT(1), this.getFilename());
                    }
                    TypeMemberModifiers modifiers = this.module_member_modifiers();
                    switch (this.LA(1))
                    {
                        case 8:
                        case 0x23:
                            member = this.class_declaration(module);
                            break;

                        case 0x19:
                            member = this.interface_declaration(module);
                            break;

                        case 13:
                            member = this.enum_declaration(module);
                            break;

                        case 0x13:
                            member = this.function_member(module);
                            break;

                        default:
                            throw new NoViableAltException(this.LT(1), this.getFilename());
                    }
                    if ((base.inputState.guessing == 0) && (member != null))
                    {
                        member.set_Modifiers(member.get_Modifiers() | modifiers);
                    }
                }
            }
            catch (RecognitionException exception2)
            {
                if (base.inputState.guessing != 0)
                {
                    throw;
                }
                this.reportError(exception2);
                this.recover(exception2, tokenSet_12_);
            }
        }