Ho una grammatica JavaScript ANTLR (presa da Internet), che sembra supportare tutto tranne i regex letterali.Analisi su JavaScript regex con ANTLR
Il problema con una regex letterale è che si hanno due regole, essenzialmente:.
multiplicativeExpression
: unaryExpression (LT!* ('*' | '/' | '%')^ LT!* unaryExpression)*
e
regexLiteral
: '/' RegexLiteralChar* '/'
dove la regola RegexLiteralChar utilizza diverse regole lexer di un'espressione normale (ad esempio, un la doppia citazione non lo termina).
Ciò significa che ho bisogno, in qualche modo, di modificare una sorta di stato lexer dal mio parser. Come posso fare questo? È possibile?
comunicazione tra parser e le regole lessiche non sono possibili. Forse date un'occhiata a questa grammatica, che sembra gestire regex-letterali: http://research.xebic.com/es3/ (controllate il file ZIP). –