Did some refactoring in parser; used separated_list instead of recursively doing the list construction.