0
我正在爲一組CFG編寫解析器。 (注:RHS只能是大寫字母)Javacc解析'<UPPER_CASE><ARROW>
/*忽略聲明之類的東西,這裏的*/
void
start():
{
}
{
(
<UPPER_CHAR>
<ARROW>
<STRING>
(<PIPE> <STRING>)*
)*
}
TOKEN:
{
<ARROW: "=>" >
|
<PIPE: "|">
|
<UPPER_CHAR: (["A"-"Z"])>
}
TOKEN: {<STRING: (<LETTER> | <DIGIT> | <SYMBOL>)+ > }
這顯然錯過了一些邊緣情況的代碼的主要部分,其中一些包括:
A => A | a | D E => e
所以我做了什麼錯?