Esempio n. 1
0
        /// <summary>
        /// Traverse C# tokens, convert C# syntax to (Iron)Python syntax
        /// </summary>
        /// <param name="token"></param>
        /// <returns></returns>
        private static string processRawToken(PythonWriter parentWriter, SyntaxToken token)
        {
            PythonWriter pyWriter = new PythonWriter(parentWriter.IndentSize);

            switch (token.Kind())
            {
            case SyntaxKind.ThisKeyword:
                // replace 'this' keyword to python self
                pyWriter.Append("self");
                break;

            case SyntaxKind.NewKeyword:
                // no 'new' keyword
                // skip
                break;

            case SyntaxKind.SemicolonToken:
                // semicolon -> end of expression
                pyWriter.NewLine();
                break;

            case SyntaxKind.NumericLiteralToken:
                // Float in C#, like '6F'
                pyWriter.Append(token.Text.Replace("F", ""));
                break;

            case SyntaxKind.OpenBraceToken:
                // Left Brace in C#
                // skip
                break;

            case SyntaxKind.CloseBraceToken:
                // Right Brace in C#
                // skip
                break;

            case SyntaxKind.TrueKeyword:
                pyWriter.Append("True");
                break;

            case SyntaxKind.FalseKeyword:
                pyWriter.Append("False");
                break;

            default:
                pyWriter.Append(token.Text);
                break;
            }
            return(pyWriter.ToString());
        }