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 == 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}"); } }
/// <summary> /// Rewrites a literal expression. /// </summary> /// <param name="node">The literal expression to rewrite.</param> /// <returns>The rewritten literal expression.</returns> protected virtual BoundExpression RewriteLiteralExpression(BoundLiteralExpression node) { return(node); }