From d1254f5a7f6c6a61ab622ab747657d7bd0eac394 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Thu, 12 Aug 2021 23:09:43 -0600 Subject: [PATCH] getTarget --- kiss/src/kiss/Kiss.hx | 1 + kiss/src/kiss/Prelude.hx | 29 ++++++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/kiss/src/kiss/Kiss.hx b/kiss/src/kiss/Kiss.hx index afaf0204..0718cd9b 100644 --- a/kiss/src/kiss/Kiss.hx +++ b/kiss/src/kiss/Kiss.hx @@ -78,6 +78,7 @@ class Kiss { "assertProcess" => Symbol("Prelude.assertProcess"), "random" => Symbol("Std.random"), "walkDirectory" => Symbol("Prelude.walkDirectory"), + "getTarget" => Symbol("Prelude.getTarget"), // These work with (apply) because they are added as "opAliases" in Macros.kiss: "min" => Symbol("Prelude.min"), "max" => Symbol("Prelude.max"), diff --git a/kiss/src/kiss/Prelude.hx b/kiss/src/kiss/Prelude.hx index 009905a2..de8f2d0d 100644 --- a/kiss/src/kiss/Prelude.hx +++ b/kiss/src/kiss/Prelude.hx @@ -31,6 +31,15 @@ enum ExtraElementHandling { Throw; // Throw an error } +enum KissTarget { + Cpp; + CSharp; + Haxe; + JavaScript; + NodeJS; + Python; +} + class Prelude { static function stringOrFloat(d:Dynamic):Either { return switch (Type.typeof(d)) { @@ -446,9 +455,27 @@ class Prelude { #end } + public static function getTarget():KissTarget { + return #if cpp + Cpp; + #elseif cs + CSharp; + #elseif interp + Haxe; + #elseif hxnodejs + NodeJS; + #elseif js + JavaScript; + #elseif python + Python; + #else + throw "Unsupported target language for Kiss"; + #end + } + public static function assertProcess(command:String, args:Array, ?inputLines:Array, fullProcess = true):String { #if test - Prelude.print('running $command $args $inputLines'); + Prelude.print('running $command $args $inputLines from ${Prelude.getTarget()}'); #end if (inputLines != null) { for (line in inputLines) {