UnityScript.Parser.UnityScriptParser.slice C# (CSharp) Method

slice() public method

public slice ( SlicingExpression se ) : void
se SlicingExpression
return void
        public void slice(SlicingExpression se)
        {
            Expression expression = null;
            Expression expression2 = null;
            Expression expression3 = null;
            try
            {
                int num = this.LA(1);
                if (num == 0x42)
                {
                    this.match(0x42);
                    if (base.inputState.guessing == 0)
                    {
                        expression = OmittedExpression.Default;
                    }
                    num = this.LA(1);
                    switch (num)
                    {
                        case 12:
                        case 15:
                        case 0x13:
                        case 0x1b:
                        case 0x1d:
                        case 0x27:
                        case 40:
                        case 0x2a:
                        case 0x2c:
                        case 0x3b:
                        case 60:
                        case 0x3d:
                        case 0x3f:
                        case 0x44:
                        case 0x4f:
                        case 80:
                        case 0x52:
                        case 0x58:
                        case 0x67:
                        case 0x69:
                        case 0x6a:
                        case 0x6b:
                        case 0x6c:
                        case 0x6d:
                            expression2 = this.expression();
                            goto Label_03F1;

                        case 0x42:
                            this.match(0x42);
                            if (base.inputState.guessing == 0)
                            {
                                expression2 = OmittedExpression.Default;
                            }
                            expression3 = this.expression();
                            goto Label_03F1;

                        case 0x43:
                        case 0x45:
                            goto Label_03F1;
                    }
                    throw new NoViableAltException(this.LT(1), this.getFilename());
                }
                if ((((((num != 12) && (num != 15)) && ((num != 0x13) && (num != 0x1b))) && (((num != 0x1d) && (num != 0x27)) && ((num != 40) && (num != 0x2a)))) && ((((num != 0x2c) && (num != 0x3b)) && ((num != 60) && (num != 0x3d))) && (((num != 0x3f) && (num != 0x44)) && ((num != 0x4f) && (num != 80))))) && ((((num != 0x52) && (num != 0x58)) && ((num != 0x67) && (num != 0x69))) && (((num != 0x6a) && (num != 0x6b)) && ((num != 0x6c) && (num != 0x6d)))))
                {
                    throw new NoViableAltException(this.LT(1), this.getFilename());
                }
                expression = this.expression();
                num = this.LA(1);
                if (num == 0x42)
                {
                    this.match(0x42);
                    num = this.LA(1);
                    switch (num)
                    {
                        case 12:
                        case 15:
                        case 0x13:
                        case 0x1b:
                        case 0x1d:
                        case 0x27:
                        case 40:
                        case 0x2a:
                        case 0x2c:
                        case 0x3b:
                        case 60:
                        case 0x3d:
                        case 0x3f:
                        case 0x44:
                        case 0x4f:
                        case 80:
                        case 0x52:
                        case 0x58:
                        case 0x67:
                        case 0x69:
                        case 0x6a:
                        case 0x6b:
                        case 0x6c:
                        case 0x6d:
                            expression2 = this.expression();
                            break;

                        default:
                            if (((num != 0x42) && (num != 0x43)) && (num != 0x45))
                            {
                                throw new NoViableAltException(this.LT(1), this.getFilename());
                            }
                            if (base.inputState.guessing == 0)
                            {
                                expression2 = OmittedExpression.Default;
                            }
                            break;
                    }
                    num = this.LA(1);
                    switch (num)
                    {
                        case 0x42:
                            this.match(0x42);
                            expression3 = this.expression();
                            goto Label_03F1;

                        case 0x43:
                        case 0x45:
                            goto Label_03F1;

                        default:
                            throw new NoViableAltException(this.LT(1), this.getFilename());
                    }
                }
                switch (num)
                {
                    case 0x43:
                    case 0x45:
                        break;

                    default:
                        throw new NoViableAltException(this.LT(1), this.getFilename());
                }
            Label_03F1:
                if (base.inputState.guessing == 0)
                {
                    se.get_Indices().Add(new Slice(expression, expression2, expression3));
                }
            }
            catch (RecognitionException exception)
            {
                if (base.inputState.guessing != 0)
                {
                    throw;
                }
                this.reportError(exception);
                this.recover(exception, tokenSet_53_);
            }
        }
UnityScriptParser