首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ParseKit的纽尼克文法

ParseKit的纽尼克文法
EN

Stack Overflow用户
提问于 2011-11-03 19:51:48
回答 1查看 318关注 0票数 3

我正在为我正在从事的一个项目构建一个使用ParseKit解析Newick树的语法,并且我已经做到了这一点。它基于这里的语法:http://en.wikipedia.org/wiki/Newick_format。我想使用一种语法来实现这一点,而不是使用现有的笨重的递归代码。

但是,我不确定如何指定name和length节点来说明空字符串或广义字符串和数字。我已经在示例和ParseKit站点上学到了这一点,还略读了一些用于Java的构建解析器一书,但是遗漏了一些东西。请谁给我指个方向好吗?

当前语法:

代码语言:javascript
复制
@start = tree+;
tree = subtree ';' | branch ';';
subtree = leaf | internal;
leaf = name;
internal = '(' branchset ')' name;
branchset = branch | branchset ',' branch;
branch = subtree length;
name = *;
length = * | ':' *

谢谢!

--可能的答案:

也许这些name和length节点可以工作。有人能证实吗?

代码语言:javascript
复制
name = Word | Quoted String;
length = ':' Number;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-04 00:01:51

这里是ParseKit的开发者。你最后提出的解决方案基本上是正确的,只有一个小问题:QuotedString是一个词:

代码语言:javascript
复制
name = Word | QuotedString;
length = ':' Number;

另外,供将来参考:如果你想要一个‘通配符’匹配器(你正尝试用上面的*做的事情),你可以使用内置的解析器:Any。这将匹配任何令牌。

在ParseKit中,*是修饰语,意思是零或更多。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7994385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档