gpt4 book ai didi

objective-c - ParseKit 的 Newick 语法

转载 作者:搜寻专家 更新时间:2023-10-30 20:22:06 24 4
gpt4 key购买 nike

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

但是,我不确定如何指定名称和长度节点以说明空字符串或通用字符串和数字。我已经从示例和 ParseKit 站点上以及对 Bulding Parsers for 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;

最佳答案

这里是 ParseKit 的开发者。您最后提出的解决方案基本上是正确的,只需一个小修复:QuotedString 是一个词:

name = Word | QuotedString;
length = ':' Number;

也供将来引用:如果你想要一个“通配符”匹配器(你正在尝试用上面的 * 做什么),你可以使用内置解析器:Any。这将匹配任何 token 。

在 ParseKit 中,* 是修饰符,表示零个或多个。

关于objective-c - ParseKit 的 Newick 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7994385/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com