我有一个链接结构来解决逻辑门问题...但是,我对链接结构的功能有疑问,以及如何使用它们的值
所以,这是我的代码:
typedef enum { NEG, AND, OR, NAND, NOR, XOR, XNOR }Gates;
struct AstLogic
{
bool input1;
bool input2;
bool result;
Gates gate;
struct AstLogic *nextGate;
};
并且,测试功能是:
struct AstLogic ast1, ast2, ast3;
//
// 1-|ast1|
// 1-|____|+-------+
// |
// +|ast3|
// +|____|+----+ OUTPUT
// |
// 1-|ast2|+-------+
// 0-|____|
//
void createInputsTest()
{
ast1.gate = NOR;
ast1.input1 = true;
ast1.input2 = true;
ast3.result = ~(ast1.input1|ast1.input2);
ast2.gate = NOR;
ast2.input1 = true;
ast2.input2 = false;
ast2.result = ~(ast2.input1|ast2.input2);
ast1.nextGate = &ast2; // make the link
ast3.gate = NOR;
ast3.input1 = ast1.result;
ast3.input2 = ast2.result;
ast3.result = ~(ast3.input1|ast3.input2);
if(ast3.result == true)
printf("true");
else
printf("false");
}
我只是想知道,如果有一个很好的方法来自动获取“输出”结果,使用那个 AST 逻辑......例如,我输入一个带有逻辑的文件,我的程序在那个文件中进行解析,然后生成那个 ast,生成那个 ast 的最佳方法是什么?
问题是野兽,但不知道如何解决,所以我来到 StackOverFlow 来解决我的疑问,因为我不知道如何解决这些我的疑问......