論理ゲートの問題を解決するためにリンクされた構造体があります...しかし、リンクされた構造体の機能と、それらの値をどのように使用できるかについて疑問があります
だから、それは私のコードです:
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ロジックを使用して、「出力」結果を自動取得する良い方法があるかどうか知りたいだけです...たとえば、ロジックを含む1つのファイルを入力すると、プログラムはそのファイルで解析を行い、その ast を生成する方法 その ast を生成するのに最適な方法は?
質問は獣ですが、解決方法がわからないので、疑問を解決する方法がわからないため、StackOverFlowに来て疑問を解決しました...