Changeset 6b5a71 in git


Ignore:
Timestamp:
Dec 10, 2013, 12:37:20 PM (10 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
4996b1238218987656e06c2e9c5713ae68f1a381
Parents:
ffcd1f6fd36e3408dcdc49723af94357e938f0d5
git-author:
Hans Schoenemann <hannes@mathematik.uni-kl.de>2013-12-10 12:37:20+01:00
git-committer:
Hans Schoenemann <hannes@mathematik.uni-kl.de>2013-12-10 14:41:21+01:00
Message:
introduce ASSUME(<level>,<int expr>)

Conflicts:
	Singular/ipshell.h
Location:
Singular
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • Singular/grammar.y

    rffcd1f r6b5a71  
    315315/* control */
    316316%token <i> APPLY
     317%token <i> ASSUME_CMD
    317318%token <i> BREAK_CMD
    318319%token <i> CONTINUE_CMD
     
    777778            #endif
    778779          }
     780        | assume_start expr ',' expr quote_end
     781          {
     782            iiTestAssume(&$2,&$4);
     783            memset(&$$,0,sizeof($$));
     784            $$.rtyp=NONE;
     785          }
    779786        | EVAL  '('
    780787          {
     
    796803
    797804quote_start:    QUOTE  '('
     805          {
     806            #ifdef SIQ
     807            siq++;
     808            #endif
     809          }
     810          ;
     811
     812assume_start:    ASSUME_CMD '('
    798813          {
    799814            #ifdef SIQ
  • Singular/ipshell.cc

    rffcd1f r6b5a71  
    58135813  return TRUE;
    58145814}
     5815
     5816BOOLEAN iiTestAssume(leftv a, leftv b)
     5817{
     5818  // assume a: level
     5819  if ((a->Typ()==INT_CMD)&&((long)a->Data()>=0))
     5820  {
     5821    int lev=(long)a->Data();
     5822    int startlev=0;
     5823    idhdl h=ggetid("assumeLevel");
     5824    if ((h!=NULL)&&(IDTYP(h)==INT_CMD)) startlev=(long)IDINT(h);
     5825    if(lev <=startlev)
     5826    {
     5827      BOOLEAN bo=b->Eval();
     5828      if (bo) { WerrorS("syntax error in ASSUME");return TRUE;}
     5829      if (b->Typ()!=INT_CMD) { WerrorS("ASUMME(<level>,<int expr>)");return TRUE; }
     5830      if (b->Data()==NULL) { WerrorS("ASSUME failed");return TRUE;}
     5831    }
     5832  }
     5833  else
     5834     b->CleanUp();
     5835  a->CleanUp();
     5836  return FALSE;
     5837}
  • Singular/ipshell.h

    rffcd1f r6b5a71  
    247247
    248248
    249 #endif
    250 
     249BOOLEAN iiTestAssume(leftv a, leftv b);
     250#endif
     251
  • Singular/table.h

    rffcd1f r6b5a71  
    798798{  // name-string alias tokval          toktype
    799799  { "$INVALID$",   0, -1,                 0},
     800  { "ASSUME",      0, ASSUME_CMD,         ASSUME_CMD},
    800801  { "LIB",         0, LIB_CMD ,           SYSVAR},
    801802  { "alias",       0, ALIAS_CMD ,         PARAMETER},
Note: See TracChangeset for help on using the changeset viewer.