从tex实现逻辑

2024-04-26 05:13:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个程序可以接收文本形式的输入,例如:

IF (A.4.1-1/1 OR A.4.1-1/2) AND A.4.4-1/9 AND (A.4.4-1/12 OR A.4.4-1/13 OR A.4.4-1/14 OR A.4.4-1/15) THEN R ELSE N/A

其中A.4.1-1/1等是值为TRUE or FALSE的变量。到目前为止,我已经将文本解析为上述示例的逻辑部分,我有一个如下所示的列表:

^{pr2}$

我只是想知道是否可以实际执行这个列表上的逻辑,比如将所有这些组合到所需的python语句中并提供结果。我不确定是否要开始我在一些网站上读到我应该使用自顶向下的解析器??在


Tags: orand文本程序falsetrue示例列表
2条回答

我不是Python爱好者,但我在Java中使用JavaCC做过类似的事情。您要做的是为您的语言编写一个grammar(采用类似EBNF的格式,但这取决于解析器生成器),然后使用JavaCC这样的程序为它生成一个解析器,这将给您一个更方便操作的parse tree。在

您应该能够找到许多有用的示例,因为您输入的语法看起来并不太异常(布尔运算符、圆括号表达式和if-then-else语句可能是其中一些最常见的用例)。在

您可能会发现其中一个Python库listed on this page很有用。在

这听起来像是Pyparsing的任务:

The pyparsing module is an alternative approach to creating and executing simple grammars, vs. the traditional lex/yacc approach, or the use of regular expressions. The pyparsing module provides a library of classes that client code uses to construct the grammar directly in Python code.

您将能够快速定义语法(而不是玩正则表达式)和特定的解析操作。我已经用不到300行代码使用Pyparsing构建了非常丰富的迷你语言。在

相关问题 更多 >

    热门问题