AoE2 AI规则文件(.per)的格式化程序。
aoe2-ai-fmt的Python项目详细描述
帝国时代2人工智能规则形成者
这个项目提供了一个脚本,允许对AoE2.per文件进行基本语法检查和格式化。在
请注意,此工具目前正在进行中。关键的是,它还没有完全兼容为游戏的DE或用户补丁版本构建的.per文件。在
此工具依赖于Python>;=3.6。在
它是在UbuntuforWindows(WSL)上使用Python3.6开发的,但也在Ubuntu20.04上的Python3.8和Windows10上的Python3.8进行了测试。 在任何情况下,该工具在任何提供所需Python版本的环境中都可以正常工作。开发需要Linux环境。在
库的使用
该工具可以从命令行使用,也可以用作python项目中的库。 要用作库,可以通过pip安装。在
pip install aoe2-ai-fmt
然后使用format_per
函数,如下所示。在
看到了吗格式.py另一个用法示例。在
来源使用
依赖关系
构建该工具需要ANTLR v4.8、pipenv和gnumake。在
从源安装
克隆存储库,然后使用pipenv创建python virtualenv并在其中安装必要的依赖项。如果要进行更改,请指定--dev
参数。在
pipenv --python 3 install [--dev]
(请注意,python3.6是必需的,但是由于a limitation in pipenv,Pipfile没有强制执行这一点。)
然后需要使用antlr4构建lexer、解析器和支持文件。如果antlr4
位于$PATH
中,则提供的Makefile可以为您调用此函数。在
make
然后,只需在virtualenv中从命令行运行该工具:
# ./format.py <path/to/src.per> <path/to/output.per>
# If the output path is provided as '-' then the formatted script will instead be printed to STDOUT.
pipenv run ./format.py examples/multistmt.input.per -
输入文件可以使用Windows或Unix风格的行尾。输出文件将始终以Windows行结尾创建,以匹配游戏平台。在
测试
回购协议中提供了一小套示例输入及其所需的精美打印等价物。 Makefile中包含了一个基本的测试配方,可以针对所有输入轻松运行工具,并允许手动检查与所需输出的任何差异。在
make test
存在一个make规则来运行pylint,其中包含的.pylintrc将忽略自动生成的ANTLR4解析器文件。在
make lint
局限性
由于该工具是使用解析器构建的,无效语法将导致格式化程序出错。在
这个工具是根据征服者提供的官方文档中提供的语言细节构建的。 由于本文档不是一个正式的语言规范,因此必须做出一些假设,特别是关于标识符和空白中允许的字符。 这个工具接受的文件可能不会被游戏引擎接受,反之亦然。 值得注意的是,DE和User Patch中可用的更高级的操作和事实目前不受该工具的支持,但对这些操作和事实的支持正在进行中。
请注意,此工具只检查基本语法。 此工具不会检测到不存在的事实或操作、错误数量的参数、未定义的常量以及其他类似错误。在
- 项目
标签: