only use dynamic if grammar is not strong-ll(1)