Ich erstelle gerade eine Grammatik mit JavaCC und bin auf ein kleines Problem gestoßen. Ich versuche zu ermöglichen, dass jedes gültige Zeichen innerhalb des erweiterten ASCII-Satzes vom resultierenden Compiler erkannt wird. Nachdem ich mir die gleichen JavaCC-Beispiele angesehen habe (vor allem das Beispiel, das den JavaCC-Grammer selbst zeigt), habe ich das folgende Token eingerichtet, um meine Zeichen zu erkennen:
< CHARACTER:
( (~["'"," ","\\","\n","\r"])
| ("\\"
( ["n","t","b","r","f","\\","'","\""]
| ["0"-"7"] ( ["0"-"7"] )?
| ["0"-"3"] ["0"-"7"] ["0"-"7"]
)
)
)
>
Wenn ich das richtig verstehe, sollte es auf die oktale Darstellung aller ASCII-Zeichen von 0-377 (die alle 256 Zeichen im erweiterten ASCII-Satz abdeckt) abgestimmt sein. Dies funktioniert wie erwartet für alle Tastaturzeichen (a-z, 0-9, ?,./ usw.) und sogar für die meisten Sonderzeichen (© , ¬ ®). Wenn ich jedoch versuche, das Markensymbol (™) zu analysieren, löst mein Parser ständig eine End of File-Ausnahme aus, die anzeigt, dass er das Symbol nicht erkennen kann. Gibt es eine offensichtliche Möglichkeit, meine Definition eines Zeichens zu verbessern, damit das Markensymbol akzeptiert wird?