如何编写布尔运算的C++代码

要求实现布尔运算的
吸收率 输入a+a·b 输出a
幂等律 输入a+a 输出a
分配律 输入a·(b+c) 输出ab+ac
输入(a+b)·c 输出ac+bc

最终效果能够实现:
输入: (a+b)·c+a·(c+d)+d
输出:ac+bc+d

输入: (a+b)·(c+d)+c+ab
输出: ab+ad+c+bd

这个需要词法分析,然后得到析取范式合取范式再化简。