PGNParser

Build Status Version Platform Carthage compatible License

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 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 可以解析子依赖项。

Cocoapods

PGNParser 可以通过 CocoaPods 获得。 要安装它,只需将以下行添加到您的 Podfile 中

pod "PGNParser"

Carthage

如果您使用 Carthage 来管理您的依赖项,只需将以下行添加到您的 Cartfile 中

github "tigerpixel/PGNParser"
github "tigerpixel/Currier"
github "tigerpixel/ParserCombinator"

如果您使用 Carthage 构建依赖项,请确保已将 PGNParser.frameworkCurrier.frameworkParserCombinator.framework 添加到目标文件的“Linked Frameworks and Libraries”部分,并将它们包含在 Carthage framework 复制构建阶段中。

Git Submodule

  1. 将 PGNParser 仓库添加为应用程序仓库的 子模块
  2. 从 PGNParser 文件夹中运行 git submodule update --init --recursive
  3. PGNParser.xcodeproj 拖放到应用程序的 Xcode 项目或工作区中。
  4. 在应用程序目标设置的“General”选项卡上,将 PGNParser.framework 添加到“Embedded Binaries”部分。
  5. 如果您的应用程序目标根本不包含 Swift 代码,您还应该将 EMBEDDED_CONTENT_CONTAINS_SWIFT 构建设置设置为“Yes”。

MIT 许可证

PGNParser 在 MIT 许可证下可用。 详细信息可以在 LICENSE 文件中找到。