Създавам граматика за анализиране на Newick дървета с помощта на ParseKit за проект, върху който работя, и стигнах дотук. Базира се на граматиката тук: http://en.wikipedia.org/wiki/Newick_format. Бих искал да използвам граматика за това, а не съществуващия тромав рекурсивен код, с който работя сега.
Не съм сигурен обаче как да посоча възлите на името и дължината, за да отчитам празни низове или обобщени низове и числа. Стигнах толкова далеч от примерите и от сайта на ParseKit, както и от малко преглеждане на книгата Bulding Parsers за Java, но пропуснах нещо. Може ли някой да ме насочи в правилната посока, моля?
Текуща граматика:
@start = tree+;
tree = subtree ';' | branch ';';
subtree = leaf | internal;
leaf = name;
internal = '(' branchset ')' name;
branchset = branch | branchset ',' branch;
branch = subtree length;
name = *;
length = * | ':' *
Благодаря!
--Възможен отговор:
Може би тези възли с име и дължина ще работят. Може ли някой да потвърди?
name = Word | Quoted String;
length = ':' Number;