_for:
    FOR nesting
    {
        symtab_push();
    }
;

_expr_list:
    _expr_list ',' exprCode
    {
        svCatenate(&$1, &$3);
        $$ = SVmove(&$1);
    }
|
    exprCode
;

_opt_init_expression:
    _expr_list
|
    typedVarlist
|
    zeroSemVal
;

_opt_cond_expression:
    errExpression
|
    {
        $$ = SVint(1);
    }
;

_opt_inc_expression:
    _expr_list
|
    zeroSemVal
;

forStmnt:   // $3: init, $5: cond, $7 inc, $10 stmnt
    _for openParen
        _opt_init_expression semicol
            _opt_cond_expression semicol
                _opt_inc_expression closeParen
        breakOK
        statement
        popDead
    {
        $$ = pmv_for(&$3, &$5, &$7, &$10);
    }
;
