parse compile