private void parseTruthTable(Gate cur_gate) throws ParseError {
        int out_bit;

        // expecting 2^ninput output bits (0/1)
        for (int i = 0; i < (1 << ninputs); i++) {
            out_bit = parseToken(false);

            if ((out_bit != 0) && (out_bit != 1)) {
                throw new ParseError("ParseOutputs: bad output bit at " +
                    line_num);
            }

            // Set entry in truth-table to true
            if (out_bit == 1) {
                cur_gate.setOutput(i, true);
                logger.info("ParseGate: output  (" + i + ") is true");
            }
            // else -- setting to false is not needed, since all 
            // output values are initialized to false when created.
            else {
                logger.info("ParseGate: output  (" + i + ") is false");
            }
        }
    }