PGNParser 旨在将描述国际象棋和跳棋走法的 可移植游戏表示法 (PGN) 文件解析成简单的 Swift 结构。
目前,只实现了跳棋游戏字符串的解析。 欢迎提交 pull request 来添加更多功能。
解析可以通过简单地在跳棋走法结构上调用单个 'parse' 方法来完成。
将会返回一个 result 类型,其中包含生成的走法数组或任何失败的详细信息。
失败包含一个枚举,描述了失败的原因,通常还包含导致失败的 token。
以下 PGN 字符串将会解析成一个 DraughtsMove 结构,其中包含一个黑方走法和一个白方走法。
let sinlgeMoveTwoPlayers = "1. 9-14 23-18"
switch DraughtsMove.parse(fromPortableGameNotation: sinlgeMoveTwoPlayers) {
case .success(let moves, let tail):
// moves - a list of the above moves and any comments parsed into DraughtsMove structs.
case .failure(let reason):
}
此项目有 2 个外部依赖项。 均由 Tigerpixel (同一作者) 提供。
Currier - 一个用于柯里化函数和初始化器的助手库,本项目会用到。
ParserCombinator - 一个通用的解析器组合器, PGNParser 基于它构建。
Swift Package Manager 是管理 Swift 代码分发的官方工具。 目前适用于所有 Apple 平台。 也可以与 Linux 一起使用,但本项目目前并不完全支持 Linux。
如果您使用它来管理依赖项,只需将 PGNParser 添加到 Package.swift 文件的 dependencies 值中。
dependencies: [
.package(url: "https://github.com/Tigerpixel/PGNParser.git", from: "0.4.0"),
]
Swift Package Manager 可以解析子依赖项。
PGNParser 可以通过 CocoaPods 获得。 要安装它,只需将以下行添加到您的 Podfile 中
pod "PGNParser"
如果您使用 Carthage 来管理您的依赖项,只需将以下行添加到您的 Cartfile 中
github "tigerpixel/PGNParser"
github "tigerpixel/Currier"
github "tigerpixel/ParserCombinator"
如果您使用 Carthage 构建依赖项,请确保已将 PGNParser.framework
、Currier.framework
和 ParserCombinator.framework
添加到目标文件的“Linked Frameworks and Libraries”部分,并将它们包含在 Carthage framework 复制构建阶段中。
git submodule update --init --recursive
。PGNParser.xcodeproj
拖放到应用程序的 Xcode 项目或工作区中。PGNParser.framework
添加到“Embedded Binaries”部分。EMBEDDED_CONTENT_CONTAINS_SWIFT
构建设置设置为“Yes”。PGNParser 在 MIT 许可证下可用。 详细信息可以在 LICENSE 文件中找到。