我只是玩ANTLR,並決定嘗試解析JavaScript。但是我在處理可選的'''時撞牆了;'在它裏面,語句結尾用換行符標記。它能以一種簡單的方式完成嗎?ANTLR,可選';'在JavaScript中
只是一個簡單的語法例子不起作用
grammar optional_newline;
def : statements ;
statements : statement (statement)* ;
statement : expression (';' | '\n') ;
expression : ID | INT | 'var' ID '=' INT ;
ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')* ;
INT : '0'..'9'+ ;
WS : (' ' | '\t' | '\r' | '\n') {$channel=HIDDEN;} ;
,我希望能夠解析的(這可以通過JavaScript的解析器解析)
var i =
10
10;
PS:我不我不想將WS
放在解析器規則中,如果詞法分析器剛剛擺脫那些,我會更加高興。
我想你已經看了成ECMA腳本語法張貼在ANLR-wiki上:http://www.antlr.org/grammar/list? – 2010-03-21 19:05:57
@Bart,是的,但他們在每個規則中都特別允許空格。我不喜歡這種方式,儘管我懷疑這是唯一可能的方式。但是我希望我錯了,而且有人知道如何解決這個問題,而不會弄亂語法。 – vava 2010-03-22 02:06:01
我以爲你有,但想確保。我也會考慮它,雖然我懷疑它沒有辦法... – 2010-03-22 07:11:48