Changeset 58bbda in git for Singular/ipassign.cc


Ignore:
Timestamp:
Jun 17, 1997, 11:44:32 AM (27 years ago)
Author:
Hans Schönemann <hannes@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
623e7ca4e8b2344c62d7c256c94ecdb52b6d1cdb
Parents:
388fe1e36784de6985ec8bb9daeb7bd4f2c0c751
Message:
* hannes/siebert: bugfixes for qring, assignment for proc
  (grammar.y ideals.cc ipassign.cc ipid.cc polys.cc)


git-svn-id: file:///usr/local/Singular/svn/trunk@389 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/ipassign.cc

    r388fe1e r58bbda  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
     4/* $Id: ipassign.cc,v 1.13 1997-06-17 09:44:25 Singular Exp $ */
     5
    46/*
    57* ABSTRACT: interpreter:
     
    107109{
    108110#ifdef HAVE_TCL
    109   if (!tclmode) 
     111  if (!tclmode)
    110112#endif
    111113    pShortOut=(int)a->Data();
     
    271273          return TRUE;
    272274        }
    273       } 
     275      }
    274276    }
    275277    else
     
    467469,{jiA_STRING,   STRING_CMD,     STRING_CMD }
    468470,{jiA_STRING,   PROC_CMD,       STRING_CMD }
     471,{jiA_STRING,   PROC_CMD,       PROC_CMD }
    469472,{jiA_POLY,     VECTOR_CMD,     VECTOR_CMD }
    470473,{jiA_INTVEC,   INTVEC_CMD,     INTVEC_CMD }
     
    490493#ifdef HAVE_RTIMER
    491494,{jjRTIMER,     VRTIMER,        INT_CMD }
    492 #endif 
     495#endif
    493496,{jjMAXDEG,     VMAXDEG,        INT_CMD }
    494497,{jjMAXMULT,    VMAXMULT,       INT_CMD }
     
    501504/*=================== operations ============================*/
    502505/*2
    503 * assign a = b 
     506* assign a = b
    504507*/
    505508static BOOLEAN jiAssign_1(leftv l, leftv r)
     
    511514    return TRUE;
    512515  }
    513  
     516
    514517  int lt=l->Typ();
    515518  if((lt==0)&&(l->name!=NULL))
     
    523526    return TRUE;
    524527  }
    525  
     528
    526529  int i=0;
    527530  BOOLEAN nok=FALSE;
     
    549552    if ((l->data==r->data)&&(l->e==NULL)&&(r->e==NULL))
    550553      return FALSE;
    551   }   
     554  }
     555  leftv ld=l;
     556  if ((l->rtyp==IDHDL)&&(lt!=QRING_CMD)&&(lt!=RING_CMD))
     557    ld=(leftv)l->data;
    552558  while (((dAssign[i].res!=lt)
    553559      || (dAssign[i].arg!=rt))
     
    556562  {
    557563    BOOLEAN b;
    558     leftv ld=l;
    559     if ((l->rtyp==IDHDL)&&(lt!=QRING_CMD)&&(lt!=RING_CMD))
    560       ld=(leftv)l->data;
    561564    b=dAssign[i].p(ld,r,l->e);
     565    if(l!=ld) /* i.e. l is IDHDL, l->data is ld */
     566    {
     567      l->flag=ld->flag;
     568      l->attribute=ld->attribute;
     569    }
    562570    return b;
    563571  }
     
    578586        if(!failed)
    579587        {
    580           if((l->rtyp==IDHDL)&&(lt!=QRING_CMD)&&(lt!=RING_CMD))
    581             failed=dAssign[i].p((leftv)l->data,rn,l->e);
    582           else
    583             failed= dAssign[i].p(l,rn,l->e);
    584         }   
     588          failed= dAssign[i].p(ld,rn,l->e);
     589        }
    585590        // everything done, clean up temp. variables
    586591        rn->CleanUp();
     
    593598        else
    594599        {
     600          if(l!=ld) /* i.e. l is IDHDL, l->data is ld */
     601          {
     602            l->flag=ld->flag;
     603            l->attribute=ld->attribute;
     604          }
    595605          // everything ok, return
    596606          return FALSE;
     
    922932      nok=jiAssign_1(l,&t);
    923933      l->next=h;
    924       if (nok) 
     934      if (nok)
    925935      {
    926936        idDelete((ideal *)&m);
     
    959969      nok=TRUE;
    960970      break;
    961     } 
    962   }
    963 ende: 
     971    }
     972  }
     973ende:
    964974  or->CleanUp();
    965975  ol->CleanUp();
     
    9931003    l->next=NULL;
    9941004    nok=jiAssign_1(l,&t);
    995     if (nok) 
     1005    if (nok)
    9961006    {
    9971007      break;
     
    10161026    atKillAll((idhdl)l);
    10171027    l->attribute=NULL;
    1018   } 
     1028  }
    10191029  l->flag=0;
    10201030  lists li;
    1021   if (l->rtyp==IDHDL) 
     1031  if (l->rtyp==IDHDL)
    10221032  {
    10231033    li=IDLIST((idhdl)l->data);
    1024   } 
     1034  }
    10251035  else
    10261036  {
     
    10541064    b=iiAssign(ld,r);
    10551065    l->e->next=ld->e;
    1056   } 
     1066  }
    10571067  return b;
    10581068}
     
    11011111  {
    11021112    IDFLAG((idhdl)l->data)=0;
    1103   } 
     1113  }
    11041114  l->flag=0;
    11051115  if (ll==1)
     
    11081118    if((l->e!=NULL)
    11091119    && (((l->rtyp==IDHDL) && (IDTYP((idhdl)l->data)==LIST_CMD))
    1110       || (l->rtyp==LIST_CMD)))   
     1120      || (l->rtyp==LIST_CMD)))
    11111121    {
    11121122       if(r->next!=NULL)
    11131123         b=jiA_L_LIST(l,r);
    1114        else 
     1124       else
    11151125         b=jiAssign_list(l,r);
    11161126       if((l->rtyp==IDHDL) && (l->data!=NULL))
     
    11191129         l->attribute=IDATTR((idhdl)l->data);
    11201130         l->flag=IDFLAG((idhdl)l->data);
    1121        } 
     1131       }
    11221132       r->CleanUp();
    11231133       Subexpr h;
     
    11551165           l->flag=IDFLAG((idhdl)l->data);
    11561166           l->CleanUp();
    1157          } 
     1167         }
    11581168         r->CleanUp();
    11591169         return b;
    1160       } 
     1170      }
    11611171      if ((lt!=LIST_CMD)
    11621172      &&((rt==MATRIX_CMD)
     
    11641174        ||(rt==INTVEC_CMD)
    11651175        ||(rt==MODUL_CMD)))
    1166       {   
     1176      {
    11671177         b=jiAssign_1(l,r);
    11681178         if((l->rtyp==IDHDL)&&(l->data!=NULL))
     
    11711181           l->attribute=IDATTR((idhdl)l->data);
    11721182           l->flag=IDFLAG((idhdl)l->data);
    1173          } 
     1183         }
    11741184         r->CleanUp();
    11751185         Subexpr h;
Note: See TracChangeset for help on using the changeset viewer.