При использовании библиотеки python rply я получаю неожиданную ошибку токена при разборе более одной строки. Как я могу это исправить?

Можете ли вы использовать регулярное выражение вместо разделения?

var input = "AB-PQ-EF=CD-IJ=XY-JK";
var pattern = new Regex(@"(?<![A-Z])(?=([A-Z]+[=-][A-Z]+))");
var output = pattern.Matches(input).Cast<Match>().Select(m => m.Groups[1].Value).ToArray();
0
задан George Walker 19 January 2019 в 09:21
поделиться

2 ответа

В качестве ошибки говорится следующее:

raise ValueError("Ran into a %s where it wasn't expected" % token.gettokentype())

Измените его, как показано ниже, и проверьте:

raise ValueError('Ran into a %s where it wasn't expected' % (token.gettokentype()))
0
ответ дан Jim Todd 19 January 2019 в 09:21
поделиться

Ваша грамматика описывает одну команду:

say : SAY OPEN_PAREN expression CLOSE_PAREN SEMI_COLON

Так что это то, что принимает синтаксический анализатор.

Если вы хотите, чтобы ввод состоял из нескольких команд, вам нужно написать грамматику, описывающую этот ввод:

program : 
program : program say
0
ответ дан rici 19 January 2019 в 09:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: