NVelocity.Runtime.Parser.ParserTokenManager.TokenLexicalActions C# (CSharp) Méthode

TokenLexicalActions() private méthode

private TokenLexicalActions ( Token matchedToken ) : void
matchedToken Token
Résultat void
        private void TokenLexicalActions(Token matchedToken)
        {
            switch(jjmatchedKind)
            {
                case 5:
                    if (image == null)
                        image = new StringBuilder(new String(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1))));
                    else
                        image.Append(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1)));
                    if (!inComment)
                        lparen++;

                    /*
            * If in REFERENCE and we have seen the dot, then move
            * to REFMOD2 -> Modifier()
            */

                    if (curLexState == REFMODIFIER)
                        SwitchTo(REFMOD2);
                    break;
                case 6:
                    if (image == null)
                        image = new StringBuilder(new String(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1))));
                    else
                        image.Append(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1)));
                    RPARENHandler();
                    break;
                case 7:
                    if (image == null)
                        image = new StringBuilder(new String(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1))));
                    else
                        image.Append(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1)));
                    /*
            * need to simply switch back to REFERENCE, not drop down the stack
            * because we can (infinitely) chain, ala
            * $foo.bar().blargh().woogie().doogie()
            */

                    SwitchTo(REFERENCE);
                    break;
                case 9:
                    if (image == null)
                        image = new StringBuilder(new String(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1))));
                    else
                        image.Append(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1)));
                    if (! inComment)
                    {
                        inDirective = true;

                        if (debugPrint)
                            Console.Out.Write("#set :  going to {0}", DIRECTIVE);

                        StateStackPush();
                        inSet = true;
                        SwitchTo(DIRECTIVE);
                    }
                    break;
                case 19:
                    if (image == null)
                        image = new StringBuilder(new String(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1))));
                    else
                        image.Append(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1)));
                    inComment = false;
                    StateStackPop();
                    break;
                case 20:
                    if (image == null)
                        image = new StringBuilder(new String(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1))));
                    else
                        image.Append(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1)));
                    inComment = false;
                    StateStackPop();
                    break;
                case 21:
                    if (image == null)
                        image = new StringBuilder(new String(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1))));
                    else
                        image.Append(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1)));
                    inComment = false;
                    StateStackPop();
                    break;
                case 24:
                    if (image == null)
                        image = new StringBuilder(new String(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1))));
                    else
                        image.Append(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1)));
                    /*
            *  - if we are in DIRECTIVE and haven't seen ( yet, then also drop out.
            *      don't forget to account for the beloved yet wierd #set
            *  - finally, if we are in REFMOD2 (remember : $foo.bar( ) then " is ok!
            */

                    if (curLexState == DIRECTIVE && !inSet && lparen == 0)
                        StateStackPop();
                    break;
                case 27:
                    if (image == null)
                        image = new StringBuilder(new String(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1))));
                    else
                        image.Append(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1)));
                    if (debugPrint)
                        Console.Out.WriteLine(" NEWLINE :");

                    StateStackPop();

                    if (inSet)
                        inSet = false;

                    if (inDirective)
                        inDirective = false;
                    break;
                case 43:
                    if (image == null)
                        image = new StringBuilder(new String(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1))));
                    else
                        image.Append(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1)));
                    inDirective = false;
                    StateStackPop();
                    break;
                case 44:
                    if (image == null)
                        image = new StringBuilder(new String(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1))));
                    else
                        image.Append(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1)));
                    SwitchTo(DIRECTIVE);
                    break;
                case 45:
                    if (image == null)
                        image = new StringBuilder(new String(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1))));
                    else
                        image.Append(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1)));
                    SwitchTo(DIRECTIVE);
                    break;
                case 46:
                    if (image == null)
                        image = new StringBuilder(new String(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1))));
                    else
                        image.Append(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1)));
                    inDirective = false;
                    StateStackPop();
                    break;
                case 47:
                    if (image == null)
                        image = new StringBuilder(new String(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1))));
                    else
                        image.Append(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1)));
                    matchedToken.Kind = EOF;
                    break;
                case 49:
                    if (image == null)
                        image = new StringBuilder(new String(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1))));
                    else
                        image.Append(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1)));
                    /*
            * check to see if we are in set
            *    ex.  #set $foo = $foo + 3
            *  because we want to handle the \n after
            */

                    if (lparen == 0 && !inSet && curLexState != REFMOD2)
                    {
                        StateStackPop();
                    }
                    break;
                case 57:
                    if (image == null)
                        image = new StringBuilder(new String(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1))));
                    else
                        image.Append(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1)));
                    /*
            * push the alpha char back into the stream so the following identifier
            * is complete
            */

                    input_stream.Backup(1);

                    /*
            * and munge the <DOT> so we just get a . when we have normal text that
            * looks like a ref.ident
            */

                    matchedToken.Image = ".";

                    if (debugPrint)
                        Console.Out.Write("DOT : switching to {0}", REFMODIFIER);
                    SwitchTo(REFMODIFIER);
                    break;
                case 59:
                    if (image == null)
                        image = new StringBuilder(new String(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1))));
                    else
                        image.Append(input_stream.GetSuffix(jjimageLen + (jjmatchedPos + 1)));
                    StateStackPop();
                    break;
                default:
                    break;
            }
        }
ParserTokenManager