"Fossies" - the Fresh Open Source Software Archive

Member "erltools/pub/cplusplu/cplus8.cc" (15 May 2006, 189040 Bytes) of package /linux/misc/old/erltools-4.0.1.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "cplus8.cc" see the Fossies "Dox" file reference documentation.

    1 /*************************************************************************/
    2 /*                                                                       */
    3 /*        Produced by MetaGen version 2.0  -    1989-1995                 */
    4 /*       Syntaxic Analyzer Meta Generator developped by                  */
    5 /*                  Eric Lavillonniere                                   */
    6 /*                                                                       */
    7 /*************************************************************************/
    8 #include "token.h"
    9 #include "cplus.h"
   10 
   11 int cplus::SortKeyWord ( int defaultValue )
   12 {
   13     register int    Value ;
   14     
   15     Value = strcmp(lexEl.string(), "namespace");
   16     if ( Value > 0 ) {
   17         Value = strcmp(lexEl.string(), "switch");
   18         if ( Value > 0 ) {
   19             Value = strcmp(lexEl.string(), "using");
   20             if ( Value > 0 ) {
   21                 Value = strcmp(lexEl.string(), "void");
   22                 if ( Value > 0 ) {
   23                     Value = strcmp(lexEl.string(), "while");
   24                     if ( Value > 0 ) {
   25                         return (defaultValue);
   26                     } else if ( Value < 0 ) {
   27                         if ( !strcmp(lexEl.string(), "volatile") ) {
   28                             return (VOLATILE);
   29                         }
   30                     } else 
   31                         return (WHILE);
   32                 } else if ( Value < 0 ) {
   33                     Value = strcmp(lexEl.string(), "virtual");
   34                     if ( Value > 0 ) {
   35                         return (defaultValue);
   36                     } else if ( Value < 0 ) {
   37                         if ( !strcmp(lexEl.string(), "va_arg") ) {
   38                             return (VA_ARG);
   39                         }
   40                     } else 
   41                         return (VIRTUAL);
   42                 } else 
   43                     return (VOID);
   44             } else if ( Value < 0 ) {
   45                 Value = strcmp(lexEl.string(), "typedef");
   46                 if ( Value > 0 ) {
   47                     Value = strcmp(lexEl.string(), "unsigned");
   48                     if ( Value > 0 ) {
   49                         return (defaultValue);
   50                     } else if ( Value < 0 ) {
   51                         if ( !strcmp(lexEl.string(), "union") ) {
   52                             return (UNION);
   53                         }
   54                     } else 
   55                         return (UNSIGNED);
   56                 } else if ( Value < 0 ) {
   57                     Value = strcmp(lexEl.string(), "throw");
   58                     if ( Value > 0 ) {
   59                         if ( !strcmp(lexEl.string(), "try") ) {
   60                             return (TRY);
   61                         }
   62                     } else if ( Value < 0 ) {
   63                         if ( !strcmp(lexEl.string(), "template") ) {
   64                             return (TEMPLATE);
   65                         }
   66                     } else 
   67                         return (THROW);
   68                 } else 
   69                     return (TYPEDEF);
   70             } else 
   71                 return (USING);
   72         } else if ( Value < 0 ) {
   73             Value = strcmp(lexEl.string(), "return");
   74             if ( Value > 0 ) {
   75                 Value = strcmp(lexEl.string(), "sizeof");
   76                 if ( Value > 0 ) {
   77                     Value = strcmp(lexEl.string(), "struct");
   78                     if ( Value > 0 ) {
   79                         return (defaultValue);
   80                     } else if ( Value < 0 ) {
   81                         if ( !strcmp(lexEl.string(), "static") ) {
   82                             return (STATIC);
   83                         }
   84                     } else 
   85                         return (STRUCT);
   86                 } else if ( Value < 0 ) {
   87                     Value = strcmp(lexEl.string(), "signed");
   88                     if ( Value > 0 ) {
   89                         return (defaultValue);
   90                     } else if ( Value < 0 ) {
   91                         if ( !strcmp(lexEl.string(), "short") ) {
   92                             return (SHORT);
   93                         }
   94                     } else 
   95                         return (SIGNED);
   96                 } else 
   97                     return (SIZEOF);
   98             } else if ( Value < 0 ) {
   99                 Value = strcmp(lexEl.string(), "protected");
  100                 if ( Value > 0 ) {
  101                     Value = strcmp(lexEl.string(), "register");
  102                     if ( Value > 0 ) {
  103                         return (defaultValue);
  104                     } else if ( Value < 0 ) {
  105                         if ( !strcmp(lexEl.string(), "public") ) {
  106                             return (PUBLIC);
  107                         }
  108                     } else 
  109                         return (REGISTER);
  110                 } else if ( Value < 0 ) {
  111                     Value = strcmp(lexEl.string(), "operator");
  112                     if ( Value > 0 ) {
  113                         if ( !strcmp(lexEl.string(), "private") ) {
  114                             return (PRIVATE);
  115                         }
  116                     } else if ( Value < 0 ) {
  117                         if ( !strcmp(lexEl.string(), "new") ) {
  118                             return (NEW);
  119                         }
  120                     } else 
  121                         return (OPERATOR);
  122                 } else 
  123                     return (PROTECTED);
  124             } else 
  125                 return (RETURN);
  126         } else 
  127             return (SWITCH);
  128     } else if ( Value < 0 ) {
  129         Value = strcmp(lexEl.string(), "double");
  130         if ( Value > 0 ) {
  131             Value = strcmp(lexEl.string(), "friend");
  132             if ( Value > 0 ) {
  133                 Value = strcmp(lexEl.string(), "inline");
  134                 if ( Value > 0 ) {
  135                     Value = strcmp(lexEl.string(), "long");
  136                     if ( Value > 0 ) {
  137                         return (defaultValue);
  138                     } else if ( Value < 0 ) {
  139                         if ( !strcmp(lexEl.string(), "int") ) {
  140                             return (INT);
  141                         }
  142                     } else 
  143                         return (LONG);
  144                 } else if ( Value < 0 ) {
  145                     Value = strcmp(lexEl.string(), "if");
  146                     if ( Value > 0 ) {
  147                         return (defaultValue);
  148                     } else if ( Value < 0 ) {
  149                         if ( !strcmp(lexEl.string(), "goto") ) {
  150                             return (GOTO);
  151                         }
  152                     } else 
  153                         return (IF);
  154                 } else 
  155                     return (INLINE);
  156             } else if ( Value < 0 ) {
  157                 Value = strcmp(lexEl.string(), "float");
  158                 if ( Value > 0 ) {
  159                     Value = strcmp(lexEl.string(), "forallsons");
  160                     if ( Value > 0 ) {
  161                         return (defaultValue);
  162                     } else if ( Value < 0 ) {
  163                         if ( !strcmp(lexEl.string(), "for") ) {
  164                             return (FOR);
  165                         }
  166                     } else 
  167                         return (FORALLSONS);
  168                 } else if ( Value < 0 ) {
  169                     Value = strcmp(lexEl.string(), "enum");
  170                     if ( Value > 0 ) {
  171                         if ( !strcmp(lexEl.string(), "extern") ) {
  172                             return (EXTERN);
  173                         }
  174                     } else if ( Value < 0 ) {
  175                         if ( !strcmp(lexEl.string(), "else") ) {
  176                             return (ELSE);
  177                         }
  178                     } else 
  179                         return (ENUM);
  180                 } else 
  181                     return (FLOAT);
  182             } else 
  183                 return (FRIEND);
  184         } else if ( Value < 0 ) {
  185             Value = strcmp(lexEl.string(), "char");
  186             if ( Value > 0 ) {
  187                 Value = strcmp(lexEl.string(), "default");
  188                 if ( Value > 0 ) {
  189                     Value = strcmp(lexEl.string(), "do");
  190                     if ( Value > 0 ) {
  191                         return (defaultValue);
  192                     } else if ( Value < 0 ) {
  193                         if ( !strcmp(lexEl.string(), "delete") ) {
  194                             return (DELETE);
  195                         }
  196                     } else 
  197                         return (DO);
  198                 } else if ( Value < 0 ) {
  199                     Value = strcmp(lexEl.string(), "const");
  200                     if ( Value > 0 ) {
  201                         if ( !strcmp(lexEl.string(), "continue") ) {
  202                             return (CONTINUE);
  203                         }
  204                     } else if ( Value < 0 ) {
  205                         if ( !strcmp(lexEl.string(), "class") ) {
  206                             return (CLASS);
  207                         }
  208                     } else 
  209                         return (CONST);
  210                 } else 
  211                     return (DEFAULT);
  212             } else if ( Value < 0 ) {
  213                 Value = strcmp(lexEl.string(), "break");
  214                 if ( Value > 0 ) {
  215                     Value = strcmp(lexEl.string(), "catch");
  216                     if ( Value > 0 ) {
  217                         return (defaultValue);
  218                     } else if ( Value < 0 ) {
  219                         if ( !strcmp(lexEl.string(), "case") ) {
  220                             return (CASE);
  221                         }
  222                     } else 
  223                         return (CATCH);
  224                 } else if ( Value < 0 ) {
  225                     Value = strcmp(lexEl.string(), "asm");
  226                     if ( Value > 0 ) {
  227                         if ( !strcmp(lexEl.string(), "auto") ) {
  228                             return (AUTO);
  229                         }
  230                     } else if ( Value < 0 ) {
  231                         if ( !strcmp(lexEl.string(), "+____------____") ) {
  232                             return (PLUS____TIRETIRETIRETIRETIRETIRE____);
  233                         }
  234                     } else 
  235                         return (ASM);
  236                 } else 
  237                     return (BREAK);
  238             } else 
  239                 return (CHAR);
  240         } else 
  241             return (DOUBLE);
  242     } else 
  243         return (NAMESPACE);
  244     return (defaultValue);
  245 }
  246 
  247 int cplus::UpSortKeyWord ( int value )
  248 {
  249     register char   *ptSource = lexEl.string();
  250     
  251     for (; *ptSource ; ptSource++ ) 
  252         *ptSource = toupper(*ptSource);
  253     return SortKeyWord(value);
  254 }
  255 
  256 int cplus::Lex ()
  257 {
  258     if ( lastContextPos && !lastContextPos->nbRef ) 
  259         FreePos(lastContextPos);
  260     lastContextPos = (PFILE_POSITION)0 ;
  261     if ( tokenAhead ) 
  262         ExtUnputBuf();
  263 #   ifdef DUMP_COORD
  264         if ( !lexCallLex && dumpCoord ) 
  265             store_pos_as_comment(line, col, 0);
  266 #   endif
  267     
  268     int _bidon = (oldLine = line, oldCol = col);
  269     int _bidon1 = (oldLineEntry = line, oldColEntry = col);
  270     
  271     tokenAhead = 0 ;
  272     if ( LexMeta() != -1 ) {
  273         tokenAhead = 1 ;
  274         return 1 ;
  275     }
  276     if ( !(keepCarriage) ) {
  277         ptStockBuf = -1 ;
  278         while ( c == '\t' || c == ' ' || c == '\r' || c == '\n' || c == '' ) 
  279             NextChar();
  280         ptStockBuf = -1 ;
  281         lexEl.Erase();
  282         tokenAhead = 0 ;
  283         oldLine = line, oldCol = col ;
  284         if ( !lexCallLex ) {
  285             PUT_COORD_CALL ;
  286         }
  287     } else {
  288         if ( !(keepAll) ) {
  289             ptStockBuf = -1 ;
  290             while ( c == '\t' || c == ' ' || c == '' ) 
  291                 NextChar();
  292             ptStockBuf = -1 ;
  293             lexEl.Erase();
  294             tokenAhead = 0 ;
  295             oldLine = line, oldCol = col ;
  296             if ( !lexCallLex ) {
  297                 PUT_COORD_CALL ;
  298             }
  299         } else {
  300             ptStockBuf = -1 ;
  301             lexEl.Erase();
  302             tokenAhead = 0 ;
  303             if ( lastContextPos && !lastContextPos->nbRef ) 
  304                 FreePos(lastContextPos);
  305             lastContextPos = (PFILE_POSITION)0 ;
  306         }
  307     }
  308     
  309     int keepCurrCol = col ;
  310     
  311     switch ( c ) {
  312         case '*' : 
  313             NextChar();
  314             switch ( c ) {
  315                 case '=' : 
  316                     NextChar();
  317                     lexEl.Value = cplus::ETOIEGAL ;
  318                     firstOnLine = 0 ;
  319                     tokenAhead = 1 ;
  320                     PUT_COORD_CALL ;
  321                     return (1);
  322                     break ;
  323                 _exitDumpToken2 : 
  324                     ;
  325                 default : 
  326                     lexEl.Value = cplus::ETOI ;
  327                     firstOnLine = 0 ;
  328                     tokenAhead = 1 ;
  329                     PUT_COORD_CALL ;
  330                     return (1);
  331             }
  332             break ;
  333         case '&' : 
  334             NextChar();
  335             switch ( c ) {
  336                 case '=' : 
  337                     NextChar();
  338                     lexEl.Value = cplus::ETCOEGAL ;
  339                     firstOnLine = 0 ;
  340                     tokenAhead = 1 ;
  341                     PUT_COORD_CALL ;
  342                     return (1);
  343                     break ;
  344                 case '&' : 
  345                     NextChar();
  346                     lexEl.Value = cplus::ETCOETCO ;
  347                     firstOnLine = 0 ;
  348                     tokenAhead = 1 ;
  349                     PUT_COORD_CALL ;
  350                     return (1);
  351                     break ;
  352                 _exitDumpToken4 : 
  353                     ;
  354                 default : 
  355                     lexEl.Value = cplus::ETCO ;
  356                     firstOnLine = 0 ;
  357                     tokenAhead = 1 ;
  358                     PUT_COORD_CALL ;
  359                     return (1);
  360             }
  361             break ;
  362         case '~' : 
  363             NextChar();
  364             lexEl.Value = cplus::TILD ;
  365             firstOnLine = 0 ;
  366             tokenAhead = 1 ;
  367             PUT_COORD_CALL ;
  368             return (1);
  369             break ;
  370         case '(' : 
  371             NextChar();
  372             lexEl.Value = cplus::POUV ;
  373             firstOnLine = 0 ;
  374             tokenAhead = 1 ;
  375             PUT_COORD_CALL ;
  376             return (1);
  377             break ;
  378         case ')' : 
  379             NextChar();
  380             lexEl.Value = cplus::PFER ;
  381             firstOnLine = 0 ;
  382             tokenAhead = 1 ;
  383             PUT_COORD_CALL ;
  384             return (1);
  385             break ;
  386         case '+' : 
  387             NextChar();
  388             switch ( c ) {
  389                 case '=' : 
  390                     NextChar();
  391                     lexEl.Value = cplus::PLUSEGAL ;
  392                     firstOnLine = 0 ;
  393                     tokenAhead = 1 ;
  394                     PUT_COORD_CALL ;
  395                     return (1);
  396                     break ;
  397                 case '+' : 
  398                     NextChar();
  399                     lexEl.Value = cplus::PLUSPLUS ;
  400                     firstOnLine = 0 ;
  401                     tokenAhead = 1 ;
  402                     PUT_COORD_CALL ;
  403                     return (1);
  404                     break ;
  405                 _exitDumpToken10 : 
  406                     ;
  407                 default : 
  408                     lexEl.Value = cplus::PLUS ;
  409                     firstOnLine = 0 ;
  410                     tokenAhead = 1 ;
  411                     PUT_COORD_CALL ;
  412                     return (1);
  413             }
  414             break ;
  415         case '-' : 
  416             NextChar();
  417             switch ( c ) {
  418                 case '=' : 
  419                     NextChar();
  420                     lexEl.Value = cplus::TIREEGAL ;
  421                     firstOnLine = 0 ;
  422                     tokenAhead = 1 ;
  423                     PUT_COORD_CALL ;
  424                     return (1);
  425                     break ;
  426                 case '-' : 
  427                     NextChar();
  428                     lexEl.Value = cplus::TIRETIRE ;
  429                     firstOnLine = 0 ;
  430                     tokenAhead = 1 ;
  431                     PUT_COORD_CALL ;
  432                     return (1);
  433                     break ;
  434                 case '>' : 
  435                     NextChar();
  436                     switch ( c ) {
  437                         case '*' : 
  438                             NextChar();
  439                             lexEl.Value = cplus::TIRESUPEETOI ;
  440                             firstOnLine = 0 ;
  441                             tokenAhead = 1 ;
  442                             PUT_COORD_CALL ;
  443                             return (1);
  444                             break ;
  445                         _exitDumpToken16 : 
  446                             ;
  447                         default : 
  448                             lexEl.Value = cplus::TIRESUPE ;
  449                             firstOnLine = 0 ;
  450                             tokenAhead = 1 ;
  451                             PUT_COORD_CALL ;
  452                             return (1);
  453                     }
  454                     break ;
  455                 _exitDumpToken13 : 
  456                     ;
  457                 default : 
  458                     lexEl.Value = cplus::TIRE ;
  459                     firstOnLine = 0 ;
  460                     tokenAhead = 1 ;
  461                     PUT_COORD_CALL ;
  462                     return (1);
  463             }
  464             break ;
  465         case ':' : 
  466             NextChar();
  467             switch ( c ) {
  468                 case ':' : 
  469                     NextChar();
  470                     lexEl.Value = cplus::DPOIDPOI ;
  471                     firstOnLine = 0 ;
  472                     tokenAhead = 1 ;
  473                     PUT_COORD_CALL ;
  474                     return (1);
  475                     break ;
  476                 _exitDumpToken18 : 
  477                     ;
  478                 default : 
  479                     lexEl.Value = cplus::DPOI ;
  480                     firstOnLine = 0 ;
  481                     tokenAhead = 1 ;
  482                     PUT_COORD_CALL ;
  483                     return (1);
  484             }
  485             break ;
  486         case ',' : 
  487             NextChar();
  488             lexEl.Value = cplus::VIRG ;
  489             firstOnLine = 0 ;
  490             tokenAhead = 1 ;
  491             PUT_COORD_CALL ;
  492             return (1);
  493             break ;
  494         case '.' : 
  495             NextChar();
  496             switch ( c ) {
  497                 case '.' : 
  498                     NextChar();
  499                     if ( GetStringS(".", 1) ) {
  500                         lexEl.Value = cplus::POINPOINPOIN ;
  501                         firstOnLine = 0 ;
  502                         tokenAhead = 1 ;
  503                         PUT_COORD_CALL ;
  504                         return (1);
  505                     } else {
  506                         UnputChar(1);
  507                         goto _exitDumpToken21 ;
  508                     }
  509                     break ;
  510                 case '*' : 
  511                     NextChar();
  512                     lexEl.Value = cplus::POINETOI ;
  513                     firstOnLine = 0 ;
  514                     tokenAhead = 1 ;
  515                     PUT_COORD_CALL ;
  516                     return (1);
  517                     break ;
  518                 _exitDumpToken21 : 
  519                     ;
  520                 default : 
  521                     UnputChar(1);
  522                     goto _exitDumpToken0 ;
  523             }
  524             break ;
  525         case '=' : 
  526             NextChar();
  527             switch ( c ) {
  528                 case '=' : 
  529                     NextChar();
  530                     lexEl.Value = cplus::EGALEGAL ;
  531                     firstOnLine = 0 ;
  532                     tokenAhead = 1 ;
  533                     PUT_COORD_CALL ;
  534                     return (1);
  535                     break ;
  536                 _exitDumpToken24 : 
  537                     ;
  538                 default : 
  539                     lexEl.Value = cplus::EGAL ;
  540                     firstOnLine = 0 ;
  541                     tokenAhead = 1 ;
  542                     PUT_COORD_CALL ;
  543                     return (1);
  544             }
  545             break ;
  546         case '%' : 
  547             NextChar();
  548             switch ( c ) {
  549                 case '=' : 
  550                     NextChar();
  551                     lexEl.Value = cplus::POURCEGAL ;
  552                     firstOnLine = 0 ;
  553                     tokenAhead = 1 ;
  554                     PUT_COORD_CALL ;
  555                     return (1);
  556                     break ;
  557                 _exitDumpToken26 : 
  558                     ;
  559                 default : 
  560                     lexEl.Value = cplus::POURC ;
  561                     firstOnLine = 0 ;
  562                     tokenAhead = 1 ;
  563                     PUT_COORD_CALL ;
  564                     return (1);
  565             }
  566             break ;
  567         case '<' : 
  568             NextChar();
  569             switch ( c ) {
  570                 case '<' : 
  571                     NextChar();
  572                     switch ( c ) {
  573                         case '=' : 
  574                             NextChar();
  575                             lexEl.Value = cplus::INFEINFEEGAL ;
  576                             firstOnLine = 0 ;
  577                             tokenAhead = 1 ;
  578                             PUT_COORD_CALL ;
  579                             return (1);
  580                             break ;
  581                         _exitDumpToken29 : 
  582                             ;
  583                         default : 
  584                             lexEl.Value = cplus::INFEINFE ;
  585                             firstOnLine = 0 ;
  586                             tokenAhead = 1 ;
  587                             PUT_COORD_CALL ;
  588                             return (1);
  589                     }
  590                     break ;
  591                 case '=' : 
  592                     NextChar();
  593                     lexEl.Value = cplus::INFEEGAL ;
  594                     firstOnLine = 0 ;
  595                     tokenAhead = 1 ;
  596                     PUT_COORD_CALL ;
  597                     return (1);
  598                     break ;
  599                 _exitDumpToken28 : 
  600                     ;
  601                 default : 
  602                     lexEl.Value = cplus::INFE ;
  603                     firstOnLine = 0 ;
  604                     tokenAhead = 1 ;
  605                     PUT_COORD_CALL ;
  606                     return (1);
  607             }
  608             break ;
  609         case '>' : 
  610             NextChar();
  611             switch ( c ) {
  612                 case '>' : 
  613                     NextChar();
  614                     switch ( c ) {
  615                         case '=' : 
  616                             NextChar();
  617                             lexEl.Value = cplus::SUPESUPEEGAL ;
  618                             firstOnLine = 0 ;
  619                             tokenAhead = 1 ;
  620                             PUT_COORD_CALL ;
  621                             return (1);
  622                             break ;
  623                         _exitDumpToken33 : 
  624                             ;
  625                         default : 
  626                             lexEl.Value = cplus::SUPESUPE ;
  627                             firstOnLine = 0 ;
  628                             tokenAhead = 1 ;
  629                             PUT_COORD_CALL ;
  630                             return (1);
  631                     }
  632                     break ;
  633                 case '=' : 
  634                     NextChar();
  635                     lexEl.Value = cplus::SUPEEGAL ;
  636                     firstOnLine = 0 ;
  637                     tokenAhead = 1 ;
  638                     PUT_COORD_CALL ;
  639                     return (1);
  640                     break ;
  641                 _exitDumpToken32 : 
  642                     ;
  643                 default : 
  644                     lexEl.Value = cplus::SUPE ;
  645                     firstOnLine = 0 ;
  646                     tokenAhead = 1 ;
  647                     PUT_COORD_CALL ;
  648                     return (1);
  649             }
  650             break ;
  651         case '|' : 
  652             NextChar();
  653             switch ( c ) {
  654                 case '=' : 
  655                     NextChar();
  656                     lexEl.Value = cplus::VBAREGAL ;
  657                     firstOnLine = 0 ;
  658                     tokenAhead = 1 ;
  659                     PUT_COORD_CALL ;
  660                     return (1);
  661                     break ;
  662                 case '|' : 
  663                     NextChar();
  664                     lexEl.Value = cplus::VBARVBAR ;
  665                     firstOnLine = 0 ;
  666                     tokenAhead = 1 ;
  667                     PUT_COORD_CALL ;
  668                     return (1);
  669                     break ;
  670                 _exitDumpToken36 : 
  671                     ;
  672                 default : 
  673                     lexEl.Value = cplus::VBAR ;
  674                     firstOnLine = 0 ;
  675                     tokenAhead = 1 ;
  676                     PUT_COORD_CALL ;
  677                     return (1);
  678             }
  679             break ;
  680         case '^' : 
  681             NextChar();
  682             switch ( c ) {
  683                 case '=' : 
  684                     NextChar();
  685                     lexEl.Value = cplus::CHAPEGAL ;
  686                     firstOnLine = 0 ;
  687                     tokenAhead = 1 ;
  688                     PUT_COORD_CALL ;
  689                     return (1);
  690                     break ;
  691                 _exitDumpToken39 : 
  692                     ;
  693                 default : 
  694                     lexEl.Value = cplus::CHAP ;
  695                     firstOnLine = 0 ;
  696                     tokenAhead = 1 ;
  697                     PUT_COORD_CALL ;
  698                     return (1);
  699             }
  700             break ;
  701         case '{' : 
  702             NextChar();
  703             lexEl.Value = cplus::AOUV ;
  704             firstOnLine = 0 ;
  705             tokenAhead = 1 ;
  706             PUT_COORD_CALL ;
  707             return (1);
  708             break ;
  709         case '}' : 
  710             NextChar();
  711             lexEl.Value = cplus::AFER ;
  712             firstOnLine = 0 ;
  713             tokenAhead = 1 ;
  714             PUT_COORD_CALL ;
  715             return (1);
  716             break ;
  717         case '?' : 
  718             NextChar();
  719             lexEl.Value = cplus::INTE ;
  720             firstOnLine = 0 ;
  721             tokenAhead = 1 ;
  722             PUT_COORD_CALL ;
  723             return (1);
  724             break ;
  725         case ';' : 
  726             NextChar();
  727             lexEl.Value = cplus::PVIR ;
  728             firstOnLine = 0 ;
  729             tokenAhead = 1 ;
  730             PUT_COORD_CALL ;
  731             return (1);
  732             break ;
  733         case '[' : 
  734             NextChar();
  735             lexEl.Value = cplus::COUV ;
  736             firstOnLine = 0 ;
  737             tokenAhead = 1 ;
  738             PUT_COORD_CALL ;
  739             return (1);
  740             break ;
  741         case ']' : 
  742             NextChar();
  743             lexEl.Value = cplus::CFER ;
  744             firstOnLine = 0 ;
  745             tokenAhead = 1 ;
  746             PUT_COORD_CALL ;
  747             return (1);
  748             break ;
  749         case '!' : 
  750             NextChar();
  751             switch ( c ) {
  752                 case '=' : 
  753                     NextChar();
  754                     lexEl.Value = cplus::EXCLEGAL ;
  755                     firstOnLine = 0 ;
  756                     tokenAhead = 1 ;
  757                     PUT_COORD_CALL ;
  758                     return (1);
  759                     break ;
  760                 _exitDumpToken47 : 
  761                     ;
  762                 default : 
  763                     lexEl.Value = cplus::EXCL ;
  764                     firstOnLine = 0 ;
  765                     tokenAhead = 1 ;
  766                     PUT_COORD_CALL ;
  767                     return (1);
  768             }
  769             break ;
  770         _exitDumpToken0 : 
  771             ;
  772         default : break ;
  773     }
  774     col = keepCurrCol ;
  775     if ( ptStockBuf > -1 ) 
  776         UnputBuf();
  777     lexEl.Erase();
  778     tokenAhead = 0 ;
  779     if ( lastContextPos && !lastContextPos->nbRef ) 
  780         FreePos(lastContextPos);
  781     lastContextPos = (PFILE_POSITION)0 ;
  782     switch ( c ) {
  783         case 'a' : 
  784         case 'b' : 
  785         case 'c' : 
  786         case 'd' : 
  787         case 'e' : 
  788         case 'f' : 
  789         case 'g' : 
  790         case 'h' : 
  791         case 'i' : 
  792         case 'j' : 
  793         case 'k' : 
  794         case 'l' : 
  795         case 'm' : 
  796         case 'n' : 
  797         case 'o' : 
  798         case 'p' : 
  799         case 'q' : 
  800         case 'r' : 
  801         case 's' : 
  802         case 't' : 
  803         case 'u' : 
  804         case 'v' : 
  805         case 'w' : 
  806         case 'x' : 
  807         case 'y' : 
  808         case 'z' : 
  809         case 'A' : 
  810         case 'B' : 
  811         case 'C' : 
  812         case 'D' : 
  813         case 'E' : 
  814         case 'F' : 
  815         case 'G' : 
  816         case 'H' : 
  817         case 'I' : 
  818         case 'J' : 
  819         case 'K' : 
  820         case 'L' : 
  821         case 'M' : 
  822         case 'N' : 
  823         case 'O' : 
  824         case 'P' : 
  825         case 'Q' : 
  826         case 'R' : 
  827         case 'S' : 
  828         case 'T' : 
  829         case 'U' : 
  830         case 'V' : 
  831         case 'W' : 
  832         case 'X' : 
  833         case 'Y' : 
  834         case 'Z' : 
  835         case '_' : 
  836             while ( 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' || c == '_' || '0' <= c && c <= '9' ) {
  837                 {
  838                     lexEl.AddChar(c);
  839                     NextChar();
  840                 }
  841             }
  842             {
  843                 firstOnLine = 0 ;
  844                 tokenAhead = 1 ;
  845                 lexEl.Value = SortKeyWord(IDENT);
  846                 PUT_COORD_CALL ;
  847                 return (1);
  848             }
  849             break ;
  850         case '"' : 
  851             NextChar();
  852             while ( c != EOF ) {
  853                 switch ( c ) {
  854                     case '"' : 
  855                         NextChar();
  856                         {
  857                             firstOnLine = 0 ;
  858                             tokenAhead = 1 ;
  859                             lexEl.Value = STRING ;
  860                             PUT_COORD_CALL ;
  861                             return (1);
  862                         }
  863                         break ;
  864                     case '\\' : 
  865                         NextChar();
  866                         {
  867                             lexEl.AddString("\\");
  868                         }
  869                         if ( !(c == '\r') ) {
  870                             {
  871                                 lexEl.AddChar(c);
  872                                 NextChar();
  873                             }
  874                         } else {
  875                             if ( !(c != EOF && NextChar()) ) 
  876                                 ;
  877                         }
  878                         break ;
  879                     default : 
  880                         if ( c != EOF ) {
  881                             {
  882                                 lexEl.AddChar(c);
  883                                 NextChar();
  884                             }
  885                         }
  886                         break ;
  887                 }
  888             }
  889             break ;
  890         case '\'' : 
  891             NextChar();
  892             while ( c != EOF ) {
  893                 switch ( c ) {
  894                     case '\\' : 
  895                         NextChar();
  896                         {
  897                             lexEl.AddString("\\");
  898                         }
  899                         {
  900                             lexEl.AddChar(c);
  901                             NextChar();
  902                         }
  903                         break ;
  904                     case '\'' : 
  905                         NextChar();
  906                         {
  907                             firstOnLine = 0 ;
  908                             tokenAhead = 1 ;
  909                             lexEl.Value = CHARACT ;
  910                             PUT_COORD_CALL ;
  911                             return (1);
  912                         }
  913                         break ;
  914                     default : 
  915                         if ( c != EOF ) {
  916                             {
  917                                 lexEl.AddChar(c);
  918                                 NextChar();
  919                             }
  920                         }
  921                         break ;
  922                 }
  923             }
  924             break ;
  925         case '1' : 
  926         case '2' : 
  927         case '3' : 
  928         case '4' : 
  929         case '5' : 
  930         case '6' : 
  931         case '7' : 
  932         case '8' : 
  933         case '9' : 
  934             while ( '0' <= c && c <= '9' ) {
  935                 {
  936                     lexEl.AddChar(c);
  937                     NextChar();
  938                 }
  939             }
  940             switch ( c ) {
  941                 case 'l' : 
  942                 case 'L' : 
  943                     NextChar();
  944                     switch ( c ) {
  945                         case 'u' : 
  946                         case 'U' : 
  947                             NextChar();
  948                             {
  949                                 firstOnLine = 0 ;
  950                                 tokenAhead = 1 ;
  951                                 lexEl.Value = ULINTEGER ;
  952                                 PUT_COORD_CALL ;
  953                                 return (1);
  954                             }
  955                             break ;
  956                         case 'L' : 
  957                         case 'l' : 
  958                             NextChar();
  959                             switch ( c ) {
  960                                 case 'u' : 
  961                                 case 'U' : 
  962                                     NextChar();
  963                                     {
  964                                         firstOnLine = 0 ;
  965                                         tokenAhead = 1 ;
  966                                         lexEl.Value = ULLINTEGER ;
  967                                         PUT_COORD_CALL ;
  968                                         return (1);
  969                                     }
  970                                     break ;
  971                                 default : 
  972                                     if ( c != EOF ) {
  973                                         {
  974                                             firstOnLine = 0 ;
  975                                             tokenAhead = 1 ;
  976                                             lexEl.Value = LLINTEGER ;
  977                                             PUT_COORD_CALL ;
  978                                             return (1);
  979                                         }
  980                                     }
  981                                     break ;
  982                             }
  983                             break ;
  984                         default : 
  985                             if ( c != EOF ) {
  986                                 {
  987                                     firstOnLine = 0 ;
  988                                     tokenAhead = 1 ;
  989                                     lexEl.Value = LINTEGER ;
  990                                     PUT_COORD_CALL ;
  991                                     return (1);
  992                                 }
  993                             }
  994                             break ;
  995                     }
  996                     break ;
  997                 case 'u' : 
  998                 case 'U' : 
  999                     NextChar();
 1000                     switch ( c ) {
 1001                         case 'l' : 
 1002                         case 'L' : 
 1003                             NextChar();
 1004                             switch ( c ) {
 1005                                 case 'L' : 
 1006                                 case 'l' : 
 1007                                     NextChar();
 1008                                     {
 1009                                         firstOnLine = 0 ;
 1010                                         tokenAhead = 1 ;
 1011                                         lexEl.Value = ULLINTEGER ;
 1012                                         PUT_COORD_CALL ;
 1013                                         return (1);
 1014                                     }
 1015                                     break ;
 1016                                 default : 
 1017                                     if ( c != EOF ) {
 1018                                         {
 1019                                             firstOnLine = 0 ;
 1020                                             tokenAhead = 1 ;
 1021                                             lexEl.Value = ULINTEGER ;
 1022                                             PUT_COORD_CALL ;
 1023                                             return (1);
 1024                                         }
 1025                                     }
 1026                                     break ;
 1027                             }
 1028                             break ;
 1029                         default : 
 1030                             if ( c != EOF ) {
 1031                                 {
 1032                                     firstOnLine = 0 ;
 1033                                     tokenAhead = 1 ;
 1034                                     lexEl.Value = UINTEGER ;
 1035                                     PUT_COORD_CALL ;
 1036                                     return (1);
 1037                                 }
 1038                             }
 1039                             break ;
 1040                     }
 1041                     break ;
 1042                 case 'e' : 
 1043                 case 'E' : 
 1044                     NextChar();
 1045                     {
 1046                         lexEl.AddString("e");
 1047                     }
 1048                     if ( c == '+' || c == '-' ) {
 1049                         {
 1050                             lexEl.AddChar(c);
 1051                             NextChar();
 1052                         }
 1053                     }
 1054                     while ( '0' <= c && c <= '9' ) {
 1055                         {
 1056                             lexEl.AddChar(c);
 1057                             NextChar();
 1058                         }
 1059                     }
 1060                     switch ( c ) {
 1061                         case 'f' : 
 1062                             {
 1063                                 lexEl.AddChar(c);
 1064                                 NextChar();
 1065                             }
 1066                             break ;
 1067                         case 'F' : 
 1068                             {
 1069                                 lexEl.AddChar(c);
 1070                                 NextChar();
 1071                             }
 1072                             break ;
 1073                         case 'l' : 
 1074                             {
 1075                                 lexEl.AddChar(c);
 1076                                 NextChar();
 1077                             }
 1078                             break ;
 1079                         case 'L' : 
 1080                             {
 1081                                 lexEl.AddChar(c);
 1082                                 NextChar();
 1083                             }
 1084                             break ;
 1085                     }
 1086                     {
 1087                         firstOnLine = 0 ;
 1088                         tokenAhead = 1 ;
 1089                         lexEl.Value = FLOATVAL ;
 1090                         PUT_COORD_CALL ;
 1091                         return (1);
 1092                     }
 1093                     break ;
 1094                 case '.' : 
 1095                     {
 1096                         lexEl.AddChar(c);
 1097                         NextChar();
 1098                     }
 1099                     while ( '0' <= c && c <= '9' ) {
 1100                         {
 1101                             lexEl.AddChar(c);
 1102                             NextChar();
 1103                         }
 1104                     }
 1105                     if ( (c == 'e' || c == 'E') && NextChar() ) {
 1106                         {
 1107                             lexEl.AddString("e");
 1108                         }
 1109                         if ( c == '+' || c == '-' ) {
 1110                             {
 1111                                 lexEl.AddChar(c);
 1112                                 NextChar();
 1113                             }
 1114                         }
 1115                         while ( '0' <= c && c <= '9' ) {
 1116                             {
 1117                                 lexEl.AddChar(c);
 1118                                 NextChar();
 1119                             }
 1120                         }
 1121                     }
 1122                     switch ( c ) {
 1123                         case 'f' : 
 1124                             {
 1125                                 lexEl.AddChar(c);
 1126                                 NextChar();
 1127                             }
 1128                             break ;
 1129                         case 'F' : 
 1130                             {
 1131                                 lexEl.AddChar(c);
 1132                                 NextChar();
 1133                             }
 1134                             break ;
 1135                         case 'l' : 
 1136                             {
 1137                                 lexEl.AddChar(c);
 1138                                 NextChar();
 1139                             }
 1140                             break ;
 1141                         case 'L' : 
 1142                             {
 1143                                 lexEl.AddChar(c);
 1144                                 NextChar();
 1145                             }
 1146                             break ;
 1147                     }
 1148                     {
 1149                         firstOnLine = 0 ;
 1150                         tokenAhead = 1 ;
 1151                         lexEl.Value = FLOATVAL ;
 1152                         PUT_COORD_CALL ;
 1153                         return (1);
 1154                     }
 1155                     break ;
 1156                 default : 
 1157                     if ( c != EOF ) {
 1158                         {
 1159                             firstOnLine = 0 ;
 1160                             tokenAhead = 1 ;
 1161                             lexEl.Value = INTEGER ;
 1162                             PUT_COORD_CALL ;
 1163                             return (1);
 1164                         }
 1165                     }
 1166                     break ;
 1167             }
 1168             break ;
 1169         case '0' : 
 1170             NextChar();
 1171             switch ( c ) {
 1172                 case 'x' : 
 1173                 case 'X' : 
 1174                     NextChar();
 1175                     while ( '0' <= c && c <= '9' || 'a' <= c && c <= 'f' || 'A' <= c && c <= 'F' ) {
 1176                         {
 1177                             lexEl.AddChar(c);
 1178                             NextChar();
 1179                         }
 1180                     }
 1181                     switch ( c ) {
 1182                         case 'l' : 
 1183                         case 'L' : 
 1184                             NextChar();
 1185                             switch ( c ) {
 1186                                 case 'u' : 
 1187                                 case 'U' : 
 1188                                     NextChar();
 1189                                     {
 1190                                         firstOnLine = 0 ;
 1191                                         tokenAhead = 1 ;
 1192                                         lexEl.Value = ULHEXA ;
 1193                                         PUT_COORD_CALL ;
 1194                                         return (1);
 1195                                     }
 1196                                     break ;
 1197                                 case 'L' : 
 1198                                 case 'l' : 
 1199                                     NextChar();
 1200                                     switch ( c ) {
 1201                                         case 'u' : 
 1202                                         case 'U' : 
 1203                                             NextChar();
 1204                                             {
 1205                                                 firstOnLine = 0 ;
 1206                                                 tokenAhead = 1 ;
 1207                                                 lexEl.Value = ULLHEXA ;
 1208                                                 PUT_COORD_CALL ;
 1209                                                 return (1);
 1210                                             }
 1211                                             break ;
 1212                                         default : 
 1213                                             if ( c != EOF ) {
 1214                                                 {
 1215                                                     firstOnLine = 0 ;
 1216                                                     tokenAhead = 1 ;
 1217                                                     lexEl.Value = LLHEXA ;
 1218                                                     PUT_COORD_CALL ;
 1219                                                     return (1);
 1220                                                 }
 1221                                             }
 1222                                             break ;
 1223                                     }
 1224                                     break ;
 1225                                 default : 
 1226                                     if ( c != EOF ) {
 1227                                         {
 1228                                             firstOnLine = 0 ;
 1229                                             tokenAhead = 1 ;
 1230                                             lexEl.Value = LHEXA ;
 1231                                             PUT_COORD_CALL ;
 1232                                             return (1);
 1233                                         }
 1234                                     }
 1235                                     break ;
 1236                             }
 1237                             break ;
 1238                         case 'u' : 
 1239                         case 'U' : 
 1240                             NextChar();
 1241                             switch ( c ) {
 1242                                 case 'l' : 
 1243                                 case 'L' : 
 1244                                     NextChar();
 1245                                     switch ( c ) {
 1246                                         case 'L' : 
 1247                                         case 'l' : 
 1248                                             NextChar();
 1249                                             {
 1250                                                 firstOnLine = 0 ;
 1251                                                 tokenAhead = 1 ;
 1252                                                 lexEl.Value = ULLHEXA ;
 1253                                                 PUT_COORD_CALL ;
 1254                                                 return (1);
 1255                                             }
 1256                                             break ;
 1257                                         default : 
 1258                                             if ( c != EOF ) {
 1259                                                 {
 1260                                                     firstOnLine = 0 ;
 1261                                                     tokenAhead = 1 ;
 1262                                                     lexEl.Value = ULHEXA ;
 1263                                                     PUT_COORD_CALL ;
 1264                                                     return (1);
 1265                                                 }
 1266                                             }
 1267                                             break ;
 1268                                     }
 1269                                     break ;
 1270                                 default : 
 1271                                     if ( c != EOF ) {
 1272                                         {
 1273                                             firstOnLine = 0 ;
 1274                                             tokenAhead = 1 ;
 1275                                             lexEl.Value = UHEXA ;
 1276                                             PUT_COORD_CALL ;
 1277                                             return (1);
 1278                                         }
 1279                                     }
 1280                                     break ;
 1281                             }
 1282                             break ;
 1283                         default : 
 1284                             if ( c != EOF ) {
 1285                                 {
 1286                                     firstOnLine = 0 ;
 1287                                     tokenAhead = 1 ;
 1288                                     lexEl.Value = HEXA ;
 1289                                     PUT_COORD_CALL ;
 1290                                     return (1);
 1291                                 }
 1292                             }
 1293                             break ;
 1294                     }
 1295                     break ;
 1296                 case '0' : 
 1297                 case '1' : 
 1298                 case '2' : 
 1299                 case '3' : 
 1300                 case '4' : 
 1301                 case '5' : 
 1302                 case '6' : 
 1303                 case '7' : 
 1304                     while ( '0' <= c && c <= '7' ) {
 1305                         {
 1306                             lexEl.AddChar(c);
 1307                             NextChar();
 1308                         }
 1309                     }
 1310                     switch ( c ) {
 1311                         case 'l' : 
 1312                         case 'L' : 
 1313                             NextChar();
 1314                             switch ( c ) {
 1315                                 case 'L' : 
 1316                                 case 'l' : 
 1317                                     NextChar();
 1318                                     switch ( c ) {
 1319                                         case 'u' : 
 1320                                         case 'U' : 
 1321                                             NextChar();
 1322                                             {
 1323                                                 firstOnLine = 0 ;
 1324                                                 tokenAhead = 1 ;
 1325                                                 lexEl.Value = ULLOCTAL ;
 1326                                                 PUT_COORD_CALL ;
 1327                                                 return (1);
 1328                                             }
 1329                                             break ;
 1330                                         default : 
 1331                                             if ( c != EOF ) {
 1332                                                 {
 1333                                                     firstOnLine = 0 ;
 1334                                                     tokenAhead = 1 ;
 1335                                                     lexEl.Value = LLOCTAL ;
 1336                                                     PUT_COORD_CALL ;
 1337                                                     return (1);
 1338                                                 }
 1339                                             }
 1340                                             break ;
 1341                                     }
 1342                                     break ;
 1343                                 case 'u' : 
 1344                                 case 'U' : 
 1345                                     NextChar();
 1346                                     {
 1347                                         firstOnLine = 0 ;
 1348                                         tokenAhead = 1 ;
 1349                                         lexEl.Value = ULOCTAL ;
 1350                                         PUT_COORD_CALL ;
 1351                                         return (1);
 1352                                     }
 1353                                     break ;
 1354                                 default : 
 1355                                     if ( c != EOF ) {
 1356                                         {
 1357                                             firstOnLine = 0 ;
 1358                                             tokenAhead = 1 ;
 1359                                             lexEl.Value = LOCTAL ;
 1360                                             PUT_COORD_CALL ;
 1361                                             return (1);
 1362                                         }
 1363                                     }
 1364                                     break ;
 1365                             }
 1366                             break ;
 1367                         case 'u' : 
 1368                         case 'U' : 
 1369                             NextChar();
 1370                             switch ( c ) {
 1371                                 case 'l' : 
 1372                                 case 'L' : 
 1373                                     NextChar();
 1374                                     switch ( c ) {
 1375                                         case 'L' : 
 1376                                         case 'l' : 
 1377                                             NextChar();
 1378                                             {
 1379                                                 firstOnLine = 0 ;
 1380                                                 tokenAhead = 1 ;
 1381                                                 lexEl.Value = ULLOCTAL ;
 1382                                                 PUT_COORD_CALL ;
 1383                                                 return (1);
 1384                                             }
 1385                                             break ;
 1386                                         default : 
 1387                                             if ( c != EOF ) {
 1388                                                 {
 1389                                                     firstOnLine = 0 ;
 1390                                                     tokenAhead = 1 ;
 1391                                                     lexEl.Value = ULOCTAL ;
 1392                                                     PUT_COORD_CALL ;
 1393                                                     return (1);
 1394                                                 }
 1395                                             }
 1396                                             break ;
 1397                                     }
 1398                                     break ;
 1399                                 default : 
 1400                                     if ( c != EOF ) {
 1401                                         {
 1402                                             firstOnLine = 0 ;
 1403                                             tokenAhead = 1 ;
 1404                                             lexEl.Value = UOCTAL ;
 1405                                             PUT_COORD_CALL ;
 1406                                             return (1);
 1407                                         }
 1408                                     }
 1409                                     break ;
 1410                             }
 1411                             break ;
 1412                         default : 
 1413                             if ( c != EOF ) {
 1414                                 {
 1415                                     firstOnLine = 0 ;
 1416                                     tokenAhead = 1 ;
 1417                                     lexEl.Value = OCTAL ;
 1418                                     PUT_COORD_CALL ;
 1419                                     return (1);
 1420                                 }
 1421                             }
 1422                             break ;
 1423                     }
 1424                     break ;
 1425                 case '.' : 
 1426                     {
 1427                         lexEl.AddString("0");
 1428                     }
 1429                     {
 1430                         lexEl.AddChar(c);
 1431                         NextChar();
 1432                     }
 1433                     while ( '0' <= c && c <= '9' ) {
 1434                         {
 1435                             lexEl.AddChar(c);
 1436                             NextChar();
 1437                         }
 1438                     }
 1439                     if ( (c == 'e' || c == 'E') && NextChar() ) {
 1440                         {
 1441                             lexEl.AddString("e");
 1442                         }
 1443                         if ( c == '+' || c == '-' ) {
 1444                             {
 1445                                 lexEl.AddChar(c);
 1446                                 NextChar();
 1447                             }
 1448                         }
 1449                         while ( '0' <= c && c <= '9' ) {
 1450                             {
 1451                                 lexEl.AddChar(c);
 1452                                 NextChar();
 1453                             }
 1454                         }
 1455                     }
 1456                     switch ( c ) {
 1457                         case 'f' : 
 1458                             {
 1459                                 lexEl.AddChar(c);
 1460                                 NextChar();
 1461                             }
 1462                             break ;
 1463                         case 'F' : 
 1464                             {
 1465                                 lexEl.AddChar(c);
 1466                                 NextChar();
 1467                             }
 1468                             break ;
 1469                         case 'l' : 
 1470                             {
 1471                                 lexEl.AddChar(c);
 1472                                 NextChar();
 1473                             }
 1474                             break ;
 1475                         case 'L' : 
 1476                             {
 1477                                 lexEl.AddChar(c);
 1478                                 NextChar();
 1479                             }
 1480                             break ;
 1481                     }
 1482                     {
 1483                         firstOnLine = 0 ;
 1484                         tokenAhead = 1 ;
 1485                         lexEl.Value = FLOATVAL ;
 1486                         PUT_COORD_CALL ;
 1487                         return (1);
 1488                     }
 1489                     break ;
 1490                 default : 
 1491                     if ( c != EOF ) {
 1492                         {
 1493                             lexEl.AddString("0");
 1494                         }
 1495                         switch ( c ) {
 1496                             case 'l' : 
 1497                             case 'L' : 
 1498                                 NextChar();
 1499                                 switch ( c ) {
 1500                                     case 'u' : 
 1501                                     case 'U' : 
 1502                                         NextChar();
 1503                                         {
 1504                                             firstOnLine = 0 ;
 1505                                             tokenAhead = 1 ;
 1506                                             lexEl.Value = ULINTEGER ;
 1507                                             PUT_COORD_CALL ;
 1508                                             return (1);
 1509                                         }
 1510                                         break ;
 1511                                     default : 
 1512                                         if ( c != EOF ) {
 1513                                             {
 1514                                                 firstOnLine = 0 ;
 1515                                                 tokenAhead = 1 ;
 1516                                                 lexEl.Value = LINTEGER ;
 1517                                                 PUT_COORD_CALL ;
 1518                                                 return (1);
 1519                                             }
 1520                                         }
 1521                                         break ;
 1522                                 }
 1523                                 break ;
 1524                             case 'u' : 
 1525                             case 'U' : 
 1526                                 NextChar();
 1527                                 switch ( c ) {
 1528                                     case 'l' : 
 1529                                     case 'L' : 
 1530                                         NextChar();
 1531                                         {
 1532                                             firstOnLine = 0 ;
 1533                                             tokenAhead = 1 ;
 1534                                             lexEl.Value = ULINTEGER ;
 1535                                             PUT_COORD_CALL ;
 1536                                             return (1);
 1537                                         }
 1538                                         break ;
 1539                                     default : 
 1540                                         if ( c != EOF ) {
 1541                                             {
 1542                                                 firstOnLine = 0 ;
 1543                                                 tokenAhead = 1 ;
 1544                                                 lexEl.Value = UINTEGER ;
 1545                                                 PUT_COORD_CALL ;
 1546                                                 return (1);
 1547                                             }
 1548                                         }
 1549                                         break ;
 1550                                 }
 1551                                 break ;
 1552                             default : 
 1553                                 if ( c != EOF ) {
 1554                                     {
 1555                                         firstOnLine = 0 ;
 1556                                         tokenAhead = 1 ;
 1557                                         lexEl.Value = INTEGER ;
 1558                                         PUT_COORD_CALL ;
 1559                                         return (1);
 1560                                     }
 1561                                 }
 1562                                 break ;
 1563                         }
 1564                     }
 1565                     break ;
 1566             }
 1567             break ;
 1568         case '#' : 
 1569             NextChar();
 1570             while ( c == ' ' || c == '\t' ) {
 1571                 if ( !(c != EOF && NextChar()) ) 
 1572                     ;
 1573             }
 1574             if ( GetString("include", 1) && NextChar() ) {
 1575                 {
 1576                     firstOnLine = 0 ;
 1577                     tokenAhead = 1 ;
 1578                     lexEl.Value = INCLUDE_DIR ;
 1579                     PUT_COORD_CALL ;
 1580                     return (1);
 1581                 }
 1582             } else if ( GetString("ifdef", 1) && NextChar() ) {
 1583                 {
 1584                     firstOnLine = 0 ;
 1585                     tokenAhead = 1 ;
 1586                     lexEl.Value = IFDEF_DIR ;
 1587                     PUT_COORD_CALL ;
 1588                     return (1);
 1589                 }
 1590             } else if ( GetString("ifndef", 1) && NextChar() ) {
 1591                 {
 1592                     firstOnLine = 0 ;
 1593                     tokenAhead = 1 ;
 1594                     lexEl.Value = IFNDEF_DIR ;
 1595                     PUT_COORD_CALL ;
 1596                     return (1);
 1597                 }
 1598             } else if ( GetString("if", 1) && NextChar() ) {
 1599                 {
 1600                     firstOnLine = 0 ;
 1601                     tokenAhead = 1 ;
 1602                     lexEl.Value = IF_DIR ;
 1603                     PUT_COORD_CALL ;
 1604                     return (1);
 1605                 }
 1606             } else if ( GetString("else", 1) && NextChar() ) {
 1607                 {
 1608                     firstOnLine = 0 ;
 1609                     tokenAhead = 1 ;
 1610                     lexEl.Value = ELSE_DIR ;
 1611                     PUT_COORD_CALL ;
 1612                     return (1);
 1613                 }
 1614             } else if ( GetString("elif", 1) && NextChar() ) {
 1615                 {
 1616                     firstOnLine = 0 ;
 1617                     tokenAhead = 1 ;
 1618                     lexEl.Value = ELIF_DIR ;
 1619                     PUT_COORD_CALL ;
 1620                     return (1);
 1621                 }
 1622             } else if ( GetString("endif", 1) && NextChar() ) {
 1623                 {
 1624                     firstOnLine = 0 ;
 1625                     tokenAhead = 1 ;
 1626                     lexEl.Value = ENDIF_DIR ;
 1627                     PUT_COORD_CALL ;
 1628                     return (1);
 1629                 }
 1630             } else if ( GetString("line", 1) && NextChar() ) {
 1631                 {
 1632                     firstOnLine = 0 ;
 1633                     tokenAhead = 1 ;
 1634                     lexEl.Value = LINE_DIR ;
 1635                     PUT_COORD_CALL ;
 1636                     return (1);
 1637                 }
 1638             } else if ( GetString("pragma", 1) && NextChar() ) {
 1639                 {
 1640                     firstOnLine = 0 ;
 1641                     tokenAhead = 1 ;
 1642                     lexEl.Value = PRAGMA_DIR ;
 1643                     PUT_COORD_CALL ;
 1644                     return (1);
 1645                 }
 1646             } else if ( GetString("error", 1) && NextChar() ) {
 1647                 {
 1648                     firstOnLine = 0 ;
 1649                     tokenAhead = 1 ;
 1650                     lexEl.Value = ERROR_DIR ;
 1651                     PUT_COORD_CALL ;
 1652                     return (1);
 1653                 }
 1654             } else if ( GetString("define", 1) && NextChar() ) {
 1655                 {
 1656                     firstOnLine = 0 ;
 1657                     tokenAhead = 1 ;
 1658                     lexEl.Value = DEFINE_DIR ;
 1659                     PUT_COORD_CALL ;
 1660                     return (1);
 1661                 }
 1662             } else if ( GetString("undef", 1) && NextChar() ) {
 1663                 {
 1664                     firstOnLine = 0 ;
 1665                     tokenAhead = 1 ;
 1666                     lexEl.Value = UNDEF_DIR ;
 1667                     PUT_COORD_CALL ;
 1668                     return (1);
 1669                 }
 1670             } else 
 1671                 ;
 1672             break ;
 1673         case '\r' : 
 1674         case '\n' : 
 1675             NextChar();
 1676             {
 1677                 firstOnLine = 0 ;
 1678                 tokenAhead = 1 ;
 1679                 lexEl.Value = CARRIAGE_RETURN ;
 1680                 firstOnLine = 1 ;
 1681                 PUT_COORD_CALL ;
 1682                 return (1);
 1683             }
 1684             break ;
 1685         case '/' : 
 1686             NextChar();
 1687             if ( c == '=' ) {
 1688                 if ( !(c != EOF && NextChar()) ) 
 1689                     ;
 1690                 {
 1691                     firstOnLine = 0 ;
 1692                     tokenAhead = 1 ;
 1693                     lexEl.Value = SLASEGAL ;
 1694                     PUT_COORD_CALL ;
 1695                     return (1);
 1696                 }
 1697             } else {
 1698                 {
 1699                     firstOnLine = 0 ;
 1700                     tokenAhead = 1 ;
 1701                     lexEl.Value = SLAS ;
 1702                     PUT_COORD_CALL ;
 1703                     return (1);
 1704                 }
 1705             }
 1706             break ;
 1707         case '.' : 
 1708             {
 1709                 lexEl.AddChar(c);
 1710                 NextChar();
 1711             }
 1712             if ( '0' <= c && c <= '9' ) {
 1713                 while ( '0' <= c && c <= '9' ) {
 1714                     {
 1715                         lexEl.AddChar(c);
 1716                         NextChar();
 1717                     }
 1718                 }
 1719                 if ( (c == 'e' || c == 'E') && NextChar() ) {
 1720                     {
 1721                         lexEl.AddString("e");
 1722                     }
 1723                     if ( c == '+' || c == '-' ) {
 1724                         {
 1725                             lexEl.AddChar(c);
 1726                             NextChar();
 1727                         }
 1728                     }
 1729                     while ( '0' <= c && c <= '9' ) {
 1730                         {
 1731                             lexEl.AddChar(c);
 1732                             NextChar();
 1733                         }
 1734                     }
 1735                 }
 1736                 switch ( c ) {
 1737                     case 'f' : 
 1738                         {
 1739                             lexEl.AddChar(c);
 1740                             NextChar();
 1741                         }
 1742                         break ;
 1743                     case 'F' : 
 1744                         {
 1745                             lexEl.AddChar(c);
 1746                             NextChar();
 1747                         }
 1748                         break ;
 1749                     case 'l' : 
 1750                         {
 1751                             lexEl.AddChar(c);
 1752                             NextChar();
 1753                         }
 1754                         break ;
 1755                     case 'L' : 
 1756                         {
 1757                             lexEl.AddChar(c);
 1758                             NextChar();
 1759                         }
 1760                         break ;
 1761                 }
 1762                 {
 1763                     firstOnLine = 0 ;
 1764                     tokenAhead = 1 ;
 1765                     lexEl.Value = FLOATVAL ;
 1766                     PUT_COORD_CALL ;
 1767                     return (1);
 1768                 }
 1769             } else {
 1770                 {
 1771                     firstOnLine = 0 ;
 1772                     tokenAhead = 1 ;
 1773                     lexEl.Value = POINT ;
 1774                     PUT_COORD_CALL ;
 1775                     return (1);
 1776                 }
 1777             }
 1778             break ;
 1779     }
 1780     line = oldLine ;
 1781     LEX_EXIT(0, "");
 1782     lexEl.Value = -1 ;
 1783     return -1 ;
 1784 }
 1785 
 1786 int cplus::LexComment ()
 1787 {
 1788     if ( lastContextPos && !lastContextPos->nbRef ) 
 1789         FreePos(lastContextPos);
 1790     lastContextPos = (PFILE_POSITION)0 ;
 1791     if ( tokenAhead ) 
 1792         ExtUnputBuf();
 1793 #   ifdef DUMP_COORD
 1794         if ( !lexCallLex && dumpCoord ) 
 1795             store_pos_as_comment(line, col, 0);
 1796 #   endif
 1797     
 1798     int _bidon = (oldLine = line, oldCol = col);
 1799     int _bidon1 = (oldLineEntry = line, oldColEntry = col);
 1800     
 1801     if ( !(keepCarriage) && !(keepAll) ) {
 1802         ptStockBuf = -1 ;
 1803         while ( c == '\t' || c == ' ' || c == '\r' || c == '\n' || c == '' ) 
 1804             NextChar();
 1805         ptStockBuf = -1 ;
 1806         lexEl.Erase();
 1807         tokenAhead = 0 ;
 1808         oldLine = line, oldCol = col ;
 1809         if ( !lexCallLex ) {
 1810             PUT_COORD_CALL ;
 1811         }
 1812     } else {
 1813         if ( !(keepAll) ) {
 1814             ptStockBuf = -1 ;
 1815             while ( c == '\t' || c == ' ' || c == '' ) 
 1816                 NextChar();
 1817             ptStockBuf = -1 ;
 1818             lexEl.Erase();
 1819             tokenAhead = 0 ;
 1820             oldLine = line, oldCol = col ;
 1821             if ( !lexCallLex ) {
 1822                 PUT_COORD_CALL ;
 1823             }
 1824         } else {
 1825             ptStockBuf = -1 ;
 1826             lexEl.Erase();
 1827             tokenAhead = 0 ;
 1828             if ( lastContextPos && !lastContextPos->nbRef ) 
 1829                 FreePos(lastContextPos);
 1830             lastContextPos = (PFILE_POSITION)0 ;
 1831         }
 1832     }
 1833     switch ( c ) {
 1834         case '/' : 
 1835             NextChar();
 1836             switch ( c ) {
 1837                 case '/' : 
 1838                     begin_comment();
 1839                     {
 1840                         lexEl.AddChar(c);
 1841                         NextChar();
 1842                     }
 1843                     while ( c != EOF ) {
 1844                         switch ( c ) {
 1845                             case '\r' : 
 1846                             case '\n' : 
 1847                                 {
 1848                                     store_comment_line(lexEl.length());
 1849                                     lexEl.Erase();
 1850                                     ptStockBuf = -1 ;
 1851                                 }
 1852                                 {
 1853                                     firstOnLine = 0 ;
 1854                                     tokenAhead = 2 ;
 1855                                     tokenAhead = 0 ;
 1856                                     lexCallLex = 1 ;
 1857                                     return _Tak(LexComment)();
 1858                                 }
 1859                                 break ;
 1860                             default : 
 1861                                 if ( c != EOF ) {
 1862                                     {
 1863                                         lexEl.AddChar(c);
 1864                                         NextChar();
 1865                                     }
 1866                                 }
 1867                                 break ;
 1868                         }
 1869                     }
 1870                     {
 1871                         store_comment_line(lexEl.length());
 1872                         lexEl.Erase();
 1873                         ptStockBuf = -1 ;
 1874                     }
 1875                     break ;
 1876                 case '*' : 
 1877                     NextChar();
 1878                     {
 1879                         int level = 0 ;
 1880                         int nbCaract = 0 ;
 1881                         begin_comment();
 1882                         while ( c != EOF ) {
 1883                             if ( GetString("/*", 1) && NextChar() ) {
 1884                                 level++ ;
 1885                                 {
 1886                                     lexEl.AddString("/*");
 1887                                 }
 1888                             } else if ( GetString("*/", 1) && NextChar() ) {
 1889                                 if ( !level ) {
 1890                                     {
 1891                                         store_comment_line(lexEl.length());
 1892                                         lexEl.Erase();
 1893                                         ptStockBuf = -1 ;
 1894                                     }
 1895                                     {
 1896                                         firstOnLine = 0 ;
 1897                                         tokenAhead = 2 ;
 1898                                         tokenAhead = 0 ;
 1899                                         lexCallLex = 1 ;
 1900                                         return _Tak(LexComment)();
 1901                                     }
 1902                                 } else {
 1903                                     level-- ;
 1904                                     {
 1905                                         lexEl.AddString("*/");
 1906                                     }
 1907                                 }
 1908                             } else if ( c == '\n' && NextChar() ) {
 1909                                 {
 1910                                     store_comment_line(lexEl.length());
 1911                                     lexEl.Erase();
 1912                                     ptStockBuf = -1 ;
 1913                                 }
 1914                                 nbCaract = 0 ;
 1915                             } else if ( c == '\r' && NextChar() ) {
 1916                             } else if ( c != EOF ) {
 1917                                 if ( nbCaract++ > 254 ) {
 1918                                     {
 1919                                         store_comment_line(lexEl.length());
 1920                                         lexEl.Erase();
 1921                                         ptStockBuf = -1 ;
 1922                                     }
 1923                                     begin_comment();
 1924                                     nbCaract = 0 ;
 1925                                 }
 1926                                 {
 1927                                     lexEl.AddChar(c);
 1928                                     NextChar();
 1929                                 }
 1930                             } else 
 1931                                 ;
 1932                         }
 1933                         {
 1934                             store_comment_line(lexEl.length());
 1935                             lexEl.Erase();
 1936                             ptStockBuf = -1 ;
 1937                         }
 1938                     }
 1939                     break ;
 1940                 default : 
 1941                     if ( c != EOF ) {
 1942                         if ( ptStockBuf > -1 ) 
 1943                             UnputBuf();
 1944                         lexEl.Erase();
 1945                         tokenAhead = 0 ;
 1946                         if ( lastContextPos && !lastContextPos->nbRef ) 
 1947                             FreePos(lastContextPos);
 1948                         lastContextPos = (PFILE_POSITION)0 ;
 1949                     }
 1950                     break ;
 1951             }
 1952             break ;
 1953     }
 1954     if ( lexCallLex ) {
 1955         PUT_COORD_AFTER_COMMENTS_CALL ;
 1956     }
 1957     line = oldLine ;
 1958     LEX_EXIT(0, "");
 1959     lexEl.Value = -1 ;
 1960     return -1 ;
 1961 }
 1962 
 1963 int cplus::LexDefine ()
 1964 {
 1965     if ( lastContextPos && !lastContextPos->nbRef ) 
 1966         FreePos(lastContextPos);
 1967     lastContextPos = (PFILE_POSITION)0 ;
 1968     if ( tokenAhead ) 
 1969         ExtUnputBuf();
 1970 #   ifdef DUMP_COORD
 1971         if ( !lexCallLex && dumpCoord ) 
 1972             store_pos_as_comment(line, col, 0);
 1973 #   endif
 1974     
 1975     int _bidon = (oldLine = line, oldCol = col);
 1976     int _bidon1 = (oldLineEntry = line, oldColEntry = col);
 1977     
 1978     tokenAhead = 0 ;
 1979     if ( LexMeta() != -1 ) {
 1980         tokenAhead = 3 ;
 1981         return 1 ;
 1982     }
 1983     ptStockBuf = -1 ;
 1984     lexEl.Erase();
 1985     tokenAhead = 0 ;
 1986     if ( lastContextPos && !lastContextPos->nbRef ) 
 1987         FreePos(lastContextPos);
 1988     lastContextPos = (PFILE_POSITION)0 ;
 1989     if ( c != EOF ) {
 1990         while ( c != EOF ) {
 1991             while ( c != EOF && !(c == '\n' || c == '\r' || c == '\\') ) {
 1992                 if ( GetString("/*", 1) && NextChar() ) {
 1993                     nbOpenComment += 1 ;
 1994                     {
 1995                         lexEl.AddString("/*");
 1996                     }
 1997                 } else if ( GetString("*/", 1) && NextChar() ) {
 1998                     if ( nbOpenComment > 0 ) 
 1999                         nbOpenComment -= 1 ;
 2000                     {
 2001                         lexEl.AddString("*/");
 2002                     }
 2003                 } else if ( c != EOF ) {
 2004                     {
 2005                         lexEl.AddChar(c);
 2006                         NextChar();
 2007                     }
 2008                 } else 
 2009                     ;
 2010             }
 2011             if ( c == '\\' || nbOpenComment ) {
 2012                 if ( c == '\\' ) {
 2013                     {
 2014                         lexEl.AddChar(c);
 2015                         NextChar();
 2016                     }
 2017                 }
 2018                 if ( c == '\n' || c == '\r' ) {
 2019                     while ( c == '\n' || c == '\r' ) {
 2020                         if ( !(c != EOF && NextChar()) ) 
 2021                             ;
 2022                     }
 2023                     {
 2024                         firstOnLine = 0 ;
 2025                         tokenAhead = 3 ;
 2026                         lexEl.Value = DEFINED_CONTINUED ;
 2027                         PUT_COORD_CALL ;
 2028                         return (1);
 2029                     }
 2030                 }
 2031             } else {
 2032                 {
 2033                     firstOnLine = 0 ;
 2034                     tokenAhead = 3 ;
 2035                     lexEl.Value = DEFINED_NOT_CONTINUED ;
 2036                     PUT_COORD_CALL ;
 2037                     return (1);
 2038                 }
 2039             }
 2040         }
 2041     }
 2042     line = oldLine ;
 2043     LEX_EXIT(0, "");
 2044     lexEl.Value = -1 ;
 2045     return -1 ;
 2046 }
 2047 
 2048 int cplus::LexDefineName ()
 2049 {
 2050     if ( lastContextPos && !lastContextPos->nbRef ) 
 2051         FreePos(lastContextPos);
 2052     lastContextPos = (PFILE_POSITION)0 ;
 2053     if ( tokenAhead ) 
 2054         ExtUnputBuf();
 2055 #   ifdef DUMP_COORD
 2056         if ( !lexCallLex && dumpCoord ) 
 2057             store_pos_as_comment(line, col, 0);
 2058 #   endif
 2059     
 2060     int _bidon = (oldLine = line, oldCol = col);
 2061     int _bidon1 = (oldLineEntry = line, oldColEntry = col);
 2062     
 2063     tokenAhead = 0 ;
 2064     if ( LexMeta() != -1 ) {
 2065         tokenAhead = 4 ;
 2066         return 1 ;
 2067     }
 2068     ptStockBuf = -1 ;
 2069     while ( c == ' ' || c == '\t' || c == '' ) 
 2070         NextChar();
 2071     ptStockBuf = -1 ;
 2072     lexEl.Erase();
 2073     tokenAhead = 0 ;
 2074     oldLine = line, oldCol = col ;
 2075     if ( !lexCallLex ) {
 2076         PUT_COORD_CALL ;
 2077     }
 2078     while ( 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' || c == '_' || '0' <= c && c <= '9' ) {
 2079         {
 2080             lexEl.AddChar(c);
 2081             NextChar();
 2082         }
 2083     }
 2084     {
 2085         firstOnLine = 0 ;
 2086         tokenAhead = 4 ;
 2087         lexEl.Value = DEFINE_NAME ;
 2088         PUT_COORD_CALL ;
 2089         return (1);
 2090     }
 2091     line = oldLine ;
 2092     LEX_EXIT(0, "");
 2093     lexEl.Value = -1 ;
 2094     return -1 ;
 2095 }
 2096 
 2097 int cplus::LexEndLine ()
 2098 {
 2099     if ( lastContextPos && !lastContextPos->nbRef ) 
 2100         FreePos(lastContextPos);
 2101     lastContextPos = (PFILE_POSITION)0 ;
 2102     if ( tokenAhead ) 
 2103         ExtUnputBuf();
 2104 #   ifdef DUMP_COORD
 2105         if ( !lexCallLex && dumpCoord ) 
 2106             store_pos_as_comment(line, col, 0);
 2107 #   endif
 2108     
 2109     int _bidon = (oldLine = line, oldCol = col);
 2110     int _bidon1 = (oldLineEntry = line, oldColEntry = col);
 2111     
 2112     tokenAhead = 0 ;
 2113     if ( LexMeta() != -1 ) {
 2114         tokenAhead = 5 ;
 2115         return 1 ;
 2116     }
 2117     ptStockBuf = -1 ;
 2118     lexEl.Erase();
 2119     tokenAhead = 0 ;
 2120     if ( lastContextPos && !lastContextPos->nbRef ) 
 2121         FreePos(lastContextPos);
 2122     lastContextPos = (PFILE_POSITION)0 ;
 2123     if ( c != EOF ) {
 2124         while ( c != EOF && !(c == '\n' || c == '\r') ) {
 2125             {
 2126                 lexEl.AddChar(c);
 2127                 NextChar();
 2128             }
 2129         }
 2130         while ( c == '\n' || c == '\r' ) {
 2131             if ( !(c != EOF && NextChar()) ) 
 2132                 ;
 2133         }
 2134         {
 2135             firstOnLine = 0 ;
 2136             tokenAhead = 5 ;
 2137             lexEl.Value = END_LINE ;
 2138             PUT_COORD_CALL ;
 2139             return (1);
 2140         }
 2141     }
 2142     line = oldLine ;
 2143     LEX_EXIT(0, "");
 2144     lexEl.Value = -1 ;
 2145     return -1 ;
 2146 }
 2147 
 2148 int cplus::LexInclude ()
 2149 {
 2150     if ( lastContextPos && !lastContextPos->nbRef ) 
 2151         FreePos(lastContextPos);
 2152     lastContextPos = (PFILE_POSITION)0 ;
 2153     if ( tokenAhead ) 
 2154         ExtUnputBuf();
 2155 #   ifdef DUMP_COORD
 2156         if ( !lexCallLex && dumpCoord ) 
 2157             store_pos_as_comment(line, col, 0);
 2158 #   endif
 2159     
 2160     int _bidon = (oldLine = line, oldCol = col);
 2161     int _bidon1 = (oldLineEntry = line, oldColEntry = col);
 2162     
 2163     tokenAhead = 0 ;
 2164     if ( LexMeta() != -1 ) {
 2165         tokenAhead = 6 ;
 2166         return 1 ;
 2167     }
 2168     ptStockBuf = -1 ;
 2169     while ( c == ' ' || c == '\t' ) 
 2170         NextChar();
 2171     ptStockBuf = -1 ;
 2172     lexEl.Erase();
 2173     tokenAhead = 0 ;
 2174     oldLine = line, oldCol = col ;
 2175     if ( !lexCallLex ) {
 2176         PUT_COORD_CALL ;
 2177     }
 2178     switch ( c ) {
 2179         case '<' : 
 2180             NextChar();
 2181             while ( !(c == '>' || c == '\r' || c == '\n') ) {
 2182                 {
 2183                     lexEl.AddChar(c);
 2184                     NextChar();
 2185                 }
 2186             }
 2187             if ( !(c != EOF && NextChar()) ) 
 2188                 ;
 2189             {
 2190                 firstOnLine = 0 ;
 2191                 tokenAhead = 6 ;
 2192                 lexEl.Value = INCLUDE_SYS ;
 2193                 PUT_COORD_CALL ;
 2194                 return (1);
 2195             }
 2196             break ;
 2197         case '"' : 
 2198             NextChar();
 2199             while ( !(c == '"' || c == '\r' || c == '\n') ) {
 2200                 {
 2201                     lexEl.AddChar(c);
 2202                     NextChar();
 2203                 }
 2204             }
 2205             if ( !(c != EOF && NextChar()) ) 
 2206                 ;
 2207             {
 2208                 firstOnLine = 0 ;
 2209                 tokenAhead = 6 ;
 2210                 lexEl.Value = INCLUDE_LOCAL ;
 2211                 PUT_COORD_CALL ;
 2212                 return (1);
 2213             }
 2214             break ;
 2215     }
 2216     line = oldLine ;
 2217     LEX_EXIT(0, "");
 2218     lexEl.Value = -1 ;
 2219     return -1 ;
 2220 }
 2221 
 2222 int cplus::LexMeta ()
 2223 {
 2224     if ( lastContextPos && !lastContextPos->nbRef ) 
 2225         FreePos(lastContextPos);
 2226     lastContextPos = (PFILE_POSITION)0 ;
 2227     if ( tokenAhead ) 
 2228         ExtUnputBuf();
 2229 #   ifdef DUMP_COORD
 2230         if ( !lexCallLex && dumpCoord ) 
 2231             store_pos_as_comment(line, col, 0);
 2232 #   endif
 2233     
 2234     int _bidon = (oldLine = line, oldCol = col);
 2235     int _bidon1 = (oldLineEntry = line, oldColEntry = col);
 2236     
 2237     (tokenAhead || (LexComment(), tokenAhead = -1, TRACE_LEX(1)));
 2238     if ( !(keepCarriage) && !(keepAll) ) {
 2239         ptStockBuf = -1 ;
 2240         while ( c == '\t' || c == ' ' || c == '\r' || c == '\n' || c == '' ) 
 2241             NextChar();
 2242         ptStockBuf = -1 ;
 2243         lexEl.Erase();
 2244         tokenAhead = 0 ;
 2245         oldLine = line, oldCol = col ;
 2246         if ( !lexCallLex ) {
 2247             PUT_COORD_CALL ;
 2248         }
 2249     } else {
 2250         if ( !(keepAll) ) {
 2251             ptStockBuf = -1 ;
 2252             while ( c == '\t' || c == ' ' || c == '' ) 
 2253                 NextChar();
 2254             ptStockBuf = -1 ;
 2255             lexEl.Erase();
 2256             tokenAhead = 0 ;
 2257             oldLine = line, oldCol = col ;
 2258             if ( !lexCallLex ) {
 2259                 PUT_COORD_CALL ;
 2260             }
 2261         } else {
 2262             ptStockBuf = -1 ;
 2263             lexEl.Erase();
 2264             tokenAhead = 0 ;
 2265             if ( lastContextPos && !lastContextPos->nbRef ) 
 2266                 FreePos(lastContextPos);
 2267             lastContextPos = (PFILE_POSITION)0 ;
 2268         }
 2269     }
 2270     switch ( c ) {
 2271         case '$' : 
 2272             NextChar();
 2273             if ( !(c == '(') ) {
 2274                 while ( 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' || '0' <= c && c <= '9' || c == '_' ) {
 2275                     {
 2276                         lexEl.AddChar(c);
 2277                         NextChar();
 2278                     }
 2279                 }
 2280             } else {
 2281                 int nbPar = 0 ;
 2282                 {
 2283                     lexEl.AddChar(c);
 2284                     NextChar();
 2285                 }
 2286                 while ( c != EOF ) {
 2287                     switch ( c ) {
 2288                         case '(' : 
 2289                             nbPar++ ;
 2290                             {
 2291                                 lexEl.AddChar(c);
 2292                                 NextChar();
 2293                             }
 2294                             break ;
 2295                         case ')' : 
 2296                             if ( !nbPar ) {
 2297                                 {
 2298                                     lexEl.AddChar(c);
 2299                                     NextChar();
 2300                                 }
 2301                                 {
 2302                                     firstOnLine = 0 ;
 2303                                     tokenAhead = 7 ;
 2304                                     lexEl.Value = META ;
 2305                                     PUT_COORD_CALL ;
 2306                                     return (1);
 2307                                 }
 2308                             } else {
 2309                                 {
 2310                                     lexEl.AddChar(c);
 2311                                     NextChar();
 2312                                 }
 2313                                 nbPar-- ;
 2314                             }
 2315                             break ;
 2316                         default : 
 2317                             if ( c != EOF ) {
 2318                                 {
 2319                                     lexEl.AddChar(c);
 2320                                     NextChar();
 2321                                 }
 2322                             }
 2323                             break ;
 2324                     }
 2325                 }
 2326             }
 2327             {
 2328                 firstOnLine = 0 ;
 2329                 tokenAhead = 7 ;
 2330                 lexEl.Value = META ;
 2331                 PUT_COORD_CALL ;
 2332                 return (1);
 2333             }
 2334             break ;
 2335     }
 2336     line = oldLine ;
 2337     LEX_EXIT(0, "");
 2338     lexEl.Value = -1 ;
 2339     return -1 ;
 2340 }
 2341 
 2342 int cplus::LexPragma ()
 2343 {
 2344     if ( lastContextPos && !lastContextPos->nbRef ) 
 2345         FreePos(lastContextPos);
 2346     lastContextPos = (PFILE_POSITION)0 ;
 2347     if ( tokenAhead ) 
 2348         ExtUnputBuf();
 2349 #   ifdef DUMP_COORD
 2350         if ( !lexCallLex && dumpCoord ) 
 2351             store_pos_as_comment(line, col, 0);
 2352 #   endif
 2353     
 2354     int _bidon = (oldLine = line, oldCol = col);
 2355     int _bidon1 = (oldLineEntry = line, oldColEntry = col);
 2356     
 2357     tokenAhead = 0 ;
 2358     if ( LexMeta() != -1 ) {
 2359         tokenAhead = 8 ;
 2360         return 1 ;
 2361     }
 2362     ptStockBuf = -1 ;
 2363     while ( c == '\t' || c == ' ' || c == '' ) 
 2364         NextChar();
 2365     ptStockBuf = -1 ;
 2366     lexEl.Erase();
 2367     tokenAhead = 0 ;
 2368     oldLine = line, oldCol = col ;
 2369     if ( !lexCallLex ) {
 2370         PUT_COORD_CALL ;
 2371     }
 2372     if ( GetString("pretty", 1) && NextChar() ) {
 2373         {
 2374             firstOnLine = 0 ;
 2375             tokenAhead = 8 ;
 2376             lexEl.Value = PRAGMA_PRETTY ;
 2377             PUT_COORD_CALL ;
 2378             return (1);
 2379         }
 2380     } else if ( GetString("nopretty", 1) && NextChar() ) {
 2381         {
 2382             firstOnLine = 0 ;
 2383             tokenAhead = 8 ;
 2384             lexEl.Value = PRAGMA_NOPRETTY ;
 2385             PUT_COORD_CALL ;
 2386             return (1);
 2387         }
 2388     } else if ( GetString("config", 1) && NextChar() ) {
 2389         {
 2390             firstOnLine = 0 ;
 2391             tokenAhead = 8 ;
 2392             lexEl.Value = PRAGMA_CONFIG ;
 2393             PUT_COORD_CALL ;
 2394             return (1);
 2395         }
 2396     } else if ( GetString("tab_directive", 1) && NextChar() ) {
 2397         {
 2398             firstOnLine = 0 ;
 2399             tokenAhead = 8 ;
 2400             lexEl.Value = PRAGMA_TAB_DIRECTIVE ;
 2401             PUT_COORD_CALL ;
 2402             return (1);
 2403         }
 2404     } else if ( GetString("tab", 1) && NextChar() ) {
 2405         {
 2406             firstOnLine = 0 ;
 2407             tokenAhead = 8 ;
 2408             lexEl.Value = PRAGMA_TAB ;
 2409             PUT_COORD_CALL ;
 2410             return (1);
 2411         }
 2412     } else if ( GetString("range", 1) && NextChar() ) {
 2413         {
 2414             firstOnLine = 0 ;
 2415             tokenAhead = 8 ;
 2416             lexEl.Value = PRAGMA_RANGE ;
 2417             PUT_COORD_CALL ;
 2418             return (1);
 2419         }
 2420     } else if ( GetString("mode", 1) && NextChar() ) {
 2421         {
 2422             firstOnLine = 0 ;
 2423             tokenAhead = 8 ;
 2424             lexEl.Value = PRAGMA_MODE ;
 2425             PUT_COORD_CALL ;
 2426             return (1);
 2427         }
 2428     } else if ( GetString("brace_align", 1) && NextChar() ) {
 2429         {
 2430             firstOnLine = 0 ;
 2431             tokenAhead = 8 ;
 2432             lexEl.Value = PRAGMA_BRACE_ALIGN ;
 2433             PUT_COORD_CALL ;
 2434             return (1);
 2435         }
 2436     } else if ( GetString("simplify", 1) && NextChar() ) {
 2437         {
 2438             firstOnLine = 0 ;
 2439             tokenAhead = 8 ;
 2440             lexEl.Value = PRAGMA_SIMPLIFY ;
 2441             PUT_COORD_CALL ;
 2442             return (1);
 2443         }
 2444     } else if ( GetString("single_switch_indent", 1) && NextChar() ) {
 2445         {
 2446             firstOnLine = 0 ;
 2447             tokenAhead = 8 ;
 2448             lexEl.Value = PRAGMA_SINGLE_SWITCH_INDENT ;
 2449             PUT_COORD_CALL ;
 2450             return (1);
 2451         }
 2452     } else if ( GetString("assign_align", 1) && NextChar() ) {
 2453         {
 2454             firstOnLine = 0 ;
 2455             tokenAhead = 8 ;
 2456             lexEl.Value = PRAGMA_ASSIGN_ALIGN ;
 2457             PUT_COORD_CALL ;
 2458             return (1);
 2459         }
 2460     } else if ( GetString("decl_align", 1) && NextChar() ) {
 2461         {
 2462             firstOnLine = 0 ;
 2463             tokenAhead = 8 ;
 2464             lexEl.Value = PRAGMA_DECL_ALIGN ;
 2465             PUT_COORD_CALL ;
 2466             return (1);
 2467         }
 2468     } else if ( GetString("margin", 1) && NextChar() ) {
 2469         {
 2470             firstOnLine = 0 ;
 2471             tokenAhead = 8 ;
 2472             lexEl.Value = PRAGMA_MARGIN ;
 2473             PUT_COORD_CALL ;
 2474             return (1);
 2475         }
 2476     } else if ( GetString("comment", 1) && NextChar() ) {
 2477         ptStockBuf = -1 ;
 2478         while ( c == ' ' || c == '\t' ) 
 2479             NextChar();
 2480         ptStockBuf = -1 ;
 2481         lexEl.Erase();
 2482         tokenAhead = 0 ;
 2483         oldLine = line, oldCol = col ;
 2484         if ( !lexCallLex ) {
 2485             PUT_COORD_CALL ;
 2486         }
 2487         if ( GetString("start", 1) && NextChar() ) {
 2488             {
 2489                 firstOnLine = 0 ;
 2490                 tokenAhead = 8 ;
 2491                 lexEl.Value = PRAGMA_COMMENT_START ;
 2492                 PUT_COORD_CALL ;
 2493                 return (1);
 2494             }
 2495         } else if ( GetString("middle", 1) && NextChar() ) {
 2496             {
 2497                 firstOnLine = 0 ;
 2498                 tokenAhead = 8 ;
 2499                 lexEl.Value = PRAGMA_COMMENT_MIDDLE ;
 2500                 PUT_COORD_CALL ;
 2501                 return (1);
 2502             }
 2503         } else if ( GetString("end", 1) && NextChar() ) {
 2504             {
 2505                 firstOnLine = 0 ;
 2506                 tokenAhead = 8 ;
 2507                 lexEl.Value = PRAGMA_COMMENT_END ;
 2508                 PUT_COORD_CALL ;
 2509                 return (1);
 2510             }
 2511         } else if ( GetString("plus", 1) && NextChar() ) {
 2512             {
 2513                 firstOnLine = 0 ;
 2514                 tokenAhead = 8 ;
 2515                 lexEl.Value = PRAGMA_COMMENT_PLUS ;
 2516                 PUT_COORD_CALL ;
 2517                 return (1);
 2518             }
 2519         } else 
 2520             ;
 2521     } else if ( GetString("indent_function_type", 1) && NextChar() ) {
 2522         {
 2523             firstOnLine = 0 ;
 2524             tokenAhead = 8 ;
 2525             lexEl.Value = PRAGMA_INDENT_FUNCTION_TYPE ;
 2526             PUT_COORD_CALL ;
 2527             return (1);
 2528         }
 2529     } else if ( GetString("func_header", 1) && NextChar() ) {
 2530         {
 2531             firstOnLine = 0 ;
 2532             tokenAhead = 8 ;
 2533             lexEl.Value = PRAGMA_FUNC_HEADER ;
 2534             PUT_COORD_CALL ;
 2535             return (1);
 2536         }
 2537     } else if ( GetString("parameters_under_tab", 1) && NextChar() ) {
 2538         {
 2539             firstOnLine = 0 ;
 2540             tokenAhead = 8 ;
 2541             lexEl.Value = PRAGMA_PARAMETERS_UNDER ;
 2542             PUT_COORD_CALL ;
 2543             return (1);
 2544         }
 2545     } else if ( GetString("parameters", 1) && NextChar() ) {
 2546         {
 2547             firstOnLine = 0 ;
 2548             tokenAhead = 8 ;
 2549             lexEl.Value = PRAGMA_PARAMETERS ;
 2550             PUT_COORD_CALL ;
 2551             return (1);
 2552         }
 2553     } else if ( GetString("space_arrow", 1) && NextChar() ) {
 2554         {
 2555             firstOnLine = 0 ;
 2556             tokenAhead = 8 ;
 2557             lexEl.Value = PRAGMA_SPACE_ARROW ;
 2558             PUT_COORD_CALL ;
 2559             return (1);
 2560         }
 2561     } else if ( GetString("enum_vert", 1) && NextChar() ) {
 2562         {
 2563             firstOnLine = 0 ;
 2564             tokenAhead = 8 ;
 2565             lexEl.Value = PRAGMA_ENUM_VERT ;
 2566             PUT_COORD_CALL ;
 2567             return (1);
 2568         }
 2569     } else if ( c != EOF ) {
 2570         while ( !(c == '\n' || c == '\r') && c != EOF ) {
 2571             {
 2572                 lexEl.AddChar(c);
 2573                 NextChar();
 2574             }
 2575         }
 2576         {
 2577             firstOnLine = 0 ;
 2578             tokenAhead = 8 ;
 2579             lexEl.Value = PRAGMA_CONTENT ;
 2580             PUT_COORD_CALL ;
 2581             return (1);
 2582         }
 2583     } else 
 2584         ;
 2585     line = oldLine ;
 2586     LEX_EXIT(0, "");
 2587     lexEl.Value = -1 ;
 2588     return -1 ;
 2589 }
 2590 
 2591 int cplus::LexPragmaSmall ()
 2592 {
 2593     if ( lastContextPos && !lastContextPos->nbRef ) 
 2594         FreePos(lastContextPos);
 2595     lastContextPos = (PFILE_POSITION)0 ;
 2596     if ( tokenAhead ) 
 2597         ExtUnputBuf();
 2598 #   ifdef DUMP_COORD
 2599         if ( !lexCallLex && dumpCoord ) 
 2600             store_pos_as_comment(line, col, 0);
 2601 #   endif
 2602     
 2603     int _bidon = (oldLine = line, oldCol = col);
 2604     int _bidon1 = (oldLineEntry = line, oldColEntry = col);
 2605     
 2606     tokenAhead = 0 ;
 2607     if ( LexMeta() != -1 ) {
 2608         tokenAhead = 9 ;
 2609         return 1 ;
 2610     }
 2611     ptStockBuf = -1 ;
 2612     while ( c == ' ' || c == '\t' ) 
 2613         NextChar();
 2614     ptStockBuf = -1 ;
 2615     lexEl.Erase();
 2616     tokenAhead = 0 ;
 2617     oldLine = line, oldCol = col ;
 2618     if ( !lexCallLex ) {
 2619         PUT_COORD_CALL ;
 2620     }
 2621     while ( c != EOF && ('a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' || c == '_' || '0' <= c && c <= '9') && !(c == '\n' || c == '\r') ) {
 2622         {
 2623             lexEl.AddChar(c);
 2624             NextChar();
 2625         }
 2626     }
 2627     {
 2628         firstOnLine = 0 ;
 2629         tokenAhead = 9 ;
 2630         lexEl.Value = SMALL_PRAGMA_CONTENT ;
 2631         PUT_COORD_CALL ;
 2632         return (1);
 2633     }
 2634     line = oldLine ;
 2635     LEX_EXIT(0, "");
 2636     lexEl.Value = -1 ;
 2637     return -1 ;
 2638 }
 2639 
 2640 int cplus::LexUndef ()
 2641 {
 2642     if ( lastContextPos && !lastContextPos->nbRef ) 
 2643         FreePos(lastContextPos);
 2644     lastContextPos = (PFILE_POSITION)0 ;
 2645     if ( tokenAhead ) 
 2646         ExtUnputBuf();
 2647 #   ifdef DUMP_COORD
 2648         if ( !lexCallLex && dumpCoord ) 
 2649             store_pos_as_comment(line, col, 0);
 2650 #   endif
 2651     
 2652     int _bidon = (oldLine = line, oldCol = col);
 2653     int _bidon1 = (oldLineEntry = line, oldColEntry = col);
 2654     
 2655     tokenAhead = 0 ;
 2656     if ( LexMeta() != -1 ) {
 2657         tokenAhead = 10 ;
 2658         return 1 ;
 2659     }
 2660     ptStockBuf = -1 ;
 2661     while ( c == ' ' || c == '\t' || c == '' ) 
 2662         NextChar();
 2663     ptStockBuf = -1 ;
 2664     lexEl.Erase();
 2665     tokenAhead = 0 ;
 2666     oldLine = line, oldCol = col ;
 2667     if ( !lexCallLex ) {
 2668         PUT_COORD_CALL ;
 2669     }
 2670     while ( 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' || c == '_' || '0' <= c && c <= '9' ) {
 2671         {
 2672             lexEl.AddChar(c);
 2673             NextChar();
 2674         }
 2675     }
 2676     while ( c == ' ' || c == '\t' ) {
 2677         if ( !(c != EOF && NextChar()) ) 
 2678             ;
 2679     }
 2680     {
 2681         firstOnLine = 0 ;
 2682         tokenAhead = 10 ;
 2683         lexEl.Value = UNDEF_CONTENT ;
 2684         PUT_COORD_CALL ;
 2685         return (1);
 2686     }
 2687     line = oldLine ;
 2688     LEX_EXIT(0, "");
 2689     lexEl.Value = -1 ;
 2690     return -1 ;
 2691 }
 2692 
 2693 int cplus::PushArgument ()
 2694 {
 2695     if ( lastContextPos && !lastContextPos->nbRef ) 
 2696         FreePos(lastContextPos);
 2697     lastContextPos = (PFILE_POSITION)0 ;
 2698     if ( tokenAhead ) 
 2699         ExtUnputBuf();
 2700 #   ifdef DUMP_COORD
 2701         if ( !lexCallLex && dumpCoord ) 
 2702             store_pos_as_comment(line, col, 0);
 2703 #   endif
 2704     
 2705     int _bidon = (oldLine = line, oldCol = col);
 2706     int _bidon1 = (oldLineEntry = line, oldColEntry = col);
 2707     
 2708     tokenAhead = 0 ;
 2709     if ( LexMeta() != -1 ) {
 2710         tokenAhead = 11 ;
 2711         return 1 ;
 2712     }
 2713     if ( !(keepCarriage) ) {
 2714         ptStockBuf = -1 ;
 2715         while ( c == '\t' || c == ' ' || c == '\r' || c == '\n' || c == '' ) 
 2716             NextChar();
 2717         ptStockBuf = -1 ;
 2718         lexEl.Erase();
 2719         tokenAhead = 0 ;
 2720         oldLine = line, oldCol = col ;
 2721         if ( !lexCallLex ) {
 2722             PUT_COORD_CALL ;
 2723         }
 2724     } else {
 2725         if ( !(keepAll) ) {
 2726             ptStockBuf = -1 ;
 2727             while ( c == '\t' || c == ' ' || c == '' ) 
 2728                 NextChar();
 2729             ptStockBuf = -1 ;
 2730             lexEl.Erase();
 2731             tokenAhead = 0 ;
 2732             oldLine = line, oldCol = col ;
 2733             if ( !lexCallLex ) {
 2734                 PUT_COORD_CALL ;
 2735             }
 2736         } else {
 2737             ptStockBuf = -1 ;
 2738             lexEl.Erase();
 2739             tokenAhead = 0 ;
 2740             if ( lastContextPos && !lastContextPos->nbRef ) 
 2741                 FreePos(lastContextPos);
 2742             lastContextPos = (PFILE_POSITION)0 ;
 2743         }
 2744     }
 2745     if ( c != EOF ) {
 2746         while ( c != EOF && !(c == ',' || c == '\r' || c == '\n') ) {
 2747             {
 2748                 lexEl.AddChar(c);
 2749                 NextChar();
 2750             }
 2751         }
 2752         {
 2753             firstOnLine = 0 ;
 2754             tokenAhead = 11 ;
 2755             lexEl.Value = PUSH_ARGUMENT ;
 2756             PUT_COORD_CALL ;
 2757             return (1);
 2758         }
 2759     }
 2760     line = oldLine ;
 2761     LEX_EXIT(0, "");
 2762     lexEl.Value = -1 ;
 2763     return -1 ;
 2764 }
 2765 
 2766 int cplus::PushFunction ()
 2767 {
 2768     if ( lastContextPos && !lastContextPos->nbRef ) 
 2769         FreePos(lastContextPos);
 2770     lastContextPos = (PFILE_POSITION)0 ;
 2771     if ( tokenAhead ) 
 2772         ExtUnputBuf();
 2773 #   ifdef DUMP_COORD
 2774         if ( !lexCallLex && dumpCoord ) 
 2775             store_pos_as_comment(line, col, 0);
 2776 #   endif
 2777     
 2778     int _bidon = (oldLine = line, oldCol = col);
 2779     int _bidon1 = (oldLineEntry = line, oldColEntry = col);
 2780     
 2781     tokenAhead = 0 ;
 2782     if ( LexMeta() != -1 ) {
 2783         tokenAhead = 12 ;
 2784         return 1 ;
 2785     }
 2786     if ( !(keepCarriage) ) {
 2787         ptStockBuf = -1 ;
 2788         while ( c == '\t' || c == ' ' || c == '\r' || c == '\n' || c == '' ) 
 2789             NextChar();
 2790         ptStockBuf = -1 ;
 2791         lexEl.Erase();
 2792         tokenAhead = 0 ;
 2793         oldLine = line, oldCol = col ;
 2794         if ( !lexCallLex ) {
 2795             PUT_COORD_CALL ;
 2796         }
 2797     } else {
 2798         if ( !(keepAll) ) {
 2799             ptStockBuf = -1 ;
 2800             while ( c == '\t' || c == ' ' || c == '' ) 
 2801                 NextChar();
 2802             ptStockBuf = -1 ;
 2803             lexEl.Erase();
 2804             tokenAhead = 0 ;
 2805             oldLine = line, oldCol = col ;
 2806             if ( !lexCallLex ) {
 2807                 PUT_COORD_CALL ;
 2808             }
 2809         } else {
 2810             ptStockBuf = -1 ;
 2811             lexEl.Erase();
 2812             tokenAhead = 0 ;
 2813             if ( lastContextPos && !lastContextPos->nbRef ) 
 2814                 FreePos(lastContextPos);
 2815             lastContextPos = (PFILE_POSITION)0 ;
 2816         }
 2817     }
 2818     if ( GetString("NPUSH_CALL_AFF_VERIF", 1) && NextChar() ) {
 2819         {
 2820             lexEl.AddString("NPUSH_CALL_AFF_VERIF");
 2821         }
 2822         {
 2823             firstOnLine = 0 ;
 2824             tokenAhead = 12 ;
 2825             lexEl.Value = PUSH_FUNCTION ;
 2826             PUT_COORD_CALL ;
 2827             return (1);
 2828         }
 2829     } else if ( GetString("NPUSH_CALL_AFF", 1) && NextChar() ) {
 2830         {
 2831             lexEl.AddString("NPUSH_CALL_AFF");
 2832         }
 2833         {
 2834             firstOnLine = 0 ;
 2835             tokenAhead = 12 ;
 2836             lexEl.Value = PUSH_FUNCTION ;
 2837             PUT_COORD_CALL ;
 2838             return (1);
 2839         }
 2840     } else if ( GetString("PUSH_CALL_AFF_VERIF", 1) && NextChar() ) {
 2841         {
 2842             lexEl.AddString("PUSH_CALL_AFF_VERIF");
 2843         }
 2844         {
 2845             firstOnLine = 0 ;
 2846             tokenAhead = 12 ;
 2847             lexEl.Value = PUSH_FUNCTION ;
 2848             PUT_COORD_CALL ;
 2849             return (1);
 2850         }
 2851     } else if ( GetString("PUSH_CALL_AFF", 1) && NextChar() ) {
 2852         {
 2853             lexEl.AddString("PUSH_CALL_AFF");
 2854         }
 2855         {
 2856             firstOnLine = 0 ;
 2857             tokenAhead = 12 ;
 2858             lexEl.Value = PUSH_FUNCTION ;
 2859             PUT_COORD_CALL ;
 2860             return (1);
 2861         }
 2862     } else 
 2863         ;
 2864     line = oldLine ;
 2865     LEX_EXIT(0, "");
 2866     lexEl.Value = -1 ;
 2867     return -1 ;
 2868 }
 2869 
 2870 int cplus::specific ()
 2871 {
 2872     if ( lastContextPos && !lastContextPos->nbRef ) 
 2873         FreePos(lastContextPos);
 2874     lastContextPos = (PFILE_POSITION)0 ;
 2875     if ( tokenAhead ) 
 2876         ExtUnputBuf();
 2877 #   ifdef DUMP_COORD
 2878         if ( !lexCallLex && dumpCoord ) 
 2879             store_pos_as_comment(line, col, 0);
 2880 #   endif
 2881     
 2882     int _bidon = (oldLine = line, oldCol = col);
 2883     int _bidon1 = (oldLineEntry = line, oldColEntry = col);
 2884     
 2885     tokenAhead = 0 ;
 2886     if ( LexMeta() != -1 ) {
 2887         tokenAhead = 13 ;
 2888         return 1 ;
 2889     }
 2890     if ( !(keepCarriage) ) {
 2891         ptStockBuf = -1 ;
 2892         while ( c == '\t' || c == ' ' || c == '\r' || c == '\n' || c == '' ) 
 2893             NextChar();
 2894         ptStockBuf = -1 ;
 2895         lexEl.Erase();
 2896         tokenAhead = 0 ;
 2897         oldLine = line, oldCol = col ;
 2898         if ( !lexCallLex ) {
 2899             PUT_COORD_CALL ;
 2900         }
 2901     } else {
 2902         if ( !(keepAll) ) {
 2903             ptStockBuf = -1 ;
 2904             while ( c == '\t' || c == ' ' || c == '' ) 
 2905                 NextChar();
 2906             ptStockBuf = -1 ;
 2907             lexEl.Erase();
 2908             tokenAhead = 0 ;
 2909             oldLine = line, oldCol = col ;
 2910             if ( !lexCallLex ) {
 2911                 PUT_COORD_CALL ;
 2912             }
 2913         } else {
 2914             ptStockBuf = -1 ;
 2915             lexEl.Erase();
 2916             tokenAhead = 0 ;
 2917             if ( lastContextPos && !lastContextPos->nbRef ) 
 2918                 FreePos(lastContextPos);
 2919             lastContextPos = (PFILE_POSITION)0 ;
 2920         }
 2921     }
 2922     if ( GetString("DECLARE_DYNAMIC", 1) && NextChar() ) {
 2923         {
 2924             firstOnLine = 0 ;
 2925             tokenAhead = 13 ;
 2926             lexEl.Value = DECLARE_DYNAMIC ;
 2927             PUT_COORD_CALL ;
 2928             return (1);
 2929         }
 2930     } else if ( GetString("DECLARE_SERIAL", 1) && NextChar() ) {
 2931         {
 2932             firstOnLine = 0 ;
 2933             tokenAhead = 13 ;
 2934             lexEl.Value = DECLARE_SERIAL ;
 2935             PUT_COORD_CALL ;
 2936             return (1);
 2937         }
 2938     } else if ( GetString("IMPLEMENT_DYNAMIC", 1) && NextChar() ) {
 2939         {
 2940             firstOnLine = 0 ;
 2941             tokenAhead = 13 ;
 2942             lexEl.Value = IMPLEMENT_DYNAMIC ;
 2943             PUT_COORD_CALL ;
 2944             return (1);
 2945         }
 2946     } else if ( GetString("IMPLEMENT_DYNCREATE", 1) && NextChar() ) {
 2947         {
 2948             firstOnLine = 0 ;
 2949             tokenAhead = 13 ;
 2950             lexEl.Value = IMPLEMENT_DYNCREATE ;
 2951             PUT_COORD_CALL ;
 2952             return (1);
 2953         }
 2954     } else if ( GetString("IMPLEMENT_SERIAL", 1) && NextChar() ) {
 2955         {
 2956             firstOnLine = 0 ;
 2957             tokenAhead = 13 ;
 2958             lexEl.Value = IMPLEMENT_SERIAL ;
 2959             PUT_COORD_CALL ;
 2960             return (1);
 2961         }
 2962     } else if ( GetString("DECLARE_MESSAGE_MAP", 1) && NextChar() ) {
 2963         {
 2964             firstOnLine = 0 ;
 2965             tokenAhead = 13 ;
 2966             lexEl.Value = DECLARE_MESSAGE_MAP ;
 2967             PUT_COORD_CALL ;
 2968             return (1);
 2969         }
 2970     } else if ( GetString("BEGIN_MESSAGE_MAP", 1) && NextChar() ) {
 2971         {
 2972             firstOnLine = 0 ;
 2973             tokenAhead = 13 ;
 2974             lexEl.Value = BEGIN_MESSAGE_MAP ;
 2975             PUT_COORD_CALL ;
 2976             return (1);
 2977         }
 2978     } else if ( GetString("END_MESSAGE_MAP", 1) && NextChar() ) {
 2979         {
 2980             firstOnLine = 0 ;
 2981             tokenAhead = 13 ;
 2982             lexEl.Value = END_MESSAGE_MAP ;
 2983             PUT_COORD_CALL ;
 2984             return (1);
 2985         }
 2986     } else if ( GetString("CATCH_ALL", 1) && NextChar() ) {
 2987         {
 2988             firstOnLine = 0 ;
 2989             tokenAhead = 13 ;
 2990             lexEl.Value = CATCH_ALL ;
 2991             PUT_COORD_CALL ;
 2992             return (1);
 2993         }
 2994     } else if ( GetString("CATCH", 1) && NextChar() ) {
 2995         {
 2996             firstOnLine = 0 ;
 2997             tokenAhead = 13 ;
 2998             lexEl.Value = CATCH_UPPER ;
 2999             PUT_COORD_CALL ;
 3000             return (1);
 3001         }
 3002     } else if ( GetString("AND_CATCH", 1) && NextChar() ) {
 3003         {
 3004             firstOnLine = 0 ;
 3005             tokenAhead = 13 ;
 3006             lexEl.Value = AND_CATCH ;
 3007             PUT_COORD_CALL ;
 3008             return (1);
 3009         }
 3010     } else if ( GetString("END_CATCH_ALL", 1) && NextChar() ) {
 3011         {
 3012             firstOnLine = 0 ;
 3013             tokenAhead = 13 ;
 3014             lexEl.Value = END_CATCH_ALL ;
 3015             PUT_COORD_CALL ;
 3016             return (1);
 3017         }
 3018     } else if ( GetString("END_CATCH", 1) && NextChar() ) {
 3019         {
 3020             firstOnLine = 0 ;
 3021             tokenAhead = 13 ;
 3022             lexEl.Value = END_CATCH ;
 3023             PUT_COORD_CALL ;
 3024             return (1);
 3025         }
 3026     } else if ( GetString("TRY", 1) && NextChar() ) {
 3027         {
 3028             firstOnLine = 0 ;
 3029             tokenAhead = 13 ;
 3030             lexEl.Value = TRY_UPPER ;
 3031             PUT_COORD_CALL ;
 3032             return (1);
 3033         }
 3034     } else 
 3035         ;
 3036     line = oldLine ;
 3037     LEX_EXIT(0, "");
 3038     lexEl.Value = -1 ;
 3039     return -1 ;
 3040 }
 3041 
 3042 int cplus::the_exit ()
 3043 {
 3044     if ( lastContextPos && !lastContextPos->nbRef ) 
 3045         FreePos(lastContextPos);
 3046     lastContextPos = (PFILE_POSITION)0 ;
 3047     if ( tokenAhead ) 
 3048         ExtUnputBuf();
 3049 #   ifdef DUMP_COORD
 3050         if ( !lexCallLex && dumpCoord ) 
 3051             store_pos_as_comment(line, col, 0);
 3052 #   endif
 3053     
 3054     int _bidon = (oldLine = line, oldCol = col);
 3055     int _bidon1 = (oldLineEntry = line, oldColEntry = col);
 3056     
 3057     tokenAhead = 0 ;
 3058     if ( LexMeta() != -1 ) {
 3059         tokenAhead = 14 ;
 3060         return 1 ;
 3061     }
 3062     if ( !(keepCarriage) ) {
 3063         ptStockBuf = -1 ;
 3064         while ( c == '\t' || c == ' ' || c == '\r' || c == '\n' || c == '' ) 
 3065             NextChar();
 3066         ptStockBuf = -1 ;
 3067         lexEl.Erase();
 3068         tokenAhead = 0 ;
 3069         oldLine = line, oldCol = col ;
 3070         if ( !lexCallLex ) {
 3071             PUT_COORD_CALL ;
 3072         }
 3073     } else {
 3074         if ( !(keepAll) ) {
 3075             ptStockBuf = -1 ;
 3076             while ( c == '\t' || c == ' ' || c == '' ) 
 3077                 NextChar();
 3078             ptStockBuf = -1 ;
 3079             lexEl.Erase();
 3080             tokenAhead = 0 ;
 3081             oldLine = line, oldCol = col ;
 3082             if ( !lexCallLex ) {
 3083                 PUT_COORD_CALL ;
 3084             }
 3085         } else {
 3086             ptStockBuf = -1 ;
 3087             lexEl.Erase();
 3088             tokenAhead = 0 ;
 3089             if ( lastContextPos && !lastContextPos->nbRef ) 
 3090                 FreePos(lastContextPos);
 3091             lastContextPos = (PFILE_POSITION)0 ;
 3092         }
 3093     }
 3094     if ( GetString("TOKEN_EXIT", 1) && NextChar() ) {
 3095         {
 3096             lexEl.AddString("TOKEN_EXIT");
 3097         }
 3098     } else if ( GetString("PROG_EXIT", 1) && NextChar() ) {
 3099         {
 3100             lexEl.AddString("PROG_EXIT");
 3101         }
 3102     } else if ( GetString("CASE_EXIT", 1) && NextChar() ) {
 3103         {
 3104             lexEl.AddString("CASE_EXIT");
 3105         }
 3106     } else if ( GetString("LEX_EXIT", 1) && NextChar() ) {
 3107         {
 3108             lexEl.AddString("LEX_EXIT");
 3109         }
 3110     } else if ( c != EOF ) {
 3111         goto fin ;
 3112     } else 
 3113         ;
 3114     {
 3115         firstOnLine = 0 ;
 3116         tokenAhead = 14 ;
 3117         lexEl.Value = FUNC_SPEC ;
 3118         PUT_COORD_CALL ;
 3119         return (1);
 3120     }
 3121 fin : 
 3122     line = oldLine ;
 3123     LEX_EXIT(0, "");
 3124     lexEl.Value = -1 ;
 3125     return -1 ;
 3126 }
 3127 
 3128 /* 
 3129    -- 0 -- bidon
 3130        META
 3131        PLUS____TIRETIRETIRETIRETIRETIRE____
 3132    -- 1 -- parse_entry
 3133        ALWAYS
 3134    -- 2 -- abstract_declarator
 3135        ALWAYS
 3136    -- 3 -- additive_expression
 3137        META
 3138        IDENT
 3139        STRING
 3140        CHARACT
 3141        ULINTEGER
 3142        ULLINTEGER
 3143        LLINTEGER
 3144        LINTEGER
 3145        UINTEGER
 3146        FLOATVAL
 3147        INTEGER
 3148        ULHEXA
 3149        ULLHEXA
 3150        LLHEXA
 3151        LHEXA
 3152        UHEXA
 3153        HEXA
 3154        ULLOCTAL
 3155        LLOCTAL
 3156        ULOCTAL
 3157        LOCTAL
 3158        UOCTAL
 3159        OCTAL
 3160        DOUBLE
 3161        INT
 3162        CHAR
 3163        FLOAT
 3164        VOID
 3165        DPOIDPOI
 3166        LONG
 3167        SIGNED
 3168        UNSIGNED
 3169        SHORT
 3170        ETOI
 3171        ETCO
 3172        TILD
 3173        OPERATOR
 3174        POUV
 3175        TIRE
 3176        PLUS
 3177        EXCL
 3178        PLUSPLUS
 3179        TIRETIRE
 3180        SIZEOF
 3181        NEW
 3182        DELETE
 3183        VA_ARG
 3184    -- 4 -- alloc_expression
 3185        META
 3186        DPOIDPOI
 3187        NEW
 3188        DELETE
 3189    -- 5 -- allocation_expression
 3190        META
 3191        NEW
 3192    -- 6 -- and_expression
 3193        META
 3194        IDENT
 3195        STRING
 3196        CHARACT
 3197        ULINTEGER
 3198        ULLINTEGER
 3199        LLINTEGER
 3200        LINTEGER
 3201        UINTEGER
 3202        FLOATVAL
 3203        INTEGER
 3204        ULHEXA
 3205        ULLHEXA
 3206        LLHEXA
 3207        LHEXA
 3208        UHEXA
 3209        HEXA
 3210        ULLOCTAL
 3211        LLOCTAL
 3212        ULOCTAL
 3213        LOCTAL
 3214        UOCTAL
 3215        OCTAL
 3216        DOUBLE
 3217        INT
 3218        CHAR
 3219        FLOAT
 3220        VOID
 3221        DPOIDPOI
 3222        LONG
 3223        SIGNED
 3224        UNSIGNED
 3225        SHORT
 3226        ETOI
 3227        ETCO
 3228        TILD
 3229        OPERATOR
 3230        POUV
 3231        TIRE
 3232        PLUS
 3233        EXCL
 3234        PLUSPLUS
 3235        TIRETIRE
 3236        SIZEOF
 3237        NEW
 3238        DELETE
 3239        VA_ARG
 3240    -- 7 -- arg_declarator
 3241        META
 3242        IDENT
 3243        REGISTER
 3244        VOLATILE
 3245        INLINE
 3246        VIRTUAL
 3247        FRIEND
 3248        CONST
 3249        ENUM
 3250        STRUCT
 3251        UNION
 3252        CLASS
 3253        DOUBLE
 3254        INT
 3255        CHAR
 3256        FLOAT
 3257        VOID
 3258        DPOIDPOI
 3259        LONG
 3260        SIGNED
 3261        UNSIGNED
 3262        SHORT
 3263    -- 8 -- arg_declarator_base
 3264        META
 3265        IDENT
 3266        REGISTER
 3267        VOLATILE
 3268        INLINE
 3269        VIRTUAL
 3270        FRIEND
 3271        CONST
 3272        ENUM
 3273        STRUCT
 3274        UNION
 3275        CLASS
 3276        DOUBLE
 3277        INT
 3278        CHAR
 3279        FLOAT
 3280        VOID
 3281        DPOIDPOI
 3282        LONG
 3283        SIGNED
 3284        UNSIGNED
 3285        SHORT
 3286    -- 9 -- arg_declarator_followed
 3287        META
 3288        IDENT
 3289        REGISTER
 3290        VOLATILE
 3291        INLINE
 3292        VIRTUAL
 3293        FRIEND
 3294        CONST
 3295        ENUM
 3296        STRUCT
 3297        UNION
 3298        CLASS
 3299        DOUBLE
 3300        INT
 3301        CHAR
 3302        FLOAT
 3303        VOID
 3304        DPOIDPOI
 3305        LONG
 3306        SIGNED
 3307        UNSIGNED
 3308        SHORT
 3309    -- 10 -- arg_declarator_type
 3310        META
 3311        IDENT
 3312        REGISTER
 3313        VOLATILE
 3314        INLINE
 3315        VIRTUAL
 3316        FRIEND
 3317        CONST
 3318        ENUM
 3319        STRUCT
 3320        UNION
 3321        CLASS
 3322        DOUBLE
 3323        INT
 3324        CHAR
 3325        FLOAT
 3326        VOID
 3327        DPOIDPOI
 3328        LONG
 3329        SIGNED
 3330        UNSIGNED
 3331        SHORT
 3332    -- 11 -- arg_typ_declarator
 3333        META
 3334        POUV
 3335    -- 12 -- arg_typ_list
 3336        ALWAYS
 3337    -- 13 -- asm_declaration
 3338        META
 3339        ASM
 3340    -- 14 -- assignment_end
 3341        META
 3342        SLASEGAL
 3343        EGAL
 3344        ETOIEGAL
 3345        POURCEGAL
 3346        PLUSEGAL
 3347        TIREEGAL
 3348        INFEINFEEGAL
 3349        SUPESUPEEGAL
 3350        ETCOEGAL
 3351        VBAREGAL
 3352        CHAPEGAL
 3353    -- 15 -- assignment_expression
 3354        META
 3355        IDENT
 3356        STRING
 3357        CHARACT
 3358        ULINTEGER
 3359        ULLINTEGER
 3360        LLINTEGER
 3361        LINTEGER
 3362        UINTEGER
 3363        FLOATVAL
 3364        INTEGER
 3365        ULHEXA
 3366        ULLHEXA
 3367        LLHEXA
 3368        LHEXA
 3369        UHEXA
 3370        HEXA
 3371        ULLOCTAL
 3372        LLOCTAL
 3373        ULOCTAL
 3374        LOCTAL
 3375        UOCTAL
 3376        OCTAL
 3377        DOUBLE
 3378        INT
 3379        CHAR
 3380        FLOAT
 3381        VOID
 3382        DPOIDPOI
 3383        LONG
 3384        SIGNED
 3385        UNSIGNED
 3386        SHORT
 3387        ETOI
 3388        ETCO
 3389        TILD
 3390        OPERATOR
 3391        POUV
 3392        TIRE
 3393        PLUS
 3394        EXCL
 3395        PLUSPLUS
 3396        TIRETIRE
 3397        SIZEOF
 3398        NEW
 3399        DELETE
 3400        VA_ARG
 3401    -- 16 -- base_specifier
 3402        META
 3403        IDENT
 3404        VIRTUAL
 3405        DPOIDPOI
 3406        PRIVATE
 3407        PROTECTED
 3408        PUBLIC
 3409    -- 17 -- base_specifier_elem
 3410        META
 3411        IDENT
 3412        VIRTUAL
 3413        DPOIDPOI
 3414        PRIVATE
 3415        PROTECTED
 3416        PUBLIC
 3417    -- 18 -- bit_field_decl
 3418        META
 3419        IDENT
 3420    -- 19 -- cast_expression
 3421        META
 3422        IDENT
 3423        STRING
 3424        CHARACT
 3425        ULINTEGER
 3426        ULLINTEGER
 3427        LLINTEGER
 3428        LINTEGER
 3429        UINTEGER
 3430        FLOATVAL
 3431        INTEGER
 3432        ULHEXA
 3433        ULLHEXA
 3434        LLHEXA
 3435        LHEXA
 3436        UHEXA
 3437        HEXA
 3438        ULLOCTAL
 3439        LLOCTAL
 3440        ULOCTAL
 3441        LOCTAL
 3442        UOCTAL
 3443        OCTAL
 3444        DOUBLE
 3445        INT
 3446        CHAR
 3447        FLOAT
 3448        VOID
 3449        DPOIDPOI
 3450        LONG
 3451        SIGNED
 3452        UNSIGNED
 3453        SHORT
 3454        ETOI
 3455        ETCO
 3456        TILD
 3457        OPERATOR
 3458        POUV
 3459        TIRE
 3460        PLUS
 3461        EXCL
 3462        PLUSPLUS
 3463        TIRETIRE
 3464        SIZEOF
 3465        NEW
 3466        DELETE
 3467        VA_ARG
 3468    -- 20 -- cast_expression_value
 3469        META
 3470        POUV
 3471    -- 21 -- catch_unit
 3472        META
 3473        CATCH_ALL
 3474        CATCH_UPPER
 3475        AND_CATCH
 3476    -- 22 -- catch_unit_ansi
 3477        META
 3478        CATCH
 3479    -- 23 -- class_declaration
 3480        META
 3481        STRUCT
 3482        UNION
 3483        CLASS
 3484    -- 24 -- comment_eater
 3485        ALWAYS
 3486    -- 25 -- complete_class_name
 3487        META
 3488        IDENT
 3489        DPOIDPOI
 3490    -- 26 -- compound_statement
 3491        META
 3492        AOUV
 3493    -- 27 -- conditional_expression
 3494        META
 3495        IDENT
 3496        STRING
 3497        CHARACT
 3498        ULINTEGER
 3499        ULLINTEGER
 3500        LLINTEGER
 3501        LINTEGER
 3502        UINTEGER
 3503        FLOATVAL
 3504        INTEGER
 3505        ULHEXA
 3506        ULLHEXA
 3507        LLHEXA
 3508        LHEXA
 3509        UHEXA
 3510        HEXA
 3511        ULLOCTAL
 3512        LLOCTAL
 3513        ULOCTAL
 3514        LOCTAL
 3515        UOCTAL
 3516        OCTAL
 3517        DOUBLE
 3518        INT
 3519        CHAR
 3520        FLOAT
 3521        VOID
 3522        DPOIDPOI
 3523        LONG
 3524        SIGNED
 3525        UNSIGNED
 3526        SHORT
 3527        ETOI
 3528        ETCO
 3529        TILD
 3530        OPERATOR
 3531        POUV
 3532        TIRE
 3533        PLUS
 3534        EXCL
 3535        PLUSPLUS
 3536        TIRETIRE
 3537        SIZEOF
 3538        NEW
 3539        DELETE
 3540        VA_ARG
 3541    -- 28 -- const_or_volatile
 3542        META
 3543        VOLATILE
 3544        CONST
 3545    -- 29 -- constan
 3546        META
 3547        CHARACT
 3548        ULINTEGER
 3549        ULLINTEGER
 3550        LLINTEGER
 3551        LINTEGER
 3552        UINTEGER
 3553        FLOATVAL
 3554        INTEGER
 3555        ULHEXA
 3556        ULLHEXA
 3557        LLHEXA
 3558        LHEXA
 3559        UHEXA
 3560        HEXA
 3561        ULLOCTAL
 3562        LLOCTAL
 3563        ULOCTAL
 3564        LOCTAL
 3565        UOCTAL
 3566        OCTAL
 3567    -- 30 -- ctor_initializer
 3568        ALWAYS
 3569    -- 31 -- data_decl_exotic
 3570        META
 3571        DECLARE_DYNAMIC
 3572        DECLARE_SERIAL
 3573        IMPLEMENT_DYNAMIC
 3574        IMPLEMENT_DYNCREATE
 3575        IMPLEMENT_SERIAL
 3576        DECLARE_MESSAGE_MAP
 3577        BEGIN_MESSAGE_MAP
 3578        END_MESSAGE_MAP
 3579        CATCH_ALL
 3580        CATCH_UPPER
 3581        AND_CATCH
 3582    -- 32 -- data_decl_sc_decl
 3583        META
 3584        IDENT
 3585        AUTO
 3586        STATIC
 3587        EXTERN
 3588        REGISTER
 3589        VOLATILE
 3590        INLINE
 3591        VIRTUAL
 3592        FRIEND
 3593        CONST
 3594        ETOI
 3595        ETCO
 3596        TILD
 3597        OPERATOR
 3598        POUV
 3599    -- 33 -- data_decl_sc_ty_decl
 3600        META
 3601        IDENT
 3602        AUTO
 3603        STATIC
 3604        EXTERN
 3605        REGISTER
 3606        VOLATILE
 3607        INLINE
 3608        VIRTUAL
 3609        FRIEND
 3610        CONST
 3611        ENUM
 3612        STRUCT
 3613        UNION
 3614        CLASS
 3615        DOUBLE
 3616        INT
 3617        CHAR
 3618        FLOAT
 3619        VOID
 3620        DPOIDPOI
 3621        LONG
 3622        SIGNED
 3623        UNSIGNED
 3624        SHORT
 3625    -- 34 -- data_declaration
 3626        ALWAYS
 3627    -- 35 -- data_declaration_for
 3628        META
 3629        IDENT
 3630        AUTO
 3631        STATIC
 3632        EXTERN
 3633        REGISTER
 3634        VOLATILE
 3635        INLINE
 3636        VIRTUAL
 3637        FRIEND
 3638        CONST
 3639        ENUM
 3640        STRUCT
 3641        UNION
 3642        CLASS
 3643        DOUBLE
 3644        INT
 3645        CHAR
 3646        FLOAT
 3647        VOID
 3648        DPOIDPOI
 3649        LONG
 3650        SIGNED
 3651        UNSIGNED
 3652        SHORT
 3653    -- 36 -- data_declaration_strict
 3654        ALWAYS
 3655    -- 37 -- deallocation_expression
 3656        META
 3657        DELETE
 3658    -- 38 -- declarator
 3659        META
 3660        IDENT
 3661        REGISTER
 3662        VOLATILE
 3663        INLINE
 3664        VIRTUAL
 3665        FRIEND
 3666        CONST
 3667        ETOI
 3668        ETCO
 3669        TILD
 3670        OPERATOR
 3671        POUV
 3672    -- 39 -- declarator_follow
 3673        ALWAYS
 3674    -- 40 -- declarator_list
 3675        META
 3676        IDENT
 3677        REGISTER
 3678        VOLATILE
 3679        INLINE
 3680        VIRTUAL
 3681        FRIEND
 3682        CONST
 3683        ETOI
 3684        ETCO
 3685        TILD
 3686        OPERATOR
 3687        POUV
 3688    -- 41 -- declarator_list_init
 3689        META
 3690        IDENT
 3691        REGISTER
 3692        VOLATILE
 3693        INLINE
 3694        VIRTUAL
 3695        FRIEND
 3696        CONST
 3697        ETOI
 3698        ETCO
 3699        TILD
 3700        OPERATOR
 3701        POUV
 3702    -- 42 -- declarator_value
 3703        META
 3704        IDENT
 3705        REGISTER
 3706        VOLATILE
 3707        INLINE
 3708        VIRTUAL
 3709        FRIEND
 3710        CONST
 3711        ETOI
 3712        ETCO
 3713        TILD
 3714        OPERATOR
 3715        POUV
 3716    -- 43 -- define_dir
 3717        META
 3718        DEFINE_DIR
 3719    -- 44 -- directive
 3720        META
 3721        INCLUDE_DIR
 3722        LINE_DIR
 3723        PRAGMA_DIR
 3724        ERROR_DIR
 3725        DEFINE_DIR
 3726        UNDEF_DIR
 3727    -- 45 -- end_pragma
 3728        META
 3729        PRAGMA_DIR
 3730    -- 46 -- enum_val
 3731        META
 3732        IDENT
 3733    -- 47 -- equality_expression
 3734        META
 3735        IDENT
 3736        STRING
 3737        CHARACT
 3738        ULINTEGER
 3739        ULLINTEGER
 3740        LLINTEGER
 3741        LINTEGER
 3742        UINTEGER
 3743        FLOATVAL
 3744        INTEGER
 3745        ULHEXA
 3746        ULLHEXA
 3747        LLHEXA
 3748        LHEXA
 3749        UHEXA
 3750        HEXA
 3751        ULLOCTAL
 3752        LLOCTAL
 3753        ULOCTAL
 3754        LOCTAL
 3755        UOCTAL
 3756        OCTAL
 3757        DOUBLE
 3758        INT
 3759        CHAR
 3760        FLOAT
 3761        VOID
 3762        DPOIDPOI
 3763        LONG
 3764        SIGNED
 3765        UNSIGNED
 3766        SHORT
 3767        ETOI
 3768        ETCO
 3769        TILD
 3770        OPERATOR
 3771        POUV
 3772        TIRE
 3773        PLUS
 3774        EXCL
 3775        PLUSPLUS
 3776        TIRETIRE
 3777        SIZEOF
 3778        NEW
 3779        DELETE
 3780        VA_ARG
 3781    -- 48 -- exception
 3782        META
 3783        TRY_UPPER
 3784    -- 49 -- exception_ansi
 3785        META
 3786        TRY
 3787    -- 50 -- exception_list
 3788        META
 3789        THROW
 3790    -- 51 -- exclusive_or_expression
 3791        META
 3792        IDENT
 3793        STRING
 3794        CHARACT
 3795        ULINTEGER
 3796        ULLINTEGER
 3797        LLINTEGER
 3798        LINTEGER
 3799        UINTEGER
 3800        FLOATVAL
 3801        INTEGER
 3802        ULHEXA
 3803        ULLHEXA
 3804        LLHEXA
 3805        LHEXA
 3806        UHEXA
 3807        HEXA
 3808        ULLOCTAL
 3809        LLOCTAL
 3810        ULOCTAL
 3811        LOCTAL
 3812        UOCTAL
 3813        OCTAL
 3814        DOUBLE
 3815        INT
 3816        CHAR
 3817        FLOAT
 3818        VOID
 3819        DPOIDPOI
 3820        LONG
 3821        SIGNED
 3822        UNSIGNED
 3823        SHORT
 3824        ETOI
 3825        ETCO
 3826        TILD
 3827        OPERATOR
 3828        POUV
 3829        TIRE
 3830        PLUS
 3831        EXCL
 3832        PLUSPLUS
 3833        TIRETIRE
 3834        SIZEOF
 3835        NEW
 3836        DELETE
 3837        VA_ARG
 3838    -- 52 -- expression
 3839        META
 3840        IDENT
 3841        STRING
 3842        CHARACT
 3843        ULINTEGER
 3844        ULLINTEGER
 3845        LLINTEGER
 3846        LINTEGER
 3847        UINTEGER
 3848        FLOATVAL
 3849        INTEGER
 3850        ULHEXA
 3851        ULLHEXA
 3852        LLHEXA
 3853        LHEXA
 3854        UHEXA
 3855        HEXA
 3856        ULLOCTAL
 3857        LLOCTAL
 3858        ULOCTAL
 3859        LOCTAL
 3860        UOCTAL
 3861        OCTAL
 3862        DOUBLE
 3863        INT
 3864        CHAR
 3865        FLOAT
 3866        VOID
 3867        DPOIDPOI
 3868        LONG
 3869        SIGNED
 3870        UNSIGNED
 3871        SHORT
 3872        ETOI
 3873        ETCO
 3874        TILD
 3875        OPERATOR
 3876        POUV
 3877        TIRE
 3878        PLUS
 3879        EXCL
 3880        PLUSPLUS
 3881        TIRETIRE
 3882        SIZEOF
 3883        NEW
 3884        DELETE
 3885        VA_ARG
 3886    -- 53 -- expression_for
 3887        META
 3888        IDENT
 3889        STRING
 3890        CHARACT
 3891        ULINTEGER
 3892        ULLINTEGER
 3893        LLINTEGER
 3894        LINTEGER
 3895        UINTEGER
 3896        FLOATVAL
 3897        INTEGER
 3898        ULHEXA
 3899        ULLHEXA
 3900        LLHEXA
 3901        LHEXA
 3902        UHEXA
 3903        HEXA
 3904        ULLOCTAL
 3905        LLOCTAL
 3906        ULOCTAL
 3907        LOCTAL
 3908        UOCTAL
 3909        OCTAL
 3910        DOUBLE
 3911        INT
 3912        CHAR
 3913        FLOAT
 3914        VOID
 3915        DPOIDPOI
 3916        LONG
 3917        SIGNED
 3918        UNSIGNED
 3919        SHORT
 3920        ETOI
 3921        ETCO
 3922        TILD
 3923        OPERATOR
 3924        POUV
 3925        TIRE
 3926        PLUS
 3927        EXCL
 3928        PLUSPLUS
 3929        TIRETIRE
 3930        SIZEOF
 3931        NEW
 3932        DELETE
 3933        VA_ARG
 3934    -- 54 -- ext_all
 3935        ALWAYS
 3936    -- 55 -- ext_all_ext
 3937        ALWAYS
 3938    -- 56 -- ext_all_no_linkage
 3939        ALWAYS
 3940    -- 57 -- ext_data_decl_sc_ty
 3941        META
 3942        IDENT
 3943        AUTO
 3944        STATIC
 3945        EXTERN
 3946        REGISTER
 3947        VOLATILE
 3948        INLINE
 3949        VIRTUAL
 3950        FRIEND
 3951        CONST
 3952        ENUM
 3953        STRUCT
 3954        UNION
 3955        CLASS
 3956        DOUBLE
 3957        INT
 3958        CHAR
 3959        FLOAT
 3960        VOID
 3961        DPOIDPOI
 3962        LONG
 3963        SIGNED
 3964        UNSIGNED
 3965        SHORT
 3966    -- 58 -- ext_data_decl_simp
 3967        ALWAYS
 3968    -- 59 -- ext_data_declaration
 3969        ALWAYS
 3970    -- 60 -- ext_decl_dir
 3971        META
 3972        INCLUDE_DIR
 3973        IFDEF_DIR
 3974        IFNDEF_DIR
 3975        IF_DIR
 3976        LINE_DIR
 3977        PRAGMA_DIR
 3978        ERROR_DIR
 3979        DEFINE_DIR
 3980        UNDEF_DIR
 3981    -- 61 -- ext_decl_if_dir
 3982        META
 3983        IDENT
 3984        STRING
 3985        CHARACT
 3986        ULINTEGER
 3987        ULLINTEGER
 3988        LLINTEGER
 3989        LINTEGER
 3990        UINTEGER
 3991        FLOATVAL
 3992        INTEGER
 3993        ULHEXA
 3994        ULLHEXA
 3995        LLHEXA
 3996        LHEXA
 3997        UHEXA
 3998        HEXA
 3999        ULLOCTAL
 4000        LLOCTAL
 4001        ULOCTAL
 4002        LOCTAL
 4003        UOCTAL
 4004        OCTAL
 4005        DOUBLE
 4006        INT
 4007        CHAR
 4008        FLOAT
 4009        VOID
 4010        DPOIDPOI
 4011        LONG
 4012        SIGNED
 4013        UNSIGNED
 4014        SHORT
 4015        ETOI
 4016        ETCO
 4017        TILD
 4018        OPERATOR
 4019        POUV
 4020        TIRE
 4021        PLUS
 4022        EXCL
 4023        PLUSPLUS
 4024        TIRETIRE
 4025        SIZEOF
 4026        NEW
 4027        DELETE
 4028        VA_ARG
 4029    -- 62 -- ext_decl_ifdef_dir
 4030        META
 4031        IFDEF_DIR
 4032        IFNDEF_DIR
 4033    -- 63 -- func_declaration
 4034        META
 4035        IDENT
 4036        AUTO
 4037        STATIC
 4038        EXTERN
 4039        REGISTER
 4040        VOLATILE
 4041        INLINE
 4042        VIRTUAL
 4043        FRIEND
 4044        CONST
 4045        ENUM
 4046        STRUCT
 4047        UNION
 4048        CLASS
 4049        DOUBLE
 4050        INT
 4051        CHAR
 4052        FLOAT
 4053        VOID
 4054        DPOIDPOI
 4055        LONG
 4056        SIGNED
 4057        UNSIGNED
 4058        SHORT
 4059        ETOI
 4060        ETCO
 4061        TILD
 4062        OPERATOR
 4063    -- 64 -- func_declarator
 4064        META
 4065        IDENT
 4066        REGISTER
 4067        VOLATILE
 4068        INLINE
 4069        VIRTUAL
 4070        FRIEND
 4071        CONST
 4072        ETOI
 4073        ETCO
 4074        TILD
 4075        OPERATOR
 4076    -- 65 -- ident_mul
 4077        META
 4078        IDENT
 4079        DPOIDPOI
 4080    -- 66 -- include_dir
 4081        META
 4082        INCLUDE_DIR
 4083    -- 67 -- inclusive_or_expression
 4084        META
 4085        IDENT
 4086        STRING
 4087        CHARACT
 4088        ULINTEGER
 4089        ULLINTEGER
 4090        LLINTEGER
 4091        LINTEGER
 4092        UINTEGER
 4093        FLOATVAL
 4094        INTEGER
 4095        ULHEXA
 4096        ULLHEXA
 4097        LLHEXA
 4098        LHEXA
 4099        UHEXA
 4100        HEXA
 4101        ULLOCTAL
 4102        LLOCTAL
 4103        ULOCTAL
 4104        LOCTAL
 4105        UOCTAL
 4106        OCTAL
 4107        DOUBLE
 4108        INT
 4109        CHAR
 4110        FLOAT
 4111        VOID
 4112        DPOIDPOI
 4113        LONG
 4114        SIGNED
 4115        UNSIGNED
 4116        SHORT
 4117        ETOI
 4118        ETCO
 4119        TILD
 4120        OPERATOR
 4121        POUV
 4122        TIRE
 4123        PLUS
 4124        EXCL
 4125        PLUSPLUS
 4126        TIRETIRE
 4127        SIZEOF
 4128        NEW
 4129        DELETE
 4130        VA_ARG
 4131    -- 68 -- initializer
 4132        ALWAYS
 4133    -- 69 -- inside_declaration
 4134        ALWAYS
 4135    -- 70 -- inside_declaration1
 4136        META
 4137        IDENT
 4138        REGISTER
 4139        VOLATILE
 4140        INLINE
 4141        VIRTUAL
 4142        FRIEND
 4143        CONST
 4144        ENUM
 4145        STRUCT
 4146        UNION
 4147        CLASS
 4148        DOUBLE
 4149        INT
 4150        CHAR
 4151        FLOAT
 4152        VOID
 4153        DPOIDPOI
 4154        LONG
 4155        SIGNED
 4156        UNSIGNED
 4157        SHORT
 4158    -- 71 -- inside_declaration2
 4159        META
 4160        IDENT
 4161    -- 72 -- label_beg
 4162        META
 4163        IDENT
 4164    -- 73 -- linkage_specification
 4165        META
 4166        EXTERN
 4167    -- 74 -- logical_and_expression
 4168        META
 4169        IDENT
 4170        STRING
 4171        CHARACT
 4172        ULINTEGER
 4173        ULLINTEGER
 4174        LLINTEGER
 4175        LINTEGER
 4176        UINTEGER
 4177        FLOATVAL
 4178        INTEGER
 4179        ULHEXA
 4180        ULLHEXA
 4181        LLHEXA
 4182        LHEXA
 4183        UHEXA
 4184        HEXA
 4185        ULLOCTAL
 4186        LLOCTAL
 4187        ULOCTAL
 4188        LOCTAL
 4189        UOCTAL
 4190        OCTAL
 4191        DOUBLE
 4192        INT
 4193        CHAR
 4194        FLOAT
 4195        VOID
 4196        DPOIDPOI
 4197        LONG
 4198        SIGNED
 4199        UNSIGNED
 4200        SHORT
 4201        ETOI
 4202        ETCO
 4203        TILD
 4204        OPERATOR
 4205        POUV
 4206        TIRE
 4207        PLUS
 4208        EXCL
 4209        PLUSPLUS
 4210        TIRETIRE
 4211        SIZEOF
 4212        NEW
 4213        DELETE
 4214        VA_ARG
 4215    -- 75 -- logical_or_expression
 4216        META
 4217        IDENT
 4218        STRING
 4219        CHARACT
 4220        ULINTEGER
 4221        ULLINTEGER
 4222        LLINTEGER
 4223        LINTEGER
 4224        UINTEGER
 4225        FLOATVAL
 4226        INTEGER
 4227        ULHEXA
 4228        ULLHEXA
 4229        LLHEXA
 4230        LHEXA
 4231        UHEXA
 4232        HEXA
 4233        ULLOCTAL
 4234        LLOCTAL
 4235        ULOCTAL
 4236        LOCTAL
 4237        UOCTAL
 4238        OCTAL
 4239        DOUBLE
 4240        INT
 4241        CHAR
 4242        FLOAT
 4243        VOID
 4244        DPOIDPOI
 4245        LONG
 4246        SIGNED
 4247        UNSIGNED
 4248        SHORT
 4249        ETOI
 4250        ETCO
 4251        TILD
 4252        OPERATOR
 4253        POUV
 4254        TIRE
 4255        PLUS
 4256        EXCL
 4257        PLUSPLUS
 4258        TIRETIRE
 4259        SIZEOF
 4260        NEW
 4261        DELETE
 4262        VA_ARG
 4263    -- 76 -- long_short_int_char
 4264        META
 4265        INT
 4266        CHAR
 4267        LONG
 4268        SHORT
 4269    -- 77 -- macro
 4270        META
 4271        DECLARE_DYNAMIC
 4272        DECLARE_SERIAL
 4273        IMPLEMENT_DYNAMIC
 4274        IMPLEMENT_DYNCREATE
 4275        IMPLEMENT_SERIAL
 4276        DECLARE_MESSAGE_MAP
 4277        BEGIN_MESSAGE_MAP
 4278        END_MESSAGE_MAP
 4279        CATCH_ALL
 4280        CATCH_UPPER
 4281        AND_CATCH
 4282    -- 78 -- macro_extended
 4283        ALWAYS
 4284    -- 79 -- main_entry
 4285        ALWAYS
 4286    -- 80 -- member_declarator
 4287        META
 4288        IDENT
 4289        DPOIDPOI
 4290    -- 81 -- message_map
 4291        META
 4292        BEGIN_MESSAGE_MAP
 4293    -- 82 -- multiplicative_expression
 4294        META
 4295        IDENT
 4296        STRING
 4297        CHARACT
 4298        ULINTEGER
 4299        ULLINTEGER
 4300        LLINTEGER
 4301        LINTEGER
 4302        UINTEGER
 4303        FLOATVAL
 4304        INTEGER
 4305        ULHEXA
 4306        ULLHEXA
 4307        LLHEXA
 4308        LHEXA
 4309        UHEXA
 4310        HEXA
 4311        ULLOCTAL
 4312        LLOCTAL
 4313        ULOCTAL
 4314        LOCTAL
 4315        UOCTAL
 4316        OCTAL
 4317        DOUBLE
 4318        INT
 4319        CHAR
 4320        FLOAT
 4321        VOID
 4322        DPOIDPOI
 4323        LONG
 4324        SIGNED
 4325        UNSIGNED
 4326        SHORT
 4327        ETOI
 4328        ETCO
 4329        TILD
 4330        OPERATOR
 4331        POUV
 4332        TIRE
 4333        PLUS
 4334        EXCL
 4335        PLUSPLUS
 4336        TIRETIRE
 4337        SIZEOF
 4338        NEW
 4339        DELETE
 4340        VA_ARG
 4341    -- 83 -- name_space
 4342        META
 4343        NAMESPACE
 4344        USING
 4345    -- 84 -- new_1
 4346        META
 4347        POUV
 4348    -- 85 -- new_2
 4349        META
 4350        IDENT
 4351        REGISTER
 4352        VOLATILE
 4353        INLINE
 4354        VIRTUAL
 4355        FRIEND
 4356        CONST
 4357        ENUM
 4358        STRUCT
 4359        UNION
 4360        CLASS
 4361        DOUBLE
 4362        INT
 4363        CHAR
 4364        FLOAT
 4365        VOID
 4366        DPOIDPOI
 4367        LONG
 4368        SIGNED
 4369        UNSIGNED
 4370        SHORT
 4371        POUV
 4372    -- 86 -- new_declarator
 4373        ALWAYS
 4374    -- 87 -- new_type_name
 4375        META
 4376        IDENT
 4377        REGISTER
 4378        VOLATILE
 4379        INLINE
 4380        VIRTUAL
 4381        FRIEND
 4382        CONST
 4383        ENUM
 4384        STRUCT
 4385        UNION
 4386        CLASS
 4387        DOUBLE
 4388        INT
 4389        CHAR
 4390        FLOAT
 4391        VOID
 4392        DPOIDPOI
 4393        LONG
 4394        SIGNED
 4395        UNSIGNED
 4396        SHORT
 4397    -- 88 -- none_statement
 4398        ALWAYS
 4399    -- 89 -- operator_function_name
 4400        META
 4401        OPERATOR
 4402    -- 90 -- other_config
 4403        META
 4404        PRAGMA_CONTENT
 4405    -- 91 -- parameter_list
 4406        META
 4407        POUV
 4408    -- 92 -- parameter_list_extended
 4409        META
 4410        POUV
 4411    -- 93 -- pm_expression
 4412        META
 4413        IDENT
 4414        STRING
 4415        CHARACT
 4416        ULINTEGER
 4417        ULLINTEGER
 4418        LLINTEGER
 4419        LINTEGER
 4420        UINTEGER
 4421        FLOATVAL
 4422        INTEGER
 4423        ULHEXA
 4424        ULLHEXA
 4425        LLHEXA
 4426        LHEXA
 4427        UHEXA
 4428        HEXA
 4429        ULLOCTAL
 4430        LLOCTAL
 4431        ULOCTAL
 4432        LOCTAL
 4433        UOCTAL
 4434        OCTAL
 4435        DOUBLE
 4436        INT
 4437        CHAR
 4438        FLOAT
 4439        VOID
 4440        DPOIDPOI
 4441        LONG
 4442        SIGNED
 4443        UNSIGNED
 4444        SHORT
 4445        ETOI
 4446        ETCO
 4447        TILD
 4448        OPERATOR
 4449        POUV
 4450        TIRE
 4451        PLUS
 4452        EXCL
 4453        PLUSPLUS
 4454        TIRETIRE
 4455        SIZEOF
 4456        NEW
 4457        DELETE
 4458        VA_ARG
 4459    -- 94 -- postfix_expression
 4460        META
 4461        IDENT
 4462        STRING
 4463        CHARACT
 4464        ULINTEGER
 4465        ULLINTEGER
 4466        LLINTEGER
 4467        LINTEGER
 4468        UINTEGER
 4469        FLOATVAL
 4470        INTEGER
 4471        ULHEXA
 4472        ULLHEXA
 4473        LLHEXA
 4474        LHEXA
 4475        UHEXA
 4476        HEXA
 4477        ULLOCTAL
 4478        LLOCTAL
 4479        ULOCTAL
 4480        LOCTAL
 4481        UOCTAL
 4482        OCTAL
 4483        DOUBLE
 4484        INT
 4485        CHAR
 4486        FLOAT
 4487        VOID
 4488        DPOIDPOI
 4489        LONG
 4490        SIGNED
 4491        UNSIGNED
 4492        SHORT
 4493        TILD
 4494        OPERATOR
 4495        POUV
 4496        VA_ARG
 4497    -- 95 -- pretty::parse_entry
 4498        META
 4499        PLUS____TIRETIRETIRETIRETIRETIRE____
 4500    -- 96 -- primary_expression
 4501        META
 4502        IDENT
 4503        STRING
 4504        CHARACT
 4505        ULINTEGER
 4506        ULLINTEGER
 4507        LLINTEGER
 4508        LINTEGER
 4509        UINTEGER
 4510        FLOATVAL
 4511        INTEGER
 4512        ULHEXA
 4513        ULLHEXA
 4514        LLHEXA
 4515        LHEXA
 4516        UHEXA
 4517        HEXA
 4518        ULLOCTAL
 4519        LLOCTAL
 4520        ULOCTAL
 4521        LOCTAL
 4522        UOCTAL
 4523        OCTAL
 4524        TILD
 4525        OPERATOR
 4526        POUV
 4527        VA_ARG
 4528    -- 97 -- program
 4529        ALWAYS
 4530    -- 98 -- protect_declare
 4531        META
 4532        PRIVATE
 4533        PROTECTED
 4534        PUBLIC
 4535    -- 99 -- ptr_operator
 4536        META
 4537        IDENT
 4538        DPOIDPOI
 4539        ETOI
 4540        ETCO
 4541    -- 100 -- qualified_name
 4542        META
 4543        IDENT
 4544        TILD
 4545    -- 101 -- qualified_name_elem
 4546        META
 4547        DPOIDPOI
 4548    -- 102 -- quick_prog
 4549        ALWAYS
 4550    -- 103 -- quick_prog_elem
 4551        ALWAYS
 4552    -- 104 -- range_in_liste
 4553        META
 4554        IDENT
 4555    -- 105 -- range_modifier
 4556        META
 4557        IDENT
 4558        REGISTER
 4559        VOLATILE
 4560        INLINE
 4561        VIRTUAL
 4562        FRIEND
 4563        CONST
 4564    -- 106 -- range_modifier_function
 4565        META
 4566        INLINE
 4567        VIRTUAL
 4568        FRIEND
 4569        CONST
 4570    -- 107 -- range_modifier_ident
 4571        ALWAYS
 4572    -- 108 -- range_pragma
 4573        META
 4574        PRAGMA_RANGE
 4575    -- 109 -- relational_expression
 4576        META
 4577        IDENT
 4578        STRING
 4579        CHARACT
 4580        ULINTEGER
 4581        ULLINTEGER
 4582        LLINTEGER
 4583        LINTEGER
 4584        UINTEGER
 4585        FLOATVAL
 4586        INTEGER
 4587        ULHEXA
 4588        ULLHEXA
 4589        LLHEXA
 4590        LHEXA
 4591        UHEXA
 4592        HEXA
 4593        ULLOCTAL
 4594        LLOCTAL
 4595        ULOCTAL
 4596        LOCTAL
 4597        UOCTAL
 4598        OCTAL
 4599        DOUBLE
 4600        INT
 4601        CHAR
 4602        FLOAT
 4603        VOID
 4604        DPOIDPOI
 4605        LONG
 4606        SIGNED
 4607        UNSIGNED
 4608        SHORT
 4609        ETOI
 4610        ETCO
 4611        TILD
 4612        OPERATOR
 4613        POUV
 4614        TIRE
 4615        PLUS
 4616        EXCL
 4617        PLUSPLUS
 4618        TIRETIRE
 4619        SIZEOF
 4620        NEW
 4621        DELETE
 4622        VA_ARG
 4623    -- 110 -- sc_specifier
 4624        ALWAYS
 4625    -- 111 -- shift_expression
 4626        META
 4627        IDENT
 4628        STRING
 4629        CHARACT
 4630        ULINTEGER
 4631        ULLINTEGER
 4632        LLINTEGER
 4633        LINTEGER
 4634        UINTEGER
 4635        FLOATVAL
 4636        INTEGER
 4637        ULHEXA
 4638        ULLHEXA
 4639        LLHEXA
 4640        LHEXA
 4641        UHEXA
 4642        HEXA
 4643        ULLOCTAL
 4644        LLOCTAL
 4645        ULOCTAL
 4646        LOCTAL
 4647        UOCTAL
 4648        OCTAL
 4649        DOUBLE
 4650        INT
 4651        CHAR
 4652        FLOAT
 4653        VOID
 4654        DPOIDPOI
 4655        LONG
 4656        SIGNED
 4657        UNSIGNED
 4658        SHORT
 4659        ETOI
 4660        ETCO
 4661        TILD
 4662        OPERATOR
 4663        POUV
 4664        TIRE
 4665        PLUS
 4666        EXCL
 4667        PLUSPLUS
 4668        TIRETIRE
 4669        SIZEOF
 4670        NEW
 4671        DELETE
 4672        VA_ARG
 4673    -- 112 -- simple_type
 4674        META
 4675        IDENT
 4676        DOUBLE
 4677        INT
 4678        CHAR
 4679        FLOAT
 4680        VOID
 4681        DPOIDPOI
 4682        LONG
 4683        SIGNED
 4684        UNSIGNED
 4685        SHORT
 4686    -- 113 -- simple_type_name
 4687        META
 4688        IDENT
 4689        DOUBLE
 4690        INT
 4691        CHAR
 4692        FLOAT
 4693        VOID
 4694        DPOIDPOI
 4695        LONG
 4696        SIGNED
 4697        UNSIGNED
 4698        SHORT
 4699    -- 114 -- sizeof_type
 4700        META
 4701        POUV
 4702    -- 115 -- stat_all
 4703        ALWAYS
 4704    -- 116 -- stat_dir
 4705        META
 4706        INCLUDE_DIR
 4707        IFDEF_DIR
 4708        IFNDEF_DIR
 4709        IF_DIR
 4710        LINE_DIR
 4711        PRAGMA_DIR
 4712        ERROR_DIR
 4713        DEFINE_DIR
 4714        UNDEF_DIR
 4715    -- 117 -- stat_if_dir
 4716        META
 4717        IDENT
 4718        STRING
 4719        CHARACT
 4720        ULINTEGER
 4721        ULLINTEGER
 4722        LLINTEGER
 4723        LINTEGER
 4724        UINTEGER
 4725        FLOATVAL
 4726        INTEGER
 4727        ULHEXA
 4728        ULLHEXA
 4729        LLHEXA
 4730        LHEXA
 4731        UHEXA
 4732        HEXA
 4733        ULLOCTAL
 4734        LLOCTAL
 4735        ULOCTAL
 4736        LOCTAL
 4737        UOCTAL
 4738        OCTAL
 4739        DOUBLE
 4740        INT
 4741        CHAR
 4742        FLOAT
 4743        VOID
 4744        DPOIDPOI
 4745        LONG
 4746        SIGNED
 4747        UNSIGNED
 4748        SHORT
 4749        ETOI
 4750        ETCO
 4751        TILD
 4752        OPERATOR
 4753        POUV
 4754        TIRE
 4755        PLUS
 4756        EXCL
 4757        PLUSPLUS
 4758        TIRETIRE
 4759        SIZEOF
 4760        NEW
 4761        DELETE
 4762        VA_ARG
 4763    -- 118 -- stat_ifdef_dir
 4764        META
 4765        IFDEF_DIR
 4766        IFNDEF_DIR
 4767    -- 119 -- statement
 4768        META
 4769        GOTO
 4770        IDENT
 4771        STRING
 4772        CHARACT
 4773        ULINTEGER
 4774        ULLINTEGER
 4775        LLINTEGER
 4776        LINTEGER
 4777        UINTEGER
 4778        FLOATVAL
 4779        INTEGER
 4780        ULHEXA
 4781        ULLHEXA
 4782        LLHEXA
 4783        LHEXA
 4784        UHEXA
 4785        HEXA
 4786        ULLOCTAL
 4787        LLOCTAL
 4788        ULOCTAL
 4789        LOCTAL
 4790        UOCTAL
 4791        OCTAL
 4792        DOUBLE
 4793        INT
 4794        CHAR
 4795        FLOAT
 4796        VOID
 4797        DPOIDPOI
 4798        LONG
 4799        SIGNED
 4800        UNSIGNED
 4801        SHORT
 4802        ETOI
 4803        ETCO
 4804        TILD
 4805        OPERATOR
 4806        BREAK
 4807        CONTINUE
 4808        DO
 4809        AOUV
 4810        FOR
 4811        IF
 4812        PVIR
 4813        RETURN
 4814        SWITCH
 4815        WHILE
 4816        FORALLSONS
 4817        THROW
 4818        TRY
 4819        POUV
 4820        TIRE
 4821        PLUS
 4822        EXCL
 4823        PLUSPLUS
 4824        TIRETIRE
 4825        SIZEOF
 4826        NEW
 4827        DELETE
 4828        VA_ARG
 4829    -- 120 -- string_list
 4830        META
 4831        STRING
 4832    -- 121 -- switch_elem
 4833        META
 4834        CASE
 4835        DEFAULT
 4836    -- 122 -- switch_list
 4837        META
 4838        AOUV
 4839    -- 123 -- template_type
 4840        META
 4841        INFE
 4842    -- 124 -- type_and_declarator
 4843        META
 4844        IDENT
 4845        AUTO
 4846        STATIC
 4847        EXTERN
 4848        REGISTER
 4849        VOLATILE
 4850        INLINE
 4851        VIRTUAL
 4852        FRIEND
 4853        CONST
 4854        ENUM
 4855        STRUCT
 4856        UNION
 4857        CLASS
 4858        DOUBLE
 4859        INT
 4860        CHAR
 4861        FLOAT
 4862        VOID
 4863        DPOIDPOI
 4864        LONG
 4865        SIGNED
 4866        UNSIGNED
 4867        SHORT
 4868    -- 125 -- type_descr
 4869        META
 4870        IDENT
 4871    -- 126 -- type_name
 4872        META
 4873        IDENT
 4874        REGISTER
 4875        VOLATILE
 4876        INLINE
 4877        VIRTUAL
 4878        FRIEND
 4879        CONST
 4880        ENUM
 4881        STRUCT
 4882        UNION
 4883        CLASS
 4884        DOUBLE
 4885        INT
 4886        CHAR
 4887        FLOAT
 4888        VOID
 4889        DPOIDPOI
 4890        LONG
 4891        SIGNED
 4892        UNSIGNED
 4893        SHORT
 4894    -- 127 -- type_specifier
 4895        META
 4896        IDENT
 4897        REGISTER
 4898        VOLATILE
 4899        INLINE
 4900        VIRTUAL
 4901        FRIEND
 4902        CONST
 4903        ENUM
 4904        STRUCT
 4905        UNION
 4906        CLASS
 4907        DOUBLE
 4908        INT
 4909        CHAR
 4910        FLOAT
 4911        VOID
 4912        DPOIDPOI
 4913        LONG
 4914        SIGNED
 4915        UNSIGNED
 4916        SHORT
 4917    -- 128 -- type_specifier_without_param
 4918        META
 4919        IDENT
 4920        REGISTER
 4921        VOLATILE
 4922        INLINE
 4923        VIRTUAL
 4924        FRIEND
 4925        CONST
 4926        ENUM
 4927        STRUCT
 4928        UNION
 4929        CLASS
 4930        DOUBLE
 4931        INT
 4932        CHAR
 4933        FLOAT
 4934        VOID
 4935        DPOIDPOI
 4936        LONG
 4937        SIGNED
 4938        UNSIGNED
 4939        SHORT
 4940    -- 129 -- typedef_and_declarator
 4941        META
 4942        IDENT
 4943        REGISTER
 4944        VOLATILE
 4945        INLINE
 4946        VIRTUAL
 4947        FRIEND
 4948        CONST
 4949        ENUM
 4950        STRUCT
 4951        UNION
 4952        CLASS
 4953        DOUBLE
 4954        INT
 4955        CHAR
 4956        FLOAT
 4957        VOID
 4958        DPOIDPOI
 4959        LONG
 4960        SIGNED
 4961        UNSIGNED
 4962        SHORT
 4963    -- 130 -- unary_expression
 4964        META
 4965        IDENT
 4966        STRING
 4967        CHARACT
 4968        ULINTEGER
 4969        ULLINTEGER
 4970        LLINTEGER
 4971        LINTEGER
 4972        UINTEGER
 4973        FLOATVAL
 4974        INTEGER
 4975        ULHEXA
 4976        ULLHEXA
 4977        LLHEXA
 4978        LHEXA
 4979        UHEXA
 4980        HEXA
 4981        ULLOCTAL
 4982        LLOCTAL
 4983        ULOCTAL
 4984        LOCTAL
 4985        UOCTAL
 4986        OCTAL
 4987        DOUBLE
 4988        INT
 4989        CHAR
 4990        FLOAT
 4991        VOID
 4992        DPOIDPOI
 4993        LONG
 4994        SIGNED
 4995        UNSIGNED
 4996        SHORT
 4997        ETOI
 4998        ETCO
 4999        TILD
 5000        OPERATOR
 5001        POUV
 5002        TIRE
 5003        PLUS
 5004        EXCL
 5005        PLUSPLUS
 5006        TIRETIRE
 5007        SIZEOF
 5008        NEW
 5009        DELETE
 5010        VA_ARG
 5011    */
 5012 signed char *cplus::_tokenArray [131]
 5013     = {(signed char *)"\120\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5014         , (signed char *)"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
 5015         , (signed char *)"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
 5016         , (signed char *)"\020\000\377\377\077\000\000\000\000\000\000\000\000\000\360\377\003\200\377\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5017         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\300\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5018         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5019         , (signed char *)"\020\000\377\377\077\000\000\000\000\000\000\000\000\000\360\377\003\200\377\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5020         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\374\377\077\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5021         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\374\377\077\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5022         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\374\377\077\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5023         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\374\377\077\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5024         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5025         , (signed char *)"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
 5026         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5027         , (signed char *)"\020\000\000\000\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\374\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5028         , (signed char *)"\020\000\377\377\077\000\000\000\000\000\000\000\000\000\360\377\003\200\377\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5029         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\040\000\002\000\000\000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5030         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\040\000\002\000\000\000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5031         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5032         , (signed char *)"\020\000\377\377\077\000\000\000\000\000\000\000\000\000\360\377\003\200\377\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5033         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5034         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\000\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5035         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5036         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5037         , (signed char *)"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
 5038         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5039         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5040         , (signed char *)"\020\000\377\377\077\000\000\000\000\000\000\000\000\000\360\377\003\200\377\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5041         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\000\000\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5042         , (signed char *)"\020\000\374\377\077\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5043         , (signed char *)"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
 5044         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5045         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\200\377\000\300\003\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5046         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\200\377\377\077\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5047         , (signed char *)"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
 5048         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\200\377\377\077\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5049         , (signed char *)"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
 5050         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5051         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\374\000\300\003\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5052         , (signed char *)"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
 5053         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\374\000\300\003\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5054         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\374\000\300\003\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5055         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\374\000\300\003\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5056         , (signed char *)"\020\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5057         , (signed char *)"\020\000\000\000\100\340\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5058         , (signed char *)"\020\000\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5059         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5060         , (signed char *)"\020\000\377\377\077\000\000\000\000\000\000\000\000\000\360\377\003\200\377\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5061         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5062         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5063         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5064         , (signed char *)"\020\000\377\377\077\000\000\000\000\000\000\000\000\000\360\377\003\200\377\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5065         , (signed char *)"\020\000\377\377\077\000\000\000\000\000\000\000\000\000\360\377\003\200\377\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5066         , (signed char *)"\020\000\377\377\077\000\000\000\000\000\000\000\000\000\360\377\003\200\377\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5067         , (signed char *)"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
 5068         , (signed char *)"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
 5069         , (signed char *)"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
 5070         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\200\377\377\077\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5071         , (signed char *)"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
 5072         , (signed char *)"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
 5073         , (signed char *)"\020\000\000\000\300\343\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5074         , (signed char *)"\020\000\377\377\077\000\000\000\000\000\000\000\000\000\360\377\003\200\377\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5075         , (signed char *)"\020\000\000\000\200\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5076         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\200\377\377\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5077         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\374\000\300\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5078         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5079         , (signed char *)"\020\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5080         , (signed char *)"\020\000\377\377\077\000\000\000\000\000\000\000\000\000\360\377\003\200\377\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5081         , (signed char *)"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
 5082         , (signed char *)"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
 5083         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\374\377\077\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5084         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5085         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5086         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5087         , (signed char *)"\020\000\377\377\077\000\000\000\000\000\000\000\000\000\360\377\003\200\377\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5088         , (signed char *)"\020\000\377\377\077\000\000\000\000\000\000\000\000\000\360\377\003\200\377\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5089         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\000\000\000\140\044\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5090         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5091         , (signed char *)"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
 5092         , (signed char *)"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
 5093         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5094         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5095         , (signed char *)"\020\000\377\377\077\000\000\000\000\000\000\000\000\000\360\377\003\200\377\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5096         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5097         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5098         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\374\377\077\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5099         , (signed char *)"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
 5100         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\374\377\077\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5101         , (signed char *)"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
 5102         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5103         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5104         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5105         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5106         , (signed char *)"\020\000\377\377\077\000\000\000\000\000\000\000\000\000\360\377\003\200\377\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5107         , (signed char *)"\020\000\377\377\077\000\000\000\000\000\000\000\000\000\360\077\003\200\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5108         , (signed char *)"\120\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5109         , (signed char *)"\020\000\377\377\077\000\000\000\000\000\000\000\000\000\000\000\003\200\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5110         , (signed char *)"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
 5111         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5112         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\000\000\302\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5113         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5114         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5115         , (signed char *)"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
 5116         , (signed char *)"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
 5117         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5118         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\374\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5119         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\000\000\360\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5120         , (signed char *)"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
 5121         , (signed char *)"\020\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5122         , (signed char *)"\020\000\377\377\077\000\000\000\000\000\000\000\000\000\360\377\003\200\377\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5123         , (signed char *)"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
 5124         , (signed char *)"\020\000\377\377\077\000\000\000\000\000\000\000\000\000\360\377\003\200\377\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5125         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\000\360\077\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5126         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\000\360\077\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5127         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5128         , (signed char *)"\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
 5129         , (signed char *)"\020\000\000\000\300\343\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5130         , (signed char *)"\020\000\377\377\077\000\000\000\000\000\000\000\000\000\360\377\003\200\377\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5131         , (signed char *)"\020\000\000\000\200\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5132         , (signed char *)"\020\100\377\377\077\000\000\000\000\000\000\000\000\000\360\377\377\377\377\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5133         , (signed char *)"\020\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5134         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\060\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5135         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5136         , (signed char *)"\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5137         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\200\377\377\077\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5138         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5139         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\374\377\077\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5140         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\374\377\077\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5141         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\374\377\077\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5142         , (signed char *)"\020\000\001\000\000\000\000\000\000\000\000\000\000\374\377\077\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
 5143         , (signed char *)"\020\000\377\377\077\000\000\000\000\000\000\000\000\000\360\377\003\200\377\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"};
 5144 
 5145 typedef int (cplus::*(DEF_FUNC_TOKEN_ARRAY [131]))() ;
 5146 
 5147 DEF_FUNC_TOKEN_ARRAY    cplus::_tokenFuncArray
 5148     = { /*bidon                          */ &cplus::Lex, /*parse_entry                    */ 0, /*abstract_declarator            */ 0
 5149         , /*additive_expression            */ &cplus::Lex, /*alloc_expression               */ &cplus::Lex
 5150         , /*allocation_expression          */ &cplus::Lex, /*and_expression                 */ &cplus::Lex
 5151         , /*arg_declarator                 */ &cplus::Lex, /*arg_declarator_base            */ &cplus::Lex
 5152         , /*arg_declarator_followed        */ &cplus::Lex, /*arg_declarator_type            */ &cplus::Lex
 5153         , /*arg_typ_declarator             */ &cplus::Lex, /*arg_typ_list                   */ 0
 5154         , /*asm_declaration                */ &cplus::Lex, /*assignment_end                 */ &cplus::Lex
 5155         , /*assignment_expression          */ &cplus::Lex, /*base_specifier                 */ &cplus::Lex
 5156         , /*base_specifier_elem            */ &cplus::Lex, /*bit_field_decl                 */ &cplus::Lex
 5157         , /*cast_expression                */ &cplus::Lex, /*cast_expression_value          */ &cplus::Lex
 5158         , /*catch_unit                     */ &cplus::specific, /*catch_unit_ansi                */ &cplus::Lex
 5159         , /*class_declaration              */ &cplus::Lex, /*comment_eater                  */ 0
 5160         , /*complete_class_name            */ &cplus::Lex, /*compound_statement             */ &cplus::Lex
 5161         , /*conditional_expression         */ &cplus::Lex, /*const_or_volatile              */ &cplus::Lex
 5162         , /*constan                        */ &cplus::Lex, /*ctor_initializer               */ 0
 5163         , /*data_decl_exotic               */ &cplus::specific, /*data_decl_sc_decl              */ &cplus::Lex
 5164         , /*data_decl_sc_ty_decl           */ &cplus::Lex, /*data_declaration               */ 0
 5165         , /*data_declaration_for           */ &cplus::Lex, /*data_declaration_strict        */ 0
 5166         , /*deallocation_expression        */ &cplus::Lex, /*declarator                     */ &cplus::Lex
 5167         , /*declarator_follow              */ 0, /*declarator_list                */ &cplus::Lex
 5168         , /*declarator_list_init           */ &cplus::Lex, /*declarator_value               */ &cplus::Lex
 5169         , /*define_dir                     */ &cplus::Lex, /*directive                      */ &cplus::Lex
 5170         , /*end_pragma                     */ &cplus::Lex, /*enum_val                       */ &cplus::Lex
 5171         , /*equality_expression            */ &cplus::Lex, /*exception                      */ &cplus::specific
 5172         , /*exception_ansi                 */ &cplus::Lex, /*exception_list                 */ &cplus::Lex
 5173         , /*exclusive_or_expression        */ &cplus::Lex, /*expression                     */ &cplus::Lex
 5174         , /*expression_for                 */ &cplus::Lex, /*ext_all                        */ 0, /*ext_all_ext                    */ 0
 5175         , /*ext_all_no_linkage             */ 0, /*ext_data_decl_sc_ty            */ &cplus::Lex, /*ext_data_decl_simp             */ 0
 5176         , /*ext_data_declaration           */ 0, /*ext_decl_dir                   */ &cplus::Lex
 5177         , /*ext_decl_if_dir                */ &cplus::Lex, /*ext_decl_ifdef_dir             */ &cplus::Lex
 5178         , /*func_declaration               */ &cplus::Lex, /*func_declarator                */ &cplus::Lex
 5179         , /*ident_mul                      */ &cplus::Lex, /*include_dir                    */ &cplus::Lex
 5180         , /*inclusive_or_expression        */ &cplus::Lex, /*initializer                    */ 0, /*inside_declaration             */ 0
 5181         , /*inside_declaration1            */ &cplus::Lex, /*inside_declaration2            */ &cplus::Lex
 5182         , /*label_beg                      */ &cplus::Lex, /*linkage_specification          */ &cplus::Lex
 5183         , /*logical_and_expression         */ &cplus::Lex, /*logical_or_expression          */ &cplus::Lex
 5184         , /*long_short_int_char            */ &cplus::Lex, /*macro                          */ &cplus::specific
 5185         , /*macro_extended                 */ 0, /*main_entry                     */ 0, /*member_declarator              */ &cplus::Lex
 5186         , /*message_map                    */ &cplus::specific, /*multiplicative_expression      */ &cplus::Lex
 5187         , /*name_space                     */ &cplus::Lex, /*new_1                          */ &cplus::Lex
 5188         , /*new_2                          */ &cplus::Lex, /*new_declarator                 */ 0
 5189         , /*new_type_name                  */ &cplus::Lex, /*none_statement                 */ 0
 5190         , /*operator_function_name         */ &cplus::Lex, /*other_config                   */ &cplus::LexPragma
 5191         , /*parameter_list                 */ &cplus::Lex, /*parameter_list_extended        */ &cplus::Lex
 5192         , /*pm_expression                  */ &cplus::Lex, /*postfix_expression             */ &cplus::Lex
 5193         , /*pretty::parse_entry            */ &cplus::Lex, /*primary_expression             */ &cplus::Lex
 5194         , /*program                        */ 0, /*protect_declare                */ &cplus::Lex
 5195         , /*ptr_operator                   */ &cplus::Lex, /*qualified_name                 */ &cplus::Lex
 5196         , /*qualified_name_elem            */ &cplus::Lex, /*quick_prog                     */ 0, /*quick_prog_elem                */ 0
 5197         , /*range_in_liste                 */ &cplus::Lex, /*range_modifier                 */ &cplus::Lex
 5198         , /*range_modifier_function        */ &cplus::Lex, /*range_modifier_ident           */ 0
 5199         , /*range_pragma                   */ &cplus::LexPragma, /*relational_expression          */ &cplus::Lex
 5200         , /*sc_specifier                   */ 0, /*shift_expression               */ &cplus::Lex
 5201         , /*simple_type                    */ &cplus::Lex, /*simple_type_name               */ &cplus::Lex
 5202         , /*sizeof_type                    */ &cplus::Lex, /*stat_all                       */ 0
 5203         , /*stat_dir                       */ &cplus::Lex, /*stat_if_dir                    */ &cplus::Lex
 5204         , /*stat_ifdef_dir                 */ &cplus::Lex, /*statement                      */ &cplus::Lex
 5205         , /*string_list                    */ &cplus::Lex, /*switch_elem                    */ &cplus::Lex
 5206         , /*switch_list                    */ &cplus::Lex, /*template_type                  */ &cplus::Lex
 5207         , /*type_and_declarator            */ &cplus::Lex, /*type_descr                     */ &cplus::Lex
 5208         , /*type_name                      */ &cplus::Lex, /*type_specifier                 */ &cplus::Lex
 5209         , /*type_specifier_without_param   */ &cplus::Lex, /*typedef_and_declarator         */ &cplus::Lex
 5210         , /*unary_expression               */ &cplus::Lex };
 5211 int                     cplus::_tokenNbFuncArray [131]
 5212     = { /*bidon                          */ 1, /*parse_entry                    */ 0, /*abstract_declarator            */ 0
 5213         , /*additive_expression            */ 1, /*alloc_expression               */ 1, /*allocation_expression          */ 1
 5214         , /*and_expression                 */ 1, /*arg_declarator                 */ 1, /*arg_declarator_base            */ 1
 5215         , /*arg_declarator_followed        */ 1, /*arg_declarator_type            */ 1, /*arg_typ_declarator             */ 1
 5216         , /*arg_typ_list                   */ 0, /*asm_declaration                */ 1, /*assignment_end                 */ 1
 5217         , /*assignment_expression          */ 1, /*base_specifier                 */ 1, /*base_specifier_elem            */ 1
 5218         , /*bit_field_decl                 */ 1, /*cast_expression                */ 1, /*cast_expression_value          */ 1
 5219         , /*catch_unit                     */ 13, /*catch_unit_ansi                */ 1, /*class_declaration              */ 1
 5220         , /*comment_eater                  */ 0, /*complete_class_name            */ 1, /*compound_statement             */ 1
 5221         , /*conditional_expression         */ 1, /*const_or_volatile              */ 1, /*constan                        */ 1
 5222         , /*ctor_initializer               */ 0, /*data_decl_exotic               */ 13, /*data_decl_sc_decl              */ 1
 5223         , /*data_decl_sc_ty_decl           */ 1, /*data_declaration               */ 0, /*data_declaration_for           */ 1
 5224         , /*data_declaration_strict        */ 0, /*deallocation_expression        */ 1, /*declarator                     */ 1
 5225         , /*declarator_follow              */ 0, /*declarator_list                */ 1, /*declarator_list_init           */ 1
 5226         , /*declarator_value               */ 1, /*define_dir                     */ 1, /*directive                      */ 1
 5227         , /*end_pragma                     */ 1, /*enum_val                       */ 1, /*equality_expression            */ 1
 5228         , /*exception                      */ 13, /*exception_ansi                 */ 1, /*exception_list                 */ 1
 5229         , /*exclusive_or_expression        */ 1, /*expression                     */ 1, /*expression_for                 */ 1
 5230         , /*ext_all                        */ 0, /*ext_all_ext                    */ 0, /*ext_all_no_linkage             */ 0
 5231         , /*ext_data_decl_sc_ty            */ 1, /*ext_data_decl_simp             */ 0, /*ext_data_declaration           */ 0
 5232         , /*ext_decl_dir                   */ 1, /*ext_decl_if_dir                */ 1, /*ext_decl_ifdef_dir             */ 1
 5233         , /*func_declaration               */ 1, /*func_declarator                */ 1, /*ident_mul                      */ 1
 5234         , /*include_dir                    */ 1, /*inclusive_or_expression        */ 1, /*initializer                    */ 0
 5235         , /*inside_declaration             */ 0, /*inside_declaration1            */ 1, /*inside_declaration2            */ 1
 5236         , /*label_beg                      */ 1, /*linkage_specification          */ 1, /*logical_and_expression         */ 1
 5237         , /*logical_or_expression          */ 1, /*long_short_int_char            */ 1, /*macro                          */ 13
 5238         , /*macro_extended                 */ 0, /*main_entry                     */ 0, /*member_declarator              */ 1
 5239         , /*message_map                    */ 13, /*multiplicative_expression      */ 1, /*name_space                     */ 1
 5240         , /*new_1                          */ 1, /*new_2                          */ 1, /*new_declarator                 */ 0
 5241         , /*new_type_name                  */ 1, /*none_statement                 */ 0, /*operator_function_name         */ 1
 5242         , /*other_config                   */ 8, /*parameter_list                 */ 1, /*parameter_list_extended        */ 1
 5243         , /*pm_expression                  */ 1, /*postfix_expression             */ 1, /*pretty::parse_entry            */ 1
 5244         , /*primary_expression             */ 1, /*program                        */ 0, /*protect_declare                */ 1
 5245         , /*ptr_operator                   */ 1, /*qualified_name                 */ 1, /*qualified_name_elem            */ 1
 5246         , /*quick_prog                     */ 0, /*quick_prog_elem                */ 0, /*range_in_liste                 */ 1
 5247         , /*range_modifier                 */ 1, /*range_modifier_function        */ 1, /*range_modifier_ident           */ 0
 5248         , /*range_pragma                   */ 8, /*relational_expression          */ 1, /*sc_specifier                   */ 0
 5249         , /*shift_expression               */ 1, /*simple_type                    */ 1, /*simple_type_name               */ 1
 5250         , /*sizeof_type                    */ 1, /*stat_all                       */ 0, /*stat_dir                       */ 1
 5251         , /*stat_if_dir                    */ 1, /*stat_ifdef_dir                 */ 1, /*statement                      */ 1
 5252         , /*string_list                    */ 1, /*switch_elem                    */ 1, /*switch_list                    */ 1
 5253         , /*template_type                  */ 1, /*type_and_declarator            */ 1, /*type_descr                     */ 1
 5254         , /*type_name                      */ 1, /*type_specifier                 */ 1, /*type_specifier_without_param   */ 1
 5255         , /*typedef_and_declarator         */ 1, /*unary_expression               */ 1 };
 5256 int                     _arityNode_cplus []
 5257     = { 2, 1, 1, 1, 1, 2, -1, 3, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, 1, 1, 3, 3
 5258         , 3, -1, -1, -1, 2, -1, -1, 3, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
 5259         , -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2
 5260         , -1, -1, 4, -1, -1, 1, 1, 0, -1, 1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 2, -1, 4, 3, -1, 1, 2, 2, 2, -1, -1, -1, -1, 2, -1, -1, -1, -1, 4, 2, 2
 5261         , 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2, -1, 2, 2, 1, 2, 1, -1, 1, 1, 1, -1, 1, 2, 2, -1, 1, 2, -1, 2, 2, 2, 3, 0, 2, 2, 2
 5262         , 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, -1, 2, 0, 2, -1, 1, 1, -1, 3, 2, 1, 1, 1, 1, 1, 1, 2, 1, 3, 3, -1, -1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1
 5263         , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, 2, 2, 2, 2, 1, -1, 2, 1, 1, -1, 2, 0, 9, -1, 2, 1, 2, 1, -1, 2, -1, 2, 0, 1, 1, 0, 2, 1, -1
 5264         , 2, 2, 2, 2, 1, 2, 0, -1, -1, -1, -1, -1, -1, -1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 0, 0, 1, 1, 1, -1, 1, 2, 1
 5265         , 2, 1, 1, 1, 1, 1, 1, 1 };
 5266 STRINGELEM              *listConst_cplus ;
 5267 
 5268 PPTREE bri_parse_entry_cplus ( int error_free )
 5269 {
 5270     return cplus().parse_entry(error_free);
 5271 }
 5272 
 5273 int cplus::init = 0 ;
 5274 
 5275 void cplus::InitConst ()
 5276 {
 5277     if ( !cplus::init ) {
 5278         cplus::init = 1 ;
 5279         STRINGELEM  *inter = listConst ;
 5280         listConst = (STRINGELEM *)0 ;
 5281         AddConstVal("cplus::BDECR", 334);
 5282         AddConstVal("cplus::BINCR", 333);
 5283         AddConstVal("cplus::ADDR", 332);
 5284         AddConstVal("cplus::NOT", 331);
 5285         AddConstVal("cplus::LNEG", 330);
 5286         AddConstVal("cplus::POS", 329);
 5287         AddConstVal("cplus::NEG", 328);
 5288         AddConstVal("cplus::PARAM_TYPE", 327);
 5289         AddConstVal("cplus::STRING_LIST", 326);
 5290         AddConstVal("cplus::LABEL", 325);
 5291         AddConstVal("cplus::THROW_ANSI", 324);
 5292         AddConstVal("cplus::ELSE", 323);
 5293         AddConstVal("cplus::TUNSIGNED", 322);
 5294         AddConstVal("cplus::TSIGNED", 321);
 5295         AddConstVal("cplus::TIDENT", 320);
 5296         AddConstVal("cplus::TFLOAT", 319);
 5297         AddConstVal("cplus::TDOUBLE", 318);
 5298         AddConstVal("cplus::RSHI", 317);
 5299         AddConstVal("cplus::LSHI", 316);
 5300         AddConstVal("cplus::LT", 315);
 5301         AddConstVal("cplus::GT", 314);
 5302         AddConstVal("cplus::GEQU", 313);
 5303         AddConstVal("cplus::LEQU", 312);
 5304         AddConstVal("cplus::SPACE_ARROW", 311);
 5305         AddConstVal("cplus::TAB_DIRECTIVE", 310);
 5306         AddConstVal("cplus::ENUM_PARAMETERS_UNDER", 309);
 5307         AddConstVal("cplus::ENUM_VERT_VALUE", 308);
 5308         AddConstVal("cplus::PROTECT_MEMB", 307);
 5309         AddConstVal("cplus::LANGUAGE", 306);
 5310         AddConstVal("cplus::EXP", 305);
 5311         AddConstVal("cplus::ADECR", 304);
 5312         AddConstVal("cplus::AINCR", 303);
 5313         AddConstVal("cplus::ARROW", 302);
 5314         AddConstVal("cplus::REF", 301);
 5315         AddConstVal("cplus::EXP_ARRAY", 300);
 5316         AddConstVal("cplus::EXP_LIST", 299);
 5317         AddConstVal("cplus::ARROW_MEMB", 298);
 5318         AddConstVal("cplus::DOT_MEMB", 297);
 5319         AddConstVal("cplus::POINETOI", 296);
 5320         AddConstVal("cplus::TIRESUPEETOI", 295);
 5321         AddConstVal("cplus::TIRESUPE", 294);
 5322         AddConstVal("cplus::SUPESUPE", 293);
 5323         AddConstVal("cplus::INFEINFE", 292);
 5324         AddConstVal("cplus::SUPEEGAL", 291);
 5325         AddConstVal("cplus::INFEEGAL", 290);
 5326         AddConstVal("cplus::NONE", 289);
 5327         AddConstVal("cplus::NEW_DECLARATOR", 288);
 5328         AddConstVal("cplus::USING_NAMESPACE", 287);
 5329         AddConstVal("cplus::NAMESPACE_ALIAS", 286);
 5330         AddConstVal("cplus::REM", 285);
 5331         AddConstVal("cplus::DIV", 284);
 5332         AddConstVal("cplus::MUL", 283);
 5333         AddConstVal("cplus::POURC", 282);
 5334         AddConstVal("cplus::MESSAGE_MAP", 281);
 5335         AddConstVal("cplus::MACRO", 280);
 5336         AddConstVal("cplus::TCHAR", 279);
 5337         AddConstVal("cplus::TSHORT", 278);
 5338         AddConstVal("cplus::TLONG", 277);
 5339         AddConstVal("cplus::TINT", 276);
 5340         AddConstVal("cplus::OR", 275);
 5341         AddConstVal("cplus::VBARVBAR", 274);
 5342         AddConstVal("cplus::AND", 273);
 5343         AddConstVal("cplus::ETCOETCO", 272);
 5344         AddConstVal("cplus::COMPOUND_EXT", 271);
 5345         AddConstVal("cplus::EXTERNAL", 270);
 5346         AddConstVal("cplus::INITIALIZER", 269);
 5347         AddConstVal("cplus::LOR", 268);
 5348         AddConstVal("cplus::VBAR", 267);
 5349         AddConstVal("cplus::FUNC", 266);
 5350         AddConstVal("cplus::STAT_VOID", 265);
 5351         AddConstVal("cplus::TEMPLATE_DECL", 264);
 5352         AddConstVal("cplus::SUPE", 263);
 5353         AddConstVal("cplus::CLASS_PARAM", 262);
 5354         AddConstVal("cplus::EXP_SEQ", 261);
 5355         AddConstVal("cplus::LXOR", 260);
 5356         AddConstVal("cplus::CHAP", 259);
 5357         AddConstVal("cplus::EXCEPTION_LIST", 258);
 5358         AddConstVal("cplus::EXCEPTION_ANSI", 257);
 5359         AddConstVal("cplus::EXCEPTION", 256);
 5360         AddConstVal("cplus::NEQU", 255);
 5361         AddConstVal("cplus::EQU", 254);
 5362         AddConstVal("cplus::EXCLEGAL", 253);
 5363         AddConstVal("cplus::EGALEGAL", 252);
 5364         AddConstVal("cplus::PRAGMA", 251);
 5365         AddConstVal("cplus::PARAMETERS", 250);
 5366         AddConstVal("cplus::FUNC_HEADER", 249);
 5367         AddConstVal("cplus::INDENT_FUNCTION_TYPE", 248);
 5368         AddConstVal("cplus::COMMENT_PLUS", 247);
 5369         AddConstVal("cplus::COMMENT_END", 246);
 5370         AddConstVal("cplus::COMMENT_MIDDLE", 245);
 5371         AddConstVal("cplus::COMMENT_START", 244);
 5372         AddConstVal("cplus::MARGIN_VALUE", 243);
 5373         AddConstVal("cplus::BRACE_ALIGN_VALUE", 242);
 5374         AddConstVal("cplus::DECL_ALIGN", 241);
 5375         AddConstVal("cplus::ASSIGN_ALIGN", 240);
 5376         AddConstVal("cplus::SINGLE_SWITCH_INDENT_VALUE", 239);
 5377         AddConstVal("cplus::SIMPLIFY_VALUE", 238);
 5378         AddConstVal("cplus::SIMPLIFY", 237);
 5379         AddConstVal("cplus::MODE_VALUE", 236);
 5380         AddConstVal("cplus::TAB_VALUE", 235);
 5381         AddConstVal("cplus::CONFIG", 234);
 5382         AddConstVal("cplus::NO_PRETTY", 233);
 5383         AddConstVal("cplus::ALINE", 232);
 5384         AddConstVal("cplus::ERROR", 231);
 5385         AddConstVal("cplus::UNDEF", 230);
 5386         AddConstVal("cplus::TYP_AFF_CALL", 229);
 5387         AddConstVal("cplus::MEMBER_DECLARATOR", 228);
 5388         AddConstVal("cplus::TYP_ARRAY", 227);
 5389         AddConstVal("cplus::CFER", 226);
 5390         AddConstVal("cplus::COUV", 225);
 5391         AddConstVal("cplus::FOR_DECLARATION", 224);
 5392         AddConstVal("cplus::DECLARATION", 223);
 5393         AddConstVal("cplus::CTOR_INITIALIZER", 222);
 5394         AddConstVal("cplus::CTOR_INIT", 221);
 5395         AddConstVal("cplus::LONGLONG", 220);
 5396         AddConstVal("cplus::IUNLONGLONG", 219);
 5397         AddConstVal("cplus::IUNLONG", 218);
 5398         AddConstVal("cplus::IUN", 217);
 5399         AddConstVal("cplus::ILONGLONG", 216);
 5400         AddConstVal("cplus::ILONG", 215);
 5401         AddConstVal("cplus::RANGE_MODIFIER", 214);
 5402         AddConstVal("cplus::COND_AFF", 213);
 5403         AddConstVal("cplus::INTE", 212);
 5404         AddConstVal("cplus::COMPOUND", 211);
 5405         AddConstVal("cplus::CLASS_DECL", 210);
 5406         AddConstVal("cplus::AFER", 209);
 5407         AddConstVal("cplus::CATCH_ANSI", 208);
 5408         AddConstVal("cplus::EXCEPT_ANSI_ALL", 207);
 5409         AddConstVal("cplus::CAST", 206);
 5410         AddConstVal("cplus::DPOI", 205);
 5411         AddConstVal("cplus::TYP_BIT", 204);
 5412         AddConstVal("cplus::PROTECT", 203);
 5413         AddConstVal("cplus::BASE_LIST", 202);
 5414         AddConstVal("cplus::XOR_AFF", 201);
 5415         AddConstVal("cplus::OR_AFF", 200);
 5416         AddConstVal("cplus::AND_AFF", 199);
 5417         AddConstVal("cplus::RSH_AFF", 198);
 5418         AddConstVal("cplus::LSH_AFF", 197);
 5419         AddConstVal("cplus::MIN_AFF", 196);
 5420         AddConstVal("cplus::PLU_AFF", 195);
 5421         AddConstVal("cplus::REM_AFF", 194);
 5422         AddConstVal("cplus::DIV_AFF", 193);
 5423         AddConstVal("cplus::MUL_AFF", 192);
 5424         AddConstVal("cplus::AFF", 191);
 5425         AddConstVal("cplus::VAR_LIST", 190);
 5426         AddConstVal("cplus::TYP_LIST", 189);
 5427         AddConstVal("cplus::TYP_AFF", 188);
 5428         AddConstVal("cplus::ABST_DECLARATOR", 187);
 5429         AddConstVal("cplus::DECLARATOR", 186);
 5430         AddConstVal("cplus::POINPOINPOIN", 185);
 5431         AddConstVal("cplus::LAND", 184);
 5432         AddConstVal("cplus::INIT_NEW", 183);
 5433         AddConstVal("cplus::VIRG", 182);
 5434         AddConstVal("cplus::QUALIFIED", 181);
 5435         AddConstVal("cplus::MINUS", 180);
 5436         AddConstVal("cplus::TYP", 179);
 5437         AddConstVal("cplus::PFER", 178);
 5438         AddConstVal("cplus::DESTRUCT", 177);
 5439         AddConstVal("cplus::TYP_REF", 176);
 5440         AddCon