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

callable_parameter_declaration() protected method

protected callable_parameter_declaration ( ParameterDeclarationCollection c ) : bool
c ParameterDeclarationCollection
return bool
        protected bool callable_parameter_declaration(
		ParameterDeclarationCollection c
	)
        {
            bool varArgs;

                TypeReference tr = null;
                ParameterModifiers pm = ParameterModifiers.None;
                varArgs = false;

            try {      // for error handling
            {
                switch ( LA(1) )
                {
                case MULTIPLY:
                {
                    {
                        match(MULTIPLY);
                        if (0==inputState.guessing)
                        {
                            varArgs=true;
                        }
                        tr=type_reference();
                    }
                    break;
                }
                case CALLABLE:
                case CHAR:
                case REF:
                case THEN:
                case LPAREN:
                case ID:
                case SPLICE_BEGIN:
                {
                    {
                        {
                            switch ( LA(1) )
                            {
                            case REF:
                            {
                                pm=parameter_modifier();
                                break;
                            }
                            case CALLABLE:
                            case CHAR:
                            case THEN:
                            case LPAREN:
                            case ID:
                            case SPLICE_BEGIN:
                            {
                                break;
                            }
                            default:
                            {
                                throw new NoViableAltException(LT(1), getFilename());
                            }
                             }
                        }
                        {
                            tr=type_reference();
                        }
                    }
                    break;
                }
                default:
                {
                    throw new NoViableAltException(LT(1), getFilename());
                }
                 }
            }
            if (0==inputState.guessing)
            {

                        ParameterDeclaration pd = new ParameterDeclaration(tr.LexicalInfo);
                        pd.Name = "arg" + c.Count;
                        pd.Type = tr;
                        pd.Modifiers = pm;
                        c.Add(pd);

            }
            }
            catch (RecognitionException ex)
            {
            if (0 == inputState.guessing)
            {
                reportError(ex, "callable_parameter_declaration");
                recover(ex,tokenSet_85_);
            }
            else
            {
                throw ex;
            }
            }
            return varArgs;
        }
BooParserBase