LCOV - code coverage report
Current view: top level - /mnt/build/buildbot/bld/build-lcov/gcc/m2/gm2-compiler-boot - M2Reserved.c (source / functions) Coverage Total Hit
Test: gcc.info Lines: 93.5 % 199 186
Test Date: 2024-04-20 14:03:02 Functions: 50.0 % 6 3
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: - 0 0

             Branch data     Line data    Source code
       1                 :             : /* do not edit automatically generated by mc from M2Reserved.  */
       2                 :             : /* M2Reserved.mod determines is a token is a reserved word.
       3                 :             : 
       4                 :             : Copyright (C) 2001-2024 Free Software Foundation, Inc.
       5                 :             : Contributed by Gaius Mulley <gaius.mulley@southwales.ac.uk>.
       6                 :             : 
       7                 :             : This file is part of GNU Modula-2.
       8                 :             : 
       9                 :             : GNU Modula-2 is free software; you can redistribute it and/or modify
      10                 :             : it under the terms of the GNU General Public License as published by
      11                 :             : the Free Software Foundation; either version 3, or (at your option)
      12                 :             : any later version.
      13                 :             : 
      14                 :             : GNU Modula-2 is distributed in the hope that it will be useful, but
      15                 :             : WITHOUT ANY WARRANTY; without even the implied warranty of
      16                 :             : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      17                 :             : General Public License for more details.
      18                 :             : 
      19                 :             : You should have received a copy of the GNU General Public License
      20                 :             : along with GNU Modula-2; see the file COPYING3.  If not see
      21                 :             : <http://www.gnu.org/licenses/>.  */
      22                 :             : 
      23                 :             : #include "config.h"
      24                 :             : #include "system.h"
      25                 :             : #include <stdbool.h>
      26                 :             : #   if !defined (PROC_D)
      27                 :             : #      define PROC_D
      28                 :             :        typedef void (*PROC_t) (void);
      29                 :             :        typedef struct { PROC_t proc; } PROC;
      30                 :             : #   endif
      31                 :             : 
      32                 :             : #   if !defined (TRUE)
      33                 :             : #      define TRUE (1==1)
      34                 :             : #   endif
      35                 :             : 
      36                 :             : #   if !defined (FALSE)
      37                 :             : #      define FALSE (1==0)
      38                 :             : #   endif
      39                 :             : 
      40                 :             : #define _M2Reserved_H
      41                 :             : #define _M2Reserved_C
      42                 :             : 
      43                 :             : #   include "GSymbolKey.h"
      44                 :             : #   include "GNameKey.h"
      45                 :             : #   include "GASCII.h"
      46                 :             : 
      47                 :             : NameKey_Name M2Reserved_RDirectiveTok;
      48                 :             : NameKey_Name M2Reserved_LDirectiveTok;
      49                 :             : NameKey_Name M2Reserved_InlineTok;
      50                 :             : NameKey_Name M2Reserved_BuiltinTok;
      51                 :             : NameKey_Name M2Reserved_AttributeTok;
      52                 :             : NameKey_Name M2Reserved_FileTok;
      53                 :             : NameKey_Name M2Reserved_LineTok;
      54                 :             : NameKey_Name M2Reserved_DateTok;
      55                 :             : NameKey_Name M2Reserved_VolatileTok;
      56                 :             : NameKey_Name M2Reserved_AsmTok;
      57                 :             : NameKey_Name M2Reserved_EofTok;
      58                 :             : NameKey_Name M2Reserved_WithTok;
      59                 :             : NameKey_Name M2Reserved_WhileTok;
      60                 :             : NameKey_Name M2Reserved_VarTok;
      61                 :             : NameKey_Name M2Reserved_UntilTok;
      62                 :             : NameKey_Name M2Reserved_TypeTok;
      63                 :             : NameKey_Name M2Reserved_ToTok;
      64                 :             : NameKey_Name M2Reserved_ThenTok;
      65                 :             : NameKey_Name M2Reserved_SetTok;
      66                 :             : NameKey_Name M2Reserved_ReturnTok;
      67                 :             : NameKey_Name M2Reserved_RepeatTok;
      68                 :             : NameKey_Name M2Reserved_RemTok;
      69                 :             : NameKey_Name M2Reserved_RetryTok;
      70                 :             : NameKey_Name M2Reserved_RecordTok;
      71                 :             : NameKey_Name M2Reserved_UnQualifiedTok;
      72                 :             : NameKey_Name M2Reserved_QualifiedTok;
      73                 :             : NameKey_Name M2Reserved_ProcedureTok;
      74                 :             : NameKey_Name M2Reserved_PointerTok;
      75                 :             : NameKey_Name M2Reserved_PackedSetTok;
      76                 :             : NameKey_Name M2Reserved_OrTok;
      77                 :             : NameKey_Name M2Reserved_OfTok;
      78                 :             : NameKey_Name M2Reserved_NotTok;
      79                 :             : NameKey_Name M2Reserved_ModuleTok;
      80                 :             : NameKey_Name M2Reserved_ModTok;
      81                 :             : NameKey_Name M2Reserved_LoopTok;
      82                 :             : NameKey_Name M2Reserved_InTok;
      83                 :             : NameKey_Name M2Reserved_ImportTok;
      84                 :             : NameKey_Name M2Reserved_ImplementationTok;
      85                 :             : NameKey_Name M2Reserved_IfTok;
      86                 :             : NameKey_Name M2Reserved_FromTok;
      87                 :             : NameKey_Name M2Reserved_ForTok;
      88                 :             : NameKey_Name M2Reserved_FinallyTok;
      89                 :             : NameKey_Name M2Reserved_ExportTok;
      90                 :             : NameKey_Name M2Reserved_ExitTok;
      91                 :             : NameKey_Name M2Reserved_ExceptTok;
      92                 :             : NameKey_Name M2Reserved_EndTok;
      93                 :             : NameKey_Name M2Reserved_ElsifTok;
      94                 :             : NameKey_Name M2Reserved_ElseTok;
      95                 :             : NameKey_Name M2Reserved_DoTok;
      96                 :             : NameKey_Name M2Reserved_DivTok;
      97                 :             : NameKey_Name M2Reserved_DefinitionTok;
      98                 :             : NameKey_Name M2Reserved_ConstTok;
      99                 :             : NameKey_Name M2Reserved_CaseTok;
     100                 :             : NameKey_Name M2Reserved_ByTok;
     101                 :             : NameKey_Name M2Reserved_BeginTok;
     102                 :             : NameKey_Name M2Reserved_ArrayTok;
     103                 :             : NameKey_Name M2Reserved_AndTok;
     104                 :             : NameKey_Name M2Reserved_DoubleQuotesTok;
     105                 :             : NameKey_Name M2Reserved_BarTok;
     106                 :             : NameKey_Name M2Reserved_RCBraTok;
     107                 :             : NameKey_Name M2Reserved_RSBraTok;
     108                 :             : NameKey_Name M2Reserved_RParaTok;
     109                 :             : NameKey_Name M2Reserved_ColonTok;
     110                 :             : NameKey_Name M2Reserved_PeriodPeriodTok;
     111                 :             : NameKey_Name M2Reserved_GreaterEqualTok;
     112                 :             : NameKey_Name M2Reserved_LessEqualTok;
     113                 :             : NameKey_Name M2Reserved_LessGreaterTok;
     114                 :             : NameKey_Name M2Reserved_GreaterTok;
     115                 :             : NameKey_Name M2Reserved_LessTok;
     116                 :             : NameKey_Name M2Reserved_HashTok;
     117                 :             : NameKey_Name M2Reserved_EqualTok;
     118                 :             : NameKey_Name M2Reserved_SingleQuoteTok;
     119                 :             : NameKey_Name M2Reserved_UpArrowTok;
     120                 :             : NameKey_Name M2Reserved_LCBraTok;
     121                 :             : NameKey_Name M2Reserved_LSBraTok;
     122                 :             : NameKey_Name M2Reserved_LParaTok;
     123                 :             : NameKey_Name M2Reserved_SemiColonTok;
     124                 :             : NameKey_Name M2Reserved_CommaTok;
     125                 :             : NameKey_Name M2Reserved_PeriodTok;
     126                 :             : NameKey_Name M2Reserved_AmbersandTok;
     127                 :             : NameKey_Name M2Reserved_BecomesTok;
     128                 :             : NameKey_Name M2Reserved_DivideTok;
     129                 :             : NameKey_Name M2Reserved_TimesTok;
     130                 :             : NameKey_Name M2Reserved_MinusTok;
     131                 :             : NameKey_Name M2Reserved_PlusTok;
     132                 :             : NameKey_Name M2Reserved_NulTok;
     133                 :             : #   define eof (char) 032
     134                 :             : typedef enum {M2Reserved_eoftok, M2Reserved_plustok, M2Reserved_minustok, M2Reserved_timestok, M2Reserved_dividetok, M2Reserved_becomestok, M2Reserved_ambersandtok, M2Reserved_periodtok, M2Reserved_commatok, M2Reserved_semicolontok, M2Reserved_lparatok, M2Reserved_rparatok, M2Reserved_lsbratok, M2Reserved_rsbratok, M2Reserved_lcbratok, M2Reserved_rcbratok, M2Reserved_uparrowtok, M2Reserved_singlequotetok, M2Reserved_equaltok, M2Reserved_hashtok, M2Reserved_lesstok, M2Reserved_greatertok, M2Reserved_lessgreatertok, M2Reserved_lessequaltok, M2Reserved_greaterequaltok, M2Reserved_ldirectivetok, M2Reserved_rdirectivetok, M2Reserved_periodperiodtok, M2Reserved_colontok, M2Reserved_doublequotestok, M2Reserved_bartok, M2Reserved_andtok, M2Reserved_arraytok, M2Reserved_begintok, M2Reserved_bytok, M2Reserved_casetok, M2Reserved_consttok, M2Reserved_definitiontok, M2Reserved_divtok, M2Reserved_dotok, M2Reserved_elsetok, M2Reserved_elsiftok, M2Reserved_endtok, M2Reserved_excepttok, M2Reserved_exittok, M2Reserved_exporttok, M2Reserved_finallytok, M2Reserved_fortok, M2Reserved_fromtok, M2Reserved_iftok, M2Reserved_implementationtok, M2Reserved_importtok, M2Reserved_intok, M2Reserved_looptok, M2Reserved_modtok, M2Reserved_moduletok, M2Reserved_nottok, M2Reserved_oftok, M2Reserved_ortok, M2Reserved_packedsettok, M2Reserved_pointertok, M2Reserved_proceduretok, M2Reserved_qualifiedtok, M2Reserved_unqualifiedtok, M2Reserved_recordtok, M2Reserved_remtok, M2Reserved_repeattok, M2Reserved_retrytok, M2Reserved_returntok, M2Reserved_settok, M2Reserved_thentok, M2Reserved_totok, M2Reserved_typetok, M2Reserved_untiltok, M2Reserved_vartok, M2Reserved_whiletok, M2Reserved_withtok, M2Reserved_asmtok, M2Reserved_volatiletok, M2Reserved_periodperiodperiodtok, M2Reserved_datetok, M2Reserved_linetok, M2Reserved_filetok, M2Reserved_attributetok, M2Reserved_builtintok, M2Reserved_inlinetok, M2Reserved_integertok, M2Reserved_identtok, M2Reserved_realtok, M2Reserved_stringtok, M2Reserved_virtualrangetok} M2Reserved_toktype;
     135                 :             : 
     136                 :             : static SymbolKey_SymbolTree NameTotok;
     137                 :             : static SymbolKey_SymbolTree tokToName;
     138                 :             : 
     139                 :             : /*
     140                 :             :    IsReserved - returns TRUE if the symbol, Name, is a reserved word.
     141                 :             :                 If TRUE it also sets tok to the appropriate enumerated
     142                 :             :                 value. It will set tok to eoftok if appropriate.
     143                 :             : */
     144                 :             : 
     145                 :             : extern "C" bool M2Reserved_IsReserved (NameKey_Name n, M2Reserved_toktype *tok);
     146                 :             : 
     147                 :             : /*
     148                 :             :    tokToTok - returns a Tok given the enumerated variable, t.
     149                 :             : */
     150                 :             : 
     151                 :             : extern "C" NameKey_Name M2Reserved_tokToTok (M2Reserved_toktype t);
     152                 :             : 
     153                 :             : /*
     154                 :             :    AddKeyword - adds the Name and enumerated value of a keyword
     155                 :             :                 into the binary tree.
     156                 :             : */
     157                 :             : 
     158                 :             : static void AddKeyword (NameKey_Name n, M2Reserved_toktype tok);
     159                 :             : 
     160                 :             : /*
     161                 :             :    AddKeyword - adds the Name and enumerated value of a keyword
     162                 :             :                 into the binary tree.
     163                 :             : */
     164                 :             : 
     165                 :             : static void Init (void);
     166                 :             : 
     167                 :             : 
     168                 :             : /*
     169                 :             :    AddKeyword - adds the Name and enumerated value of a keyword
     170                 :             :                 into the binary tree.
     171                 :             : */
     172                 :             : 
     173                 :     1412628 : static void AddKeyword (NameKey_Name n, M2Reserved_toktype tok)
     174                 :             : {
     175                 :     1412628 :   SymbolKey_PutSymKey (NameTotok, n, static_cast<unsigned int> (tok));
     176                 :     1412628 :   SymbolKey_PutSymKey (tokToName, (NameKey_Name) (tok), n);
     177                 :     1412628 : }
     178                 :             : 
     179                 :             : 
     180                 :             : /*
     181                 :             :    AddKeyword - adds the Name and enumerated value of a keyword
     182                 :             :                 into the binary tree.
     183                 :             : */
     184                 :             : 
     185                 :       16817 : static void Init (void)
     186                 :             : {
     187                 :       16817 :   typedef struct Init__T1_a Init__T1;
     188                 :             : 
     189                 :       16817 :   struct Init__T1_a { char array[1+1]; };
     190                 :       16817 :   Init__T1 a;
     191                 :             : 
     192                 :       16817 :   SymbolKey_InitTree (&NameTotok);
     193                 :       16817 :   SymbolKey_InitTree (&tokToName);
     194                 :       16817 :   M2Reserved_NulTok = NameKey_NulName;
     195                 :       16817 :   M2Reserved_PlusTok = NameKey_MakeKey ((const char *) "+", 1);
     196                 :       16817 :   AddKeyword (M2Reserved_PlusTok, M2Reserved_plustok);
     197                 :       16817 :   M2Reserved_MinusTok = NameKey_MakeKey ((const char *) "-", 1);
     198                 :       16817 :   AddKeyword (M2Reserved_MinusTok, M2Reserved_minustok);
     199                 :       16817 :   M2Reserved_TimesTok = NameKey_MakeKey ((const char *) "*", 1);
     200                 :       16817 :   AddKeyword (M2Reserved_TimesTok, M2Reserved_timestok);
     201                 :       16817 :   M2Reserved_DivideTok = NameKey_MakeKey ((const char *) "/", 1);
     202                 :       16817 :   AddKeyword (M2Reserved_DivideTok, M2Reserved_dividetok);
     203                 :       16817 :   M2Reserved_BecomesTok = NameKey_MakeKey ((const char *) ":=", 2);
     204                 :       16817 :   AddKeyword (M2Reserved_BecomesTok, M2Reserved_becomestok);
     205                 :       16817 :   M2Reserved_AmbersandTok = NameKey_MakeKey ((const char *) "&", 1);
     206                 :       16817 :   AddKeyword (M2Reserved_AmbersandTok, M2Reserved_ambersandtok);
     207                 :       16817 :   M2Reserved_PeriodTok = NameKey_MakeKey ((const char *) ".", 1);
     208                 :       16817 :   AddKeyword (M2Reserved_PeriodTok, M2Reserved_periodtok);
     209                 :       16817 :   M2Reserved_CommaTok = NameKey_MakeKey ((const char *) ",", 1);
     210                 :       16817 :   AddKeyword (M2Reserved_CommaTok, M2Reserved_commatok);
     211                 :       16817 :   M2Reserved_SemiColonTok = NameKey_MakeKey ((const char *) ";", 1);
     212                 :       16817 :   AddKeyword (M2Reserved_SemiColonTok, M2Reserved_semicolontok);
     213                 :       16817 :   M2Reserved_LParaTok = NameKey_MakeKey ((const char *) "(", 1);
     214                 :       16817 :   AddKeyword (M2Reserved_LParaTok, M2Reserved_lparatok);
     215                 :       16817 :   M2Reserved_LSBraTok = NameKey_MakeKey ((const char *) "[", 1);
     216                 :       16817 :   AddKeyword (M2Reserved_LSBraTok, M2Reserved_lsbratok);
     217                 :       16817 :   M2Reserved_LCBraTok = NameKey_MakeKey ((const char *) "{", 1);
     218                 :       16817 :   AddKeyword (M2Reserved_LCBraTok, M2Reserved_lcbratok);
     219                 :       16817 :   M2Reserved_UpArrowTok = NameKey_MakeKey ((const char *) "^", 1);
     220                 :       16817 :   AddKeyword (M2Reserved_UpArrowTok, M2Reserved_uparrowtok);
     221                 :       16817 :   M2Reserved_SingleQuoteTok = NameKey_MakeKey ((const char *) "'", 1);
     222                 :       16817 :   AddKeyword (M2Reserved_SingleQuoteTok, M2Reserved_singlequotetok);
     223                 :       16817 :   M2Reserved_EqualTok = NameKey_MakeKey ((const char *) "=", 1);
     224                 :       16817 :   AddKeyword (M2Reserved_EqualTok, M2Reserved_equaltok);
     225                 :       16817 :   M2Reserved_HashTok = NameKey_MakeKey ((const char *) "#", 1);
     226                 :       16817 :   AddKeyword (M2Reserved_HashTok, M2Reserved_hashtok);
     227                 :       16817 :   M2Reserved_LessTok = NameKey_MakeKey ((const char *) "<", 1);
     228                 :       16817 :   AddKeyword (M2Reserved_LessTok, M2Reserved_lesstok);
     229                 :       16817 :   M2Reserved_GreaterTok = NameKey_MakeKey ((const char *) ">", 1);
     230                 :       16817 :   AddKeyword (M2Reserved_GreaterTok, M2Reserved_greatertok);
     231                 :       16817 :   M2Reserved_LessGreaterTok = NameKey_MakeKey ((const char *) "<>", 2);
     232                 :       16817 :   AddKeyword (M2Reserved_LessGreaterTok, M2Reserved_lessgreatertok);
     233                 :       16817 :   M2Reserved_LessEqualTok = NameKey_MakeKey ((const char *) "<=", 2);
     234                 :       16817 :   AddKeyword (M2Reserved_LessEqualTok, M2Reserved_lessequaltok);
     235                 :       16817 :   M2Reserved_GreaterEqualTok = NameKey_MakeKey ((const char *) ">=", 2);
     236                 :       16817 :   AddKeyword (M2Reserved_GreaterEqualTok, M2Reserved_greaterequaltok);
     237                 :       16817 :   M2Reserved_LDirectiveTok = NameKey_MakeKey ((const char *) "<*", 2);
     238                 :       16817 :   AddKeyword (M2Reserved_LDirectiveTok, M2Reserved_ldirectivetok);
     239                 :       16817 :   M2Reserved_RDirectiveTok = NameKey_MakeKey ((const char *) "*>", 2);
     240                 :       16817 :   AddKeyword (M2Reserved_RDirectiveTok, M2Reserved_rdirectivetok);
     241                 :       16817 :   M2Reserved_PeriodPeriodTok = NameKey_MakeKey ((const char *) "..", 2);
     242                 :       16817 :   AddKeyword (M2Reserved_PeriodPeriodTok, M2Reserved_periodperiodtok);
     243                 :       16817 :   M2Reserved_ColonTok = NameKey_MakeKey ((const char *) ":", 1);
     244                 :       16817 :   AddKeyword (M2Reserved_ColonTok, M2Reserved_colontok);
     245                 :       16817 :   M2Reserved_RParaTok = NameKey_MakeKey ((const char *) ")", 1);
     246                 :       16817 :   AddKeyword (M2Reserved_RParaTok, M2Reserved_rparatok);
     247                 :       16817 :   M2Reserved_RSBraTok = NameKey_MakeKey ((const char *) "]", 1);
     248                 :       16817 :   AddKeyword (M2Reserved_RSBraTok, M2Reserved_rsbratok);
     249                 :       16817 :   M2Reserved_RCBraTok = NameKey_MakeKey ((const char *) "}", 1);
     250                 :       16817 :   AddKeyword (M2Reserved_RCBraTok, M2Reserved_rcbratok);
     251                 :       16817 :   M2Reserved_BarTok = NameKey_MakeKey ((const char *) "|", 1);
     252                 :       16817 :   AddKeyword (M2Reserved_BarTok, M2Reserved_bartok);
     253                 :       16817 :   M2Reserved_DoubleQuotesTok = NameKey_MakeKey ((const char *) "\"", 1);
     254                 :       16817 :   AddKeyword (M2Reserved_DoubleQuotesTok, M2Reserved_doublequotestok);
     255                 :       16817 :   M2Reserved_AndTok = NameKey_MakeKey ((const char *) "AND", 3);
     256                 :       16817 :   AddKeyword (M2Reserved_AndTok, M2Reserved_andtok);
     257                 :       16817 :   M2Reserved_ArrayTok = NameKey_MakeKey ((const char *) "ARRAY", 5);
     258                 :       16817 :   AddKeyword (M2Reserved_ArrayTok, M2Reserved_arraytok);
     259                 :       16817 :   M2Reserved_BeginTok = NameKey_MakeKey ((const char *) "BEGIN", 5);
     260                 :       16817 :   AddKeyword (M2Reserved_BeginTok, M2Reserved_begintok);
     261                 :       16817 :   M2Reserved_ByTok = NameKey_MakeKey ((const char *) "BY", 2);
     262                 :       16817 :   AddKeyword (M2Reserved_ByTok, M2Reserved_bytok);
     263                 :       16817 :   M2Reserved_CaseTok = NameKey_MakeKey ((const char *) "CASE", 4);
     264                 :       16817 :   AddKeyword (M2Reserved_CaseTok, M2Reserved_casetok);
     265                 :       16817 :   M2Reserved_ConstTok = NameKey_MakeKey ((const char *) "CONST", 5);
     266                 :       16817 :   AddKeyword (M2Reserved_ConstTok, M2Reserved_consttok);
     267                 :       16817 :   M2Reserved_DefinitionTok = NameKey_MakeKey ((const char *) "DEFINITION", 10);
     268                 :       16817 :   AddKeyword (M2Reserved_DefinitionTok, M2Reserved_definitiontok);
     269                 :       16817 :   M2Reserved_DivTok = NameKey_MakeKey ((const char *) "DIV", 3);
     270                 :       16817 :   AddKeyword (M2Reserved_DivTok, M2Reserved_divtok);
     271                 :       16817 :   M2Reserved_DoTok = NameKey_MakeKey ((const char *) "DO", 2);
     272                 :       16817 :   AddKeyword (M2Reserved_DoTok, M2Reserved_dotok);
     273                 :       16817 :   M2Reserved_ElseTok = NameKey_MakeKey ((const char *) "ELSE", 4);
     274                 :       16817 :   AddKeyword (M2Reserved_ElseTok, M2Reserved_elsetok);
     275                 :       16817 :   M2Reserved_ElsifTok = NameKey_MakeKey ((const char *) "ELSIF", 5);
     276                 :       16817 :   AddKeyword (M2Reserved_ElsifTok, M2Reserved_elsiftok);
     277                 :       16817 :   M2Reserved_EndTok = NameKey_MakeKey ((const char *) "END", 3);
     278                 :       16817 :   AddKeyword (M2Reserved_EndTok, M2Reserved_endtok);
     279                 :       16817 :   M2Reserved_ExitTok = NameKey_MakeKey ((const char *) "EXIT", 4);
     280                 :       16817 :   AddKeyword (M2Reserved_ExitTok, M2Reserved_exittok);
     281                 :       16817 :   M2Reserved_ExceptTok = NameKey_MakeKey ((const char *) "EXCEPT", 6);
     282                 :       16817 :   AddKeyword (M2Reserved_ExceptTok, M2Reserved_excepttok);
     283                 :       16817 :   M2Reserved_ExportTok = NameKey_MakeKey ((const char *) "EXPORT", 6);
     284                 :       16817 :   AddKeyword (M2Reserved_ExportTok, M2Reserved_exporttok);
     285                 :       16817 :   M2Reserved_FinallyTok = NameKey_MakeKey ((const char *) "FINALLY", 7);
     286                 :       16817 :   AddKeyword (M2Reserved_FinallyTok, M2Reserved_finallytok);
     287                 :       16817 :   M2Reserved_ForTok = NameKey_MakeKey ((const char *) "FOR", 3);
     288                 :       16817 :   AddKeyword (M2Reserved_ForTok, M2Reserved_fortok);
     289                 :       16817 :   M2Reserved_FromTok = NameKey_MakeKey ((const char *) "FROM", 4);
     290                 :       16817 :   AddKeyword (M2Reserved_FromTok, M2Reserved_fromtok);
     291                 :       16817 :   M2Reserved_IfTok = NameKey_MakeKey ((const char *) "IF", 2);
     292                 :       16817 :   AddKeyword (M2Reserved_IfTok, M2Reserved_iftok);
     293                 :       16817 :   M2Reserved_ImplementationTok = NameKey_MakeKey ((const char *) "IMPLEMENTATION", 14);
     294                 :       16817 :   AddKeyword (M2Reserved_ImplementationTok, M2Reserved_implementationtok);
     295                 :       16817 :   M2Reserved_ImportTok = NameKey_MakeKey ((const char *) "IMPORT", 6);
     296                 :       16817 :   AddKeyword (M2Reserved_ImportTok, M2Reserved_importtok);
     297                 :       16817 :   M2Reserved_InTok = NameKey_MakeKey ((const char *) "IN", 2);
     298                 :       16817 :   AddKeyword (M2Reserved_InTok, M2Reserved_intok);
     299                 :       16817 :   M2Reserved_LoopTok = NameKey_MakeKey ((const char *) "LOOP", 4);
     300                 :       16817 :   AddKeyword (M2Reserved_LoopTok, M2Reserved_looptok);
     301                 :       16817 :   M2Reserved_ModTok = NameKey_MakeKey ((const char *) "MOD", 3);
     302                 :       16817 :   AddKeyword (M2Reserved_ModTok, M2Reserved_modtok);
     303                 :       16817 :   M2Reserved_ModuleTok = NameKey_MakeKey ((const char *) "MODULE", 6);
     304                 :       16817 :   AddKeyword (M2Reserved_ModuleTok, M2Reserved_moduletok);
     305                 :       16817 :   M2Reserved_NotTok = NameKey_MakeKey ((const char *) "NOT", 3);
     306                 :       16817 :   AddKeyword (M2Reserved_NotTok, M2Reserved_nottok);
     307                 :       16817 :   M2Reserved_OfTok = NameKey_MakeKey ((const char *) "OF", 2);
     308                 :       16817 :   AddKeyword (M2Reserved_OfTok, M2Reserved_oftok);
     309                 :       16817 :   M2Reserved_OrTok = NameKey_MakeKey ((const char *) "OR", 2);
     310                 :       16817 :   AddKeyword (M2Reserved_OrTok, M2Reserved_ortok);
     311                 :             :   /* 
     312                 :             :    PackedTok := MakeKey('PACKED') ;
     313                 :             :    AddKeyword(PackedTok, packedtok) ;
     314                 :             :   */
     315                 :       16817 :   M2Reserved_PackedSetTok = NameKey_MakeKey ((const char *) "PACKEDSET", 9);
     316                 :       16817 :   AddKeyword (M2Reserved_PackedSetTok, M2Reserved_packedsettok);
     317                 :       16817 :   M2Reserved_PointerTok = NameKey_MakeKey ((const char *) "POINTER", 7);
     318                 :       16817 :   AddKeyword (M2Reserved_PointerTok, M2Reserved_pointertok);
     319                 :       16817 :   M2Reserved_ProcedureTok = NameKey_MakeKey ((const char *) "PROCEDURE", 9);
     320                 :       16817 :   AddKeyword (M2Reserved_ProcedureTok, M2Reserved_proceduretok);
     321                 :       16817 :   M2Reserved_QualifiedTok = NameKey_MakeKey ((const char *) "QUALIFIED", 9);
     322                 :       16817 :   AddKeyword (M2Reserved_QualifiedTok, M2Reserved_qualifiedtok);
     323                 :       16817 :   M2Reserved_UnQualifiedTok = NameKey_MakeKey ((const char *) "UNQUALIFIED", 11);
     324                 :       16817 :   AddKeyword (M2Reserved_UnQualifiedTok, M2Reserved_unqualifiedtok);
     325                 :       16817 :   M2Reserved_RecordTok = NameKey_MakeKey ((const char *) "RECORD", 6);
     326                 :       16817 :   AddKeyword (M2Reserved_RecordTok, M2Reserved_recordtok);
     327                 :       16817 :   M2Reserved_RemTok = NameKey_MakeKey ((const char *) "REM", 3);
     328                 :       16817 :   AddKeyword (M2Reserved_RemTok, M2Reserved_remtok);
     329                 :       16817 :   M2Reserved_RepeatTok = NameKey_MakeKey ((const char *) "REPEAT", 6);
     330                 :       16817 :   AddKeyword (M2Reserved_RepeatTok, M2Reserved_repeattok);
     331                 :       16817 :   M2Reserved_RetryTok = NameKey_MakeKey ((const char *) "RETRY", 5);
     332                 :       16817 :   AddKeyword (M2Reserved_RetryTok, M2Reserved_retrytok);
     333                 :       16817 :   M2Reserved_ReturnTok = NameKey_MakeKey ((const char *) "RETURN", 6);
     334                 :       16817 :   AddKeyword (M2Reserved_ReturnTok, M2Reserved_returntok);
     335                 :       16817 :   M2Reserved_SetTok = NameKey_MakeKey ((const char *) "SET", 3);
     336                 :       16817 :   AddKeyword (M2Reserved_SetTok, M2Reserved_settok);
     337                 :       16817 :   M2Reserved_ThenTok = NameKey_MakeKey ((const char *) "THEN", 4);
     338                 :       16817 :   AddKeyword (M2Reserved_ThenTok, M2Reserved_thentok);
     339                 :       16817 :   M2Reserved_ToTok = NameKey_MakeKey ((const char *) "TO", 2);
     340                 :       16817 :   AddKeyword (M2Reserved_ToTok, M2Reserved_totok);
     341                 :       16817 :   M2Reserved_TypeTok = NameKey_MakeKey ((const char *) "TYPE", 4);
     342                 :       16817 :   AddKeyword (M2Reserved_TypeTok, M2Reserved_typetok);
     343                 :       16817 :   M2Reserved_UntilTok = NameKey_MakeKey ((const char *) "UNTIL", 5);
     344                 :       16817 :   AddKeyword (M2Reserved_UntilTok, M2Reserved_untiltok);
     345                 :       16817 :   M2Reserved_VarTok = NameKey_MakeKey ((const char *) "VAR", 3);
     346                 :       16817 :   AddKeyword (M2Reserved_VarTok, M2Reserved_vartok);
     347                 :       16817 :   M2Reserved_WhileTok = NameKey_MakeKey ((const char *) "WHILE", 5);
     348                 :       16817 :   AddKeyword (M2Reserved_WhileTok, M2Reserved_whiletok);
     349                 :       16817 :   M2Reserved_WithTok = NameKey_MakeKey ((const char *) "WITH", 4);
     350                 :       16817 :   AddKeyword (M2Reserved_WithTok, M2Reserved_withtok);
     351                 :       16817 :   M2Reserved_AsmTok = NameKey_MakeKey ((const char *) "ASM", 3);
     352                 :       16817 :   AddKeyword (M2Reserved_AsmTok, M2Reserved_asmtok);
     353                 :       16817 :   M2Reserved_VolatileTok = NameKey_MakeKey ((const char *) "VOLATILE", 8);
     354                 :       16817 :   AddKeyword (M2Reserved_VolatileTok, M2Reserved_volatiletok);
     355                 :       16817 :   M2Reserved_DateTok = NameKey_MakeKey ((const char *) "__DATE__", 8);  /* C compatible preprocessor primatives  */
     356                 :       16817 :   AddKeyword (M2Reserved_DateTok, M2Reserved_datetok);  /* C compatible preprocessor primatives  */
     357                 :       16817 :   M2Reserved_LineTok = NameKey_MakeKey ((const char *) "__LINE__", 8);
     358                 :       16817 :   AddKeyword (M2Reserved_LineTok, M2Reserved_linetok);
     359                 :       16817 :   M2Reserved_FileTok = NameKey_MakeKey ((const char *) "__FILE__", 8);
     360                 :       16817 :   AddKeyword (M2Reserved_FileTok, M2Reserved_filetok);
     361                 :       16817 :   M2Reserved_AttributeTok = NameKey_MakeKey ((const char *) "__ATTRIBUTE__", 13);  /* GCC extension incorporated into gm2  */
     362                 :       16817 :   AddKeyword (M2Reserved_AttributeTok, M2Reserved_attributetok);  /* GCC extension incorporated into gm2  */
     363                 :       16817 :   M2Reserved_BuiltinTok = NameKey_MakeKey ((const char *) "__BUILTIN__", 11);  /* GCC extension incorporated into gm2  */
     364                 :       16817 :   AddKeyword (M2Reserved_BuiltinTok, M2Reserved_builtintok);  /* GCC extension incorporated into gm2  */
     365                 :       16817 :   M2Reserved_InlineTok = NameKey_MakeKey ((const char *) "__INLINE__", 10);  /* GCC extension incorporated into gm2  */
     366                 :       16817 :   AddKeyword (M2Reserved_InlineTok, M2Reserved_inlinetok);  /* GCC extension incorporated into gm2  */
     367                 :       16817 :   a.array[0] = eof;
     368                 :       16817 :   a.array[1] = ASCII_nul;
     369                 :       16817 :   M2Reserved_EofTok = NameKey_MakeKey ((const char *) &a.array[0], 1);  /* Not a reserved token  */
     370                 :       16817 : }
     371                 :             : 
     372                 :             : 
     373                 :             : /*
     374                 :             :    IsReserved - returns TRUE if the symbol, Name, is a reserved word.
     375                 :             :                 If TRUE it also sets tok to the appropriate enumerated
     376                 :             :                 value. It will set tok to eoftok if appropriate.
     377                 :             : */
     378                 :             : 
     379                 :           0 : extern "C" bool M2Reserved_IsReserved (NameKey_Name n, M2Reserved_toktype *tok)
     380                 :             : {
     381                 :           0 :   unsigned int t;
     382                 :             : 
     383                 :           0 :   t = static_cast<unsigned int> (SymbolKey_GetSymKey (NameTotok, n));
     384                 :           0 :   if (t == 0)
     385                 :             :     {
     386                 :             :       /* eoftok is not a reserved word  */
     387                 :           0 :       if (n == M2Reserved_EofTok)
     388                 :             :         {
     389                 :           0 :           (*tok) = M2Reserved_eoftok;
     390                 :             :         }
     391                 :           0 :       return false;
     392                 :             :     }
     393                 :             :   else
     394                 :             :     {
     395                 :           0 :       (*tok) = (M2Reserved_toktype) (t);
     396                 :           0 :       return true;
     397                 :             :     }
     398                 :             :   /* static analysis guarentees a RETURN statement will be used before here.  */
     399                 :             :   __builtin_unreachable ();
     400                 :             : }
     401                 :             : 
     402                 :             : 
     403                 :             : /*
     404                 :             :    tokToTok - returns a Tok given the enumerated variable, t.
     405                 :             : */
     406                 :             : 
     407                 :           0 : extern "C" NameKey_Name M2Reserved_tokToTok (M2Reserved_toktype t)
     408                 :             : {
     409                 :           0 :   return static_cast<NameKey_Name> (SymbolKey_GetSymKey (tokToName, (NameKey_Name) (t)));
     410                 :             :   /* static analysis guarentees a RETURN statement will be used before here.  */
     411                 :             :   __builtin_unreachable ();
     412                 :             : }
     413                 :             : 
     414                 :       16817 : extern "C" void _M2_M2Reserved_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
     415                 :             : {
     416                 :       16817 :   Init ();
     417                 :       16817 : }
     418                 :             : 
     419                 :           0 : extern "C" void _M2_M2Reserved_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
     420                 :             : {
     421                 :           0 : }
        

Generated by: LCOV version 2.1-beta

LCOV profile is generated on x86_64 machine using following configure options: configure --disable-bootstrap --enable-coverage=opt --enable-languages=c,c++,fortran,go,jit,lto,rust,m2 --enable-host-shared. GCC test suite is run with the built compiler.