add non null attribute macro, invoke block macro, $(...) macro , encode&decode macro