[英]Newick grammar for ParseKit
我正在使用ParseKit為我正在研究的項目構建一個解析Newick樹的語法,而且我已經做到了這一點。 它基於這里的語法: http : //en.wikipedia.org/wiki/Newick_format 。 我想用這個語法而不是我現在工作的現有笨重的遞歸代碼。
但是,我不確定如何指定名稱和長度節點來解釋空字符串或通用字符串和數字。 我已經從示例和ParseKit網站上得到了這么多,以及對於Java書籍的Bulding Parsers的一些略讀,但是錯過了一些東西。 有人能指出我正確的方向嗎?
目前的語法:
@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;
這里是ParseKit的開發者。 最后提出的解決方案基本上是正確的,只需要一個小修復: QuotedString
是一個單詞:
name = Word | QuotedString;
length = ':' Number;
同樣供將來參考:如果你想要一個'通配符'匹配器(你正在嘗試用*
上面做什么),你可以使用內置解析器: Any
。 這將匹配任何令牌。
在ParseKit中, *
是一個修飾符,意思是零或更多。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.