recursive structs support in parser