diff --git a/src/kiss/Macros.hx b/src/kiss/Macros.hx index 5331141..02c5e1b 100644 --- a/src/kiss/Macros.hx +++ b/src/kiss/Macros.hx @@ -268,6 +268,12 @@ class Macros { addCond(k, macros, "cond", "if"); addCond(k, macros, "#cond", "#if"); + k.doc("#value", 1, 1, '(#value "")'); + macros["#value"] = (wholeExp:ReaderExp, args:Array, k:KissState) -> { + var b = wholeExp.expBuilder(); + b.str(Context.definedValue(compileTimeResolveToString("The only argument to (#value...)", "a compiler flag's name", args[0], k))); + }; + k.doc("or", 1, null, "(or )"); function _or(wholeExp:ReaderExp, args:Array, k) { var b = wholeExp.expBuilder(); diff --git a/src/kiss/Reader.hx b/src/kiss/Reader.hx index e3962eb..96b6992 100644 --- a/src/kiss/Reader.hx +++ b/src/kiss/Reader.hx @@ -54,6 +54,7 @@ class Reader { forceSymbol("#cond"); forceSymbol("#case"); forceSymbol("#extern"); + forceSymbol("#value"); readTable["/*"] = (stream:Stream, k) -> { stream.takeUntilAndDrop("*/");