// Error a propósito: falta un caso en el switch. -Wall lo avisa.
#include <stdio.h>

#include "logic.h"

static int count_inputs(const Logic *e) {
    switch (e->kind) {
    case LOGIC_CONSTANT:
        return 0;
    case LOGIC_INPUT:
        return 1;
    case LOGIC_NOT:
        return count_inputs(e->as.child);
    case LOGIC_AND:
        return count_inputs(e->as.pair.left) + count_inputs(e->as.pair.right);
    }
    return 0;
}

int main(void) {
    Logic *formula = logic_or(logic_input('a'), logic_input('b'));
    if (formula == NULL) {
        return 1;
    }
    printf("entradas: %d\n", count_inputs(formula));
    logic_free(formula);
    return 0;
}
