Как сопоставить все, от литерала до конца строки в ParseKit? - PullRequest
2 голосов
/ 19 августа 2011

Я пытаюсь разработать синтаксический анализатор UCI в Objective-C, используя ParseKit, но мне нужен способ сопоставить все, начиная от литерала и заканчивая концом строки (возможно, за вычетом пробела).

Например, строка, которую я хочу проанализировать:

@"  id name Protector 1.4.0 Linux   \n"

Моя грамматика выглядит так:

@start = sentence+;
sentence = 'id' 'name' name;
name = Any+;

и

- (void)didMatchName:(PKAssembly *)a
{
  NSLog(@"%@", a);
}

очевидно печатает:

[id, name, Protector, 1.4, .0]id/name/Protector/1.4/.0^Linux
[id, name, Protector]id/name/Protector^1.4/.0/Linux
[id, name, Protector, 1.4, .0, Linux]id/name/Protector/1.4/.0/Linux^
[id, name, Protector, 1.4]id/name/Protector/1.4^.0/Linux

Как я могу построить грамматику, которая маркирует эту строку таким образом?

[id, name, Protector 1.4.0 Linux]id/name/Protector 1.4.0 Linux^

1 Ответ

1 голос
/ 21 августа 2011

Разработчик ParseKit здесь.Я думаю, что если вы вместо этого реализуете метод

- (void)didMatchSentence:(PKAssembly *)a
{
  NSLog(@"%@", a);
}

, вы получите сборку с желаемыми результатами.

...