2011-05-23 77 views
0

我想使用ANTLR實現java的開關櫃功能。Java語言的開關語法功能使用ANTLR

以下是我定義的語法:

switchFunction 
: "switch"^ LPAREN ! expression RPAREN ! LCURLY ! (caseFuntion)* RCURLY ! 
; 

caseFunction 
: ("case"^ expression | "default") COLON! 
; 

但是,當我給下面的示例語言,我得到錯誤說RCURLY預期,但發現打印

switch(fruit) 
{ 
    case 'Apple': print "apple"; 
} 

誰能幫我開關盒的語法

謝謝。

+0

對不起,沒有提供更多的細節。我更新了我上面收到的示例和錯誤。是的,我正在使用ANTLR V2版本。 – Learning 2011-05-24 06:24:11

回答

1

您已經忘記定義COLON之後發生了什麼。

("case"^ expression | "default") COLON! 

火柴

case 'Apple': 

,但你有沒有爲

print "apple"; 

你需要這樣的事(我不知道ANTLR 2好,不要把它從字面上! ):

("case"^ expression | "default") COLON! statement