一种基本逻辑语言的解释器,受二元布尔代数的启发。
lla的Python项目详细描述
拉
基本逻辑语言的解释器,受二元布尔代数启发。在
演示
下面是一个快速演示,基于提示其创建的示例:
>>> from lla.interpreter import Interpreter
>>> variables = {
... 'ssh': True,
... 'website_up': True,
... 'search_up': False,
... 'elasticsearch.http': False,
... 'elasticsearch.process': True,
... }
>>> interpreter = Interpreter(variables)
>>> interpreter.run('ssh & website_up')
True
>>> interpreter.run('ssh & website_up & search_up')
False
>>> interpreter.run('!search_up & !elasticsearch.http & elasticsearch.process')
True
>>> interpreter.run('undefined_variable')
Traceback (most recent call last):
...
lla.interpreter.UndefinedVariableException: Undefined variable: undefined_variable
通过将variables
dict替换为实现__getitem__
的类,
它变得非常灵活。在
概述
要点如下:
- 所有变量都是布尔函数。在
- 你不能在语言本身中定义变量,但是它提供了一个
dict
或实现__getitem__
的任何对象。在 - 仅完全支持可解析语句。 a、 任何其他操作都会引发Python异常。在
- 您向解释器提供一个语句,它将被简化为一个布尔值,然后返回该值。在
依赖关系
理论上,您只需要python3.6+。在
贡献
欢迎在GitHub的https://github.com/duckinator/lla上提交错误报告和请求。在
lla的代码在MIT License下可用。在
- 项目
标签: