TODO: build syntax tree