這是一個既針對parboiled解析器框架又針對BNF/PEG的問題。EBNF/parboiled:如何將regexp翻譯成PEG?
比方說,我有相當簡單的正則表達式
^\\s*([A-Za-z_][A-Za-z_0-9]*)\\s*=\\s*(\\S+)\\s*$
代表的
<line> ::= <ws>? <identifier> <ws>? '=' <nonwhitespace> <ws>?
<ws> ::= (' ' | '\t' | {other whitespace characters})+
<identifier> ::= <identifier-head> <identifier-tail>
<identifier-head> ::= <letter> | '_'
<identifier-tail> ::= (<letter> | <digit> | '_')*
<letter> ::= ('A'..'Z') | ('a'..'z')
<digit> ::= '0'..'9'
<nonwhitespace> ::= ___________
你如何定義非空白(即沒有空格的一個或多個字符)的僞EBNF在EBNF?
對於那些熟悉Java快煮庫的人,你如何實現一個定義非空白的規則?
等待,在哪裏重複量詞?據我可以閱讀的語法只能有一個字母等 – fge
請參閱'標識符尾巴' –
呃,好吧,我試圖讀它作爲一個EBNF文法,其中'*'會在paren之前。 。 – fge