Boo.Lang.Parser.BooLexer.mDOUBLE_QUOTED_STRING C# (CSharp) Method

mDOUBLE_QUOTED_STRING() public method

public mDOUBLE_QUOTED_STRING ( bool _createToken ) : void
_createToken bool
return void
        public void mDOUBLE_QUOTED_STRING(bool _createToken)
        {
            int _ttype; IToken _token=null; int _begin=text.Length;
            _ttype = DOUBLE_QUOTED_STRING;

            int _saveIndex = 0;
            _saveIndex = text.Length;
            match('"');
            text.Length = _saveIndex;
            {
            if (((cached_LA1=='"') && (cached_LA2=='"') && ((LA(3) >= '\u0003' && LA(3) <= '\ufffe')))&&(LA(1)=='"' && LA(2)=='"'))
            {
                mTRIPLE_QUOTED_STRING(false);
                if (0==inputState.guessing)
                {
                    _ttype = TRIPLE_QUOTED_STRING;
                }
            }
            else if ((tokenSet_2_.member(cached_LA1)) && (true) && (true)) {
                {
                    {    // ( ... )*
                        for (;;)
                        {
                            bool synPredMatched781 = false;
                            if (((cached_LA1=='$') && (cached_LA2=='('||cached_LA2=='{') && (tokenSet_2_.member(LA(3)))))
                            {
                                int _m781 = mark();
                                synPredMatched781 = true;
                                inputState.guessing++;
                                try {
                                    {
                                        if ((cached_LA1=='$') && (cached_LA2=='{'))
                                        {
                                            match("${");
                                        }
                                        else if ((cached_LA1=='$') && (cached_LA2=='(')) {
                                            match("$(");
                                        }
                                        else
                                        {
                                            throw new NoViableAltForCharException(cached_LA1, getFilename(), getLine(), getColumn());
                                        }

                                    }
                                }
                                catch (RecognitionException)
                                {
                                    synPredMatched781 = false;
                                }
                                rewind(_m781);
                                inputState.guessing--;
                            }
                            if ( synPredMatched781 )
                            {
                                if (0==inputState.guessing)
                                {

                                                        Enqueue(makeToken(DOUBLE_QUOTED_STRING), text.ToString(_begin, text.Length-_begin));
                                                        text.Length = _begin; text.Append("");

                                }
                                mINTERPOLATED_EXPRESSION(false);
                            }
                            else {
                                bool synPredMatched783 = false;
                                if (((cached_LA1=='$') && (tokenSet_0_.member(cached_LA2)) && (tokenSet_2_.member(LA(3)))))
                                {
                                    int _m783 = mark();
                                    synPredMatched783 = true;
                                    inputState.guessing++;
                                    try {
                                        {
                                            match('$');
                                            mID(false);
                                        }
                                    }
                                    catch (RecognitionException)
                                    {
                                        synPredMatched783 = false;
                                    }
                                    rewind(_m783);
                                    inputState.guessing--;
                                }
                                if ( synPredMatched783 )
                                {
                                    if (0==inputState.guessing)
                                    {

                                                            Enqueue(makeToken(DOUBLE_QUOTED_STRING), text.ToString(_begin, text.Length-_begin));
                                                            text.Length = _begin; text.Append("");

                                    }
                                    mINTERPOLATED_REFERENCE(false);
                                }
                                else if ((tokenSet_7_.member(cached_LA1)) && (tokenSet_2_.member(cached_LA2)) && (true)) {
                                    {
                                        match(tokenSet_7_);
                                    }
                                }
                                else if ((cached_LA1=='\\')) {
                                    mDQS_ESC(false);
                                }
                                else
                                {
                                    goto _loop785_breakloop;
                                }
                                }
                            }
            _loop785_breakloop:							;
                        }    // ( ... )*
                        _saveIndex = text.Length;
                        match('"');
                        text.Length = _saveIndex;
                    }
                }
                else
                {
                    throw new NoViableAltForCharException(cached_LA1, getFilename(), getLine(), getColumn());
                }

            }
            if (0==inputState.guessing)
            {

                        if (_erecorder.Count > 0)
                        {
                            Enqueue(makeToken(DOUBLE_QUOTED_STRING), text.ToString(_begin, text.Length-_begin));
                            _ttype = ESEPARATOR;
                            text.Length = _begin; text.Append("");
                            _selector.push(_erecorder);
                        }

            }
            if (_createToken && (null == _token) && (_ttype != Token.SKIP))
            {
                _token = makeToken(_ttype);
                _token.setText(text.ToString(_begin, text.Length-_begin));
            }
            returnToken_ = _token;
        }