Fixed a bug in the zero_or_more parser so it creates a new AST for each match instead of re-using the same one.