所以我正在尝试为布尔表达式构建和AST。基本上表达式由布尔操作数组成,由AND,OR,NOT和paranthesis分隔。例如:
(true AND false) AND NOT(NOT true)
false AND NOT TRUE OR true
我在C#工作,我有TreeNode的类,它包含表达式的操作数(LHS,RHS)和运算符,我还有树的叶子类,它们保存了布尔值。
我不确定如何表示是一元NOT运算符...我应该使用TreeNode类并仅使用分支吗?我应该创建一个“链接”类,通过一元运算符边连接两个表达式吗?
答案 0 :(得分:2)
我看到三种可能性: