We accidently define two identical rules for user-defined-string-literal
(one left recursive and the other one is right recursive), it explodes
states when parsing a long long "" "" "" string literal.
TEST on a huge file which contains ~2.6w "" string literal:
before this patch: more than minutes
after this patch: < 1s
I also wrote this as right recursive, it significantly reduces the states in the GSS (35% saving!)
before:
after: