rename parse_state to reflect that it modifies the machines in place. don't bother building a list that no one looks at.