Sfoglia il codice sorgente

Use single quotes for format strings

ousado 11 anni fa
parent
commit
51c86820e0
1 ha cambiato i file con 6 aggiunte e 1 eliminazioni
  1. 6 1
      std/haxe/macro/Printer.hx

+ 6 - 1
std/haxe/macro/Printer.hx

@@ -23,6 +23,7 @@
 package haxe.macro;
 
 import haxe.macro.Expr;
+import haxe.macro.Tools;
 using Lambda;
 
 class Printer {
@@ -72,6 +73,9 @@ class Printer {
 	public function printString(s:String) {
 		return '"' + s.split("\n").join("\\n").split("\t").join("\\t").split("'").join("\\'").split('"').join("\\\"") #if sys .split("\x00").join("\\x00") #end + '"';
 	}
+	public function printFormatString(s:String) {
+		return "'" + s.split("\n").join("\\n").split("\t").join("\\t").split("'").join("\\'").split('"').join("\\\"") #if sys .split("\x00").join("\\x00") #end + "'";
+	}
 	public function printConstant(c:Constant) return switch(c) {
 		case CString(s): printString(s);
 		case CIdent(s),
@@ -150,6 +154,7 @@ class Printer {
 
 
 	public function printExpr(e:Expr) return e == null ? "#NULL" : switch(e.expr) {
+		case EConst(CString(s)): TMacroStringTools.isFormatExpr(e) ? printFormatString(s) : printString(s);
 		case EConst(c): printConstant(c);
 		case EArray(e1, e2): '${printExpr(e1)}[${printExpr(e2)}]';
 		case EBinop(op, e1, e2): '${printExpr(e1)} ${printBinop(op)} ${printExpr(e2)}';
@@ -292,4 +297,4 @@ class Printer {
 	}
 
 	function opt<T>(v:T, f:T->String, prefix = "") return v == null ? "" : (prefix + f(v));
-}
+}