Вот документ, который я пытаюсь разобрать:
Tha Dhi Thom Num ThaKaThaRiKiTaThaKa
ThaKaThaRiKiTaThaKa = Ta Tha Chap Tha Ki Ta Tha Ka
и я определил грамматику следующим образом:
@start = expr;
expr = singleExpr+ phraseDictionary*;
singleExpr = aksharaGroup;
phraseDictionary = phrase '='! aksharaGroup;
phrase = Word;
aksharaGroup = akshara+ ('/'! noteDuration)?;
akshara = tha | dhi | thom | num | ki | ta | ka | chap | phrase;
noteDuration = Number;
tha = 'Tha';
dhi = 'Dhi';
thom = 'Thom';
num = 'Num';
ki = 'Ki';
ta = 'Ta';
ka = 'Ka';
chap = 'Chap';
Часть, в которой у меня возникают проблемы, - это фразаDictionary - вторая ThaKaThaRiKiTaThaKa анализируется как фраза, akshara и aksharaGroup, как и ожидалось, но затем я получаю исключения, когда я ожидаю, что она будет соответствовать фразеDictionary.
Expected : /
Line : 2
Near : = Ta
Found : =
Expected : Uppercase Word
Line : 2
Near : = Ta
Found : =
Expected : «EOF»
Line : 2
Near : = Ta
Found : =
С бесконечным просмотром вперед ParseKit не должен ли он продолжить и сопоставить грамматику фразыDictionary?
Что мне не хватает?
Спасибо, Шридхар