11from typing import Dict , Callable
2- from ..domain .formula import Formula , Conjunction , Disjunction , Implication , Biconditional
2+ from ..domain .formula import Formula , Conjunction , Disjunction , Implication , Biconditional , Xor
33from .token_stream import TokenStream
44from .token import TokenType
55from .expression_builder import ExpressionBuilder
@@ -9,15 +9,17 @@ class BinaryOperatorBuilder(ExpressionBuilder):
99 _PRECEDENCE : Dict [TokenType , int ] = {
1010 TokenType .BICONDITIONAL : 1 ,
1111 TokenType .IMPLICATION : 2 ,
12- TokenType .DISJUNCTION : 3 ,
13- TokenType .CONJUNCTION : 4 ,
12+ TokenType .XOR : 3 ,
13+ TokenType .DISJUNCTION : 4 ,
14+ TokenType .CONJUNCTION : 5 ,
1415 }
1516
1617 _OPERATOR_CONSTRUCTORS : Dict [TokenType , Callable [[Formula , Formula ], Formula ]] = {
1718 TokenType .CONJUNCTION : Conjunction ,
1819 TokenType .DISJUNCTION : Disjunction ,
1920 TokenType .IMPLICATION : Implication ,
2021 TokenType .BICONDITIONAL : Biconditional ,
22+ TokenType .XOR : Xor ,
2123 }
2224
2325 _RIGHT_ASSOCIATIVE : set = {TokenType .IMPLICATION }
0 commit comments