pyparsing с ebnf и пробелами - PullRequest
       17

pyparsing с ebnf и пробелами

2 голосов
/ 20 сентября 2011

Я использую 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)

У кого-нибудь есть идеи / решения?

1 Ответ

1 голос
/ 20 сентября 2011

leaveWhitespace() должен быть применен к оригинальному тегу, содержащему пробелы, поэтому попробуйте следующее:

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