go/parser cleanup: remove some state by writing more functional code
go/parser cleanup: remove some state by writing more functional code

R=rsc
CC=golang-dev
http://codereview.appspot.com/223071

tav/go,tav/go,tav/go,tav/go,tav/go,tav/go,tav/go