Boo.Lang.Parser.BooParserBase.interface_property C# (CSharp) Method

interface_property() protected method

protected interface_property ( TypeMemberCollection container ) : void
container TypeMemberCollection
return void
        protected void interface_property(
		TypeMemberCollection container
	)
        {
            IToken  id1 = null;
            IToken  s = null;

                IToken id = null;
            Property p = null;
            TypeReference tr = null;
            ParameterDeclarationCollection parameters = null;

            try {      // for error handling
            {
                switch ( LA(1) )
                {
                case ID:
                {
                    id1 = LT(1);
                    match(ID);
                    if (0==inputState.guessing)
                    {
                        id=id1;
                    }
                    break;
                }
                case SELF:
                {
                    s = LT(1);
                    match(SELF);
                    if (0==inputState.guessing)
                    {
                        id=s;
                    }
                    break;
                }
                default:
                {
                    throw new NoViableAltException(LT(1), getFilename());
                }
                 }
            }
            if (0==inputState.guessing)
            {

                p = new Property(ToLexicalInfo(id));
                p.Name = id.getText();
                AddAttributes(p.Attributes);
                container.Add(p);
                parameters = p.Parameters;

            }
            {
                switch ( LA(1) )
                {
                case LPAREN:
                case LBRACK:
                {
                    {
                        switch ( LA(1) )
                        {
                        case LBRACK:
                        {
                            match(LBRACK);
                            break;
                        }
                        case LPAREN:
                        {
                            match(LPAREN);
                            break;
                        }
                        default:
                        {
                            throw new NoViableAltException(LT(1), getFilename());
                        }
                         }
                    }
                    parameter_declaration_list(parameters);
                    {
                        switch ( LA(1) )
                        {
                        case RBRACK:
                        {
                            match(RBRACK);
                            break;
                        }
                        case RPAREN:
                        {
                            match(RPAREN);
                            break;
                        }
                        default:
                        {
                            throw new NoViableAltException(LT(1), getFilename());
                        }
                         }
                    }
                    break;
                }
                case AS:
                case COLON:
                {
                    break;
                }
                default:
                {
                    throw new NoViableAltException(LT(1), getFilename());
                }
                 }
            }
            {
                switch ( LA(1) )
                {
                case AS:
                {
                    match(AS);
                    tr=type_reference();
                    break;
                }
                case COLON:
                {
                    break;
                }
                default:
                {
                    throw new NoViableAltException(LT(1), getFilename());
                }
                 }
            }
            if (0==inputState.guessing)
            {

                p.Type = tr;

            }
            begin_with_doc(p);
            { // ( ... )+
                int _cnt114=0;
                for (;;)
                {
                    if ((LA(1)==GET||LA(1)==SET||LA(1)==LBRACK))
                    {
                        interface_property_accessor(p);
                    }
                    else
                    {
                        if (_cnt114 >= 1) { goto _loop114_breakloop; } else { throw new NoViableAltException(LT(1), getFilename());; }
                    }

                    _cnt114++;
                }
            _loop114_breakloop:				;
            }    // ( ... )+
            end(p);
            }
            catch (RecognitionException ex)
            {
            if (0 == inputState.guessing)
            {
                reportError(ex, "interface_property");
                recover(ex,tokenSet_56_);
            }
            else
            {
                throw ex;
            }
            }
        }
BooParserBase