python中的pluscal ast和builder
pluscal的Python项目详细描述
pluscal
PlusCalast和python中的builder
这是什么?
PlusCal
是编译成TLA+
规范的算法语言。此库定义
python类型构成PlusCal
p语法的抽象语法树(ast),以及
用于流畅构建算法的builderapi。实现严重依赖于python
dataclasses
和类型提示;可以使用类型检查器(例如mypy
)来验证语法。
预计这个库将被人类和程序用于语法构造。 更正规格并通过TLC模型检查器进行检查。
用法
从PIP安装:
pip install pluscal
创建算法:
>>>frompluscal.apiimportAlgorithm,Print,Variable>>>algorithm=Algorithm("hello_world",).declare(Variable("s").in_set("Hello","World!"),).do(Print("s",label="A"),)>>>print(algorithm)--algorithmhello_worldvariables \in{"Hello","World!"};beginA:prints;endalgorithm
限制
此库不完整。一些已知的限制包括:
由
Expr
、Field
、Label
、Name
和Variable
类型使用的低级TLA+
语法。 既不建模也不完全验证。此时,这些类型基本上是字符串。验证逻辑并不表示
PlusCal
的全部细微差别,特别是当它与 标签放置。请参阅pluscal手册的
3.7
部分。一些假货行动尚未实施。
请参阅pluscal手册的
4.6
部分。