generate.c
static void code_shortcircuit(GenerateContext *c, int op, ParseTreeNode *expr)
{
    NodeListEntry *entry = expr->u.exprList.exprs;
    int end = 0;

    code_rvalue(c, entry->node);
    entry = entry->next;

    do {
        putcbyte(c, op);
        end = putcword(c, end);
        code_rvalue(c, entry->node);
    } while ((entry = entry->next) != NULL);

    fixupbranch(c, end, codeaddr(c));
}
/* code_shortcircuit - generate code for a conjunction or disjunction of boolean expressions */
generate code for a conjunction or disjunction of boolean expressions
generate code for a conjunction or disjunction of boolean expressions
static void code_shortcircuit(GenerateContext *c, int op, ParseTreeNode *expr)
{
    NodeListEntry *entry = expr->u.exprList.exprs;
    int end = 0;
    code_rvalue(c, entry->node);
    entry = entry->next;
    do {
        putcbyte(c, op);
        end = putcword(c, end);
        code_rvalue(c, entry->node);
    } while ((entry = entry->next) != NULL);
    fixupbranch(c, end, codeaddr(c));
}
static void code_shortcircuit ( GenerateContext * c , int op , ParseTreeNode * expr ) { NodeListEntry * entry = expr -> u . exprList . exprs ; int end = 0 ; code_rvalue ( c , entry -> node ) ; entry = entry -> next ; do { putcbyte ( c , op ) ; end = putcword ( c , end ) ; code_rvalue ( c , entry -> node ) ; } while ( ( entry = entry -> next ) != NULL ) ; fixupbranch ( c , end , codeaddr ( c ) ) ; }
code_shortcircuit - generate code for a conjunction or disjunction of boolean expressions
code_shortcircuit - generate code for a conjunction or disjunction of boolean expressions