Construct machine only once; not for every parse