adding union parsing and compilation