我使用JavaCC創建了一個語法,並且遇到了一個小問題。我試圖允許ASCII擴展集中的任何有效字符被結果編譯器識別。使用JAVACC識別擴展字符
< CHARACTER:
( (~["'"," ","\\","\n","\r"])
| ("\\"
(["n","t","b","r","f","\\","'","\""]
| ["0"-"7"] (["0"-"7"])?
| ["0"-"3"] ["0"-"7"] ["0"-"7"]
)
)
)
>
如果我正確理解這一點,應該在八進制表示選配:看同JavaCC的例子我設置以下令牌識別我的人物(主要地顯示了JavaCC的格拉默本身的例子)後所有ASCII字符,從0-377(涵蓋擴展ASCII集中的所有256個字符)。這對所有鍵盤字符(a-z,0-9,?,。/ etc)以及大多數特殊字符(©,¬,®)均按預期執行。然而,無論何時我試圖解析'商標'符號(™),我的解析器都會持續拋出文件結束異常,表示它無法識別該符號。有沒有一些明顯的方法可以提高我對角色的定義,以便讓商標符號被接受?