Разработчик ParseKit здесь.Ответ Кармине выше превосходен, и вы должны принять его совет.Одна небольшая дополнительная заметка:
Если вы хотите, чтобы ваш делегат Parser мог легко заметить, когда «дом» сопоставляется с любым другим случайным словом, я бы изменил последнюю строку вашей грамматики выше на:
object = house | other;
house = 'house';
other = Word;
Затем вы должны реализовать два следующих метода обратного вызова в вашем делегате Parser:
- (void)parser:(PKParser *)p didMatchHouse:(PKAssembly *)a;
- (void)parser:(PKParser *)p didMatchOther:(PKAssembly *)a;
Если вы хотите, чтобы other
соответствовал любому токену ввсе (не только слова, но также цифры, символы, строки в кавычках и т. д.), вы можете использовать встроенный тип Any
.В этом случае вы бы изменили последнюю строку моего примера выше на:
other = Any;