LIST    *nv = (*parse->left->func)( parse->left, frame );
LIST    *nv = parse_evaluate( parse->left, frame );
compile_foreach(    PARSE   *parse,    FRAME *frame ){    LIST    *nv = (*parse->left->func)( parse->left, frame );    LIST    *l;    SETTINGS *s = 0;                if ( parse->num )        {            s = addsettings( s, 0, parse->string, L0 );            pushsettings( s );        }    /* Call var_set to reset $(parse->string) for each val. */    for( l = nv; l; l = list_next( l ) )    {        LIST *val = list_new( L0, copystr( l->string ) );        var_set( parse->string, val, VAR_SET );        list_free( (*parse->right->func)( parse->right, frame ) );    }        if ( parse->num )            popsettings( s );    list_free( nv );    return L0;}