add macro_dsl api