ast build rules