File:  [local] / rpl / modules / sets / types.rplc
Revision 1.1: download - view: text, annotated - select for diffs - revision graph
Thu Jun 29 12:32:57 2017 UTC (6 years, 11 months ago) by bertrand
Branches: MAIN
CVS tags: HEAD
Ajout d'un module pour gérer les ensembles.

    1: #define TYPE_DECLARATION
    2: #include "src/rplexternals.h"
    3: #include "sets.h"
    4: 
    5: // Les objets de type ensemble sont délimités par ([ ]) et ne contiennent
    6: // que des entiers.
    7: 
    8: declareTypeExtension(parse)
    9:     if ((*rptr) == '(')
   10:     {
   11:         rptr++;
   12: 
   13:         if ((*rptr) == '[')
   14:         {
   15:             rptr++;
   16:             while((*rptr) != 0)
   17:             {
   18:                 switch (*rptr)
   19:                 {
   20:                     case '0':
   21:                     case '1':
   22:                     case '2':
   23:                     case '3':
   24:                     case '4':
   25:                     case '5':
   26:                     case '6':
   27:                     case '7':
   28:                     case '8':
   29:                     case '9':
   30:                     case ' ':
   31:                     {
   32:                         break;
   33:                     }
   34: 
   35:                     case ']':
   36:                     {
   37:                         rptr++;
   38: 
   39:                         if ((*rptr) == ')')
   40:                         {
   41:                             rptr++;
   42:                             return(sizeOfParse);
   43:                         }
   44:                         else
   45:                         {
   46:                             parseError;
   47:                         }
   48:                     }
   49: 
   50:                     default:
   51:                     {
   52:                         parseError;
   53:                     }
   54:                 }
   55: 
   56:                 rptr++;
   57:             }
   58:         }
   59:     }
   60: endTypeExtension
   61: 
   62: declareTypeExtension(new)
   63: endTypeExtension
   64: 
   65: declareTypeExtension(dup)
   66: endTypeExtension
   67: 
   68: declareTypeExtension(disp)
   69: endTypeExtension
   70: 
   71: declareTypeExtension(drop)
   72: endTypeExtension

CVSweb interface <joel.bertrand@systella.fr>