Je travaille sur un analyseur JavaCC qui devrait analyser BBcodes.Pourquoi mon analyseur JavaCC n'analyse-t-il pas les jetons de moins de 2 caractères?
code source Mon javacc: patebin.com (Junit test: here)
Le code source fonctionne genre au large, mais il ne veut pas accepter des jetons avec un seul caractère, seules les chaînes de caractères multi sont reconnus.
Il ne parser cette chaîne:
"test[b]bold[/b]nothing[b]bold[/b]after"
Mais pas:
"t[b]bold[/b]nothing[b]bold[/b]after"
Je suis un peu perdu ici, des conseils bienvenus.
Bien que ce ne sera probablement pas plus résoudre votre problème, je remarque dans votre grammaire que vous avez 'Text' à' ( | | | ) * '. Est-ce que ce ne devrait pas être '( | | | ) +', car l'absence de texte n'est pas du texte (à moins que cela ne soit prévu)? –
Paul
@Paul, vous avez raison. Je l'ai changé en '+' car j'avais initialement '+' au lieu de '*', c'était juste un mouvement désespéré pour voir si ça changeait de comportement. BTW, il n'a en effet pas aidé. – Kdeveloper
Je ne suis pas familier avec la syntaxe JavaCC mais en regardant la partie 'content()', est-ce que le 'LOOKAHEAD (2)' précédant le 'text()' a une signification? Je suppose que ce devrait être "LOOKAHEAD (1)" ou pas là. –