syntax analyzer structure