2

http://pyparsing.wikispaces.com/file/view/ebnf.pyを使用して、ebnf 定義を変換しています。

ebnf def は次のようになります。

TEST = A, SPACE, A;

A = "AA" | "BB";
SPACE = " ";

ファイルをロードして、次のような文字列を解析しようとすると:

e = ebnf.parse(ebnf_file)
e['TEST'].leaveWhitespace().parseString('AA BB') # same without leaveWhitespace()

私は得る:

ParseException: Expected " " (at char 3), (line:1, col:4)

アイデア/解決策はありますか?

4

1 に答える 1

1

leaveWhitespace()、元の空白を含むタグに適用する必要があるため、次のことを試してください。

e = ebnf.parse(ebnf_file)
e['SPACE'] = e['SPACE'].leaveWhitespace()
e['TEST'].parseString('AA BB')
于 2011-09-19T21:05:51.723 に答える