Пример #1
0
        private static void WriteLiteralExpression(BoundLiteralExpression node, IndentedTextWriter writer)
        {
            var value = node.Value.ToString();

            if (node.Type == TypeSymbol.Int)
            {
                writer.WriteNumber(value);
            }

            else if (node.Type == TypeSymbol.String)
            {
                value = "\"" + value.Replace("\"", "\"\"") + "\"";
                writer.WriteString(value);
            }
            else
            {
                throw new Exception($"Unexpected type: {node.Type}");
            }
        }
Пример #2
0
        private static void WriteLiteralExpression(BoundLiteralExpression node, IndentedTextWriter writer)
        {
            var value = node.Value !.ToString();

            if (node.Type == TypeSymbol.Bool)
            {
                writer.WriteKeyword((bool)node.Value ? SyntaxKind.TrueKeyword : SyntaxKind.FalseKeyword);
            }
            else if (node.Type.IsNumeric)
            {
                writer.WriteNumber(value ?? "");
            }
            else if (node.Type == TypeSymbol.String)
            {
                value = "\"" + (value ?? "").Replace("\"", "\"\"") + "\"";
                writer.WriteString(value);
            }
            else
            {
                throw new Exception($"Unexpected type {node.Type}");
            }
        }
Пример #3
0
 protected virtual BoundExpression RewriteLiteralExpression(BoundLiteralExpression node)
 {
     return(node);
 }