public override void VisitToken(SyntaxToken token)
        {
            var s = token.ToString();

            switch (token.Kind())
            {
                case SyntaxKind.UsingKeyword:
                    s = "@" + token.ToString() + " ";
                    break;

                case SyntaxKind.ClassKeyword:

                    if ((token.Parent as ClassDeclarationSyntax).IsHiddenClassDeclaration())
                    {
                        s = "";
                    }
                    else
                    {
                        s = @"<script type='text/javascript' name='";
                    }
                    break;

                case SyntaxKind.IdentifierToken:

                    var p = (token.Parent as ClassDeclarationSyntax);
                    if (p == null)
                    { }
                    else
                    {
                        if (p.IsHiddenClassDeclaration())
                        {
                            s = "";
                        }
                        else
                        {
                            s = token.ToString() + "'>" + newLine;
                        }
                    }

                    var p1 = token.HasParent<IdentifierNameSyntax, SimpleBaseTypeSyntax, BaseListSyntax>();
                    s = Reset_If_Not_Null(p1, s);

                    var p3 = token.Parent as MethodDeclarationSyntax;
                    s = Reset_If_IsHiddenMethodDeclaration(p3, s);

                    var p11 = token.HasParent<IdentifierNameSyntax, TypeArgumentListSyntax>();
                    s = Reset_If_Not_Null(p11, s);

                    var p14 = token.HasParent<IdentifierNameSyntax, VariableDeclarationSyntax>();
                    if (p14 == null)
                    {
                    }
                    else
                    {
                        s = "var ";
                    }

                    var p141 = token.HasParent<IdentifierNameSyntax, ParameterSyntax>();
                    s = Reset_If_Not_Null(p141, s);

                    break;

                case SyntaxKind.SemicolonToken:

                    s += newLine;
                    break;

                case SyntaxKind.ColonToken:

                    var p4 = token.HasParent<BaseListSyntax, ClassDeclarationSyntax>();
                    s = Reset_If_Not_Null(p4, s);
                    break;
                case SyntaxKind.CommaToken:

                    var p41 = token.Parent as TypeArgumentListSyntax;
                    s = Reset_If_Not_Null(p41, s);
                    break;

                case SyntaxKind.OpenBraceToken:

                    s = s + newLine;
                    var p5 = token.Parent as ClassDeclarationSyntax;
                    s = Reset_If_Not_Null(p5, s);

                    var p2 = token.HasParent<BlockSyntax, MethodDeclarationSyntax>();
                    s = Reset_If_IsHiddenMethodDeclaration(p2, s);
                    break;

                case SyntaxKind.CloseBraceToken:
                    s = s + newLine + newLine;
                    var p6 = token.HasParent<BlockSyntax, MethodDeclarationSyntax>();
                    s = Reset_If_IsHiddenMethodDeclaration(p6, s);

                    var p55 = token.Parent as ClassDeclarationSyntax;
                    if (p55 == null)
                    { }
                    else
                    {
                        s = "</script>";
                    }
                    break;

                case SyntaxKind.OpenParenToken:

                    var p7 = token.HasParent<ParameterListSyntax, MethodDeclarationSyntax>();
                    s = Reset_If_IsHiddenMethodDeclaration(p7, s);
                    break;

                case SyntaxKind.CloseParenToken:

                    var p8 = token.HasParent<ParameterListSyntax, MethodDeclarationSyntax>();
                    s = Reset_If_IsHiddenMethodDeclaration(p8, s);
                    break;

                case SyntaxKind.LessThanToken:

                    var p12 = token.Parent as TypeArgumentListSyntax;
                    s = Reset_If_Not_Null(p12, s);
                    break;
                case SyntaxKind.GreaterThanToken:

                    var p13 = token.Parent as TypeArgumentListSyntax;
                    s = Reset_If_Not_Null(p13, s);
                    break;

                case SyntaxKind.VoidKeyword:

                    var p9 = token.HasParent<PredefinedTypeSyntax, MethodDeclarationSyntax>();
                    if (p9 == null)
                    {

                    }
                    else
                    {
                        if (p9.IsHiddenMethodDeclaration())
                        {
                            s = "";
                        }
                        else
                        {
                            s = "function ";
                        }
                    }

                    break;
                case SyntaxKind.BoolKeyword:
                    var p91 = token.HasParent<PredefinedTypeSyntax, MethodDeclarationSyntax>();
                    if (p91 == null)
                    {

                    }
                    else
                    {
                        if (p91.IsHiddenMethodDeclaration())
                        {
                            s = "";
                        }
                        else
                        {
                            s = "function ";
                        }
                    }
                    break;
                case SyntaxKind.IntKeyword:
                    var p101 = token.HasParent<PredefinedTypeSyntax, VariableDeclarationSyntax>();
                    if (p101 == null)
                    { }
                    else
                    {
                        s = "var ";
                    }

                    var p102 = token.HasParent<PredefinedTypeSyntax, ParameterSyntax>();
                    s = Reset_If_Not_Null(p102, s);

                    break;
                case SyntaxKind.StringKeyword:

                    var p10 = token.HasParent<PredefinedTypeSyntax, VariableDeclarationSyntax>();
                    if (p10 == null)
                    { }
                    else
                    {
                        s = "var ";
                    }
                    break;
                case SyntaxKind.ElseKeyword:
                    s += " ";
                    break;
                case SyntaxKind.NewKeyword:
                    s += " ";
                    break;
                case SyntaxKind.ReturnKeyword:
                    s += " ";
                    break;
            }
            _2JS.Append(s);
            base.VisitToken(token);
        }
        public override void VisitToken(SyntaxToken token)
        {
            var s = "";

            if (token.IsKind(SyntaxKind.OpenBraceToken))
            {
                var up = token.HasParent<BlockSyntax, MethodDeclarationSyntax>();
                if (up == null) { }
                else
                {
                    if (up.IsHiddenMethodDeclaration())
                    { }
                    else
                    {
                        s = token.ToString();
                    }
                }
            }
            else if (token.IsKind(SyntaxKind.CloseBraceToken))
            {
                var up = token.Parent as ClassDeclarationSyntax;
                if (up == null)
                {
                }
                else
                {
                    if (up.IsHiddenClassDeclaration())
                    { }
                    else
                    {
                        s = "</script>";
                    }
                }

                var up1 = token.HasParent<BlockSyntax, MethodDeclarationSyntax>();
                if (up1 == null) { }
                else
                {
                    if (up1.IsHiddenMethodDeclaration())
                    { }
                    else
                    {
                        s = token.ToString();
                    }
                }
            }
            else if (token.IsKind(SyntaxKind.OpenParenToken))
            {
                var up = token.HasParent<ParameterListSyntax, MethodDeclarationSyntax>();

                if (up == null)
                {
                }
                else
                {
                    if (up.IsHiddenMethodDeclaration())
                    { }
                    else
                    {
                        s = token.ToString();
                    }
                }
            }
            else if (token.IsKind(SyntaxKind.CloseParenToken))
            {
                var up = token.HasParent<ParameterListSyntax, MethodDeclarationSyntax>();

                if (up == null)
                {

                }
                else
                {
                    if (up.IsHiddenMethodDeclaration())
                    { }
                    else
                    {
                        s = token.ToString();
                    }
                }
            }
            else if (token.IsKind(SyntaxKind.SemicolonToken))
            {
                var up = token.Parent as FieldDeclarationSyntax;
                if (up == null)
                {
                }
                else
                {
                    s = token.ToString() + newLine;
                }
            }

            _2JS.Append(s);
            base.VisitToken(token);
        }