9.2.2 Constant Expressions
A macro can be declared to expect constant arguments:
class Main {
  static public function main() {
    const("foo", 1, 1.5, true);
  }
  macro static function const(s:String, i:Int, f:Float, b:Bool) {
    trace(s);
    trace(i);
    trace(f);
    trace(b);
    return macro null;
  }
}
With these it is not necessary to detour over expressions as the compiler can use the provided constants directly.