LCOV - code coverage report
Current view: top level - Parser - token.c (source / functions) Hit Total Coverage
Test: CPython 3.12 LCOV report [commit acb105a7c1f] Lines: 99 105 94.3 %
Date: 2022-07-20 13:12:14 Functions: 3 3 100.0 %
Branches: 93 99 93.9 %

           Branch data     Line data    Source code
       1                 :            : /* Auto-generated by Tools/scripts/generate_token.py */
       2                 :            : 
       3                 :            : #include "Python.h"
       4                 :            : #include "pycore_token.h"
       5                 :            : 
       6                 :            : /* Token names */
       7                 :            : 
       8                 :            : const char * const _PyParser_TokenNames[] = {
       9                 :            :     "ENDMARKER",
      10                 :            :     "NAME",
      11                 :            :     "NUMBER",
      12                 :            :     "STRING",
      13                 :            :     "NEWLINE",
      14                 :            :     "INDENT",
      15                 :            :     "DEDENT",
      16                 :            :     "LPAR",
      17                 :            :     "RPAR",
      18                 :            :     "LSQB",
      19                 :            :     "RSQB",
      20                 :            :     "COLON",
      21                 :            :     "COMMA",
      22                 :            :     "SEMI",
      23                 :            :     "PLUS",
      24                 :            :     "MINUS",
      25                 :            :     "STAR",
      26                 :            :     "SLASH",
      27                 :            :     "VBAR",
      28                 :            :     "AMPER",
      29                 :            :     "LESS",
      30                 :            :     "GREATER",
      31                 :            :     "EQUAL",
      32                 :            :     "DOT",
      33                 :            :     "PERCENT",
      34                 :            :     "LBRACE",
      35                 :            :     "RBRACE",
      36                 :            :     "EQEQUAL",
      37                 :            :     "NOTEQUAL",
      38                 :            :     "LESSEQUAL",
      39                 :            :     "GREATEREQUAL",
      40                 :            :     "TILDE",
      41                 :            :     "CIRCUMFLEX",
      42                 :            :     "LEFTSHIFT",
      43                 :            :     "RIGHTSHIFT",
      44                 :            :     "DOUBLESTAR",
      45                 :            :     "PLUSEQUAL",
      46                 :            :     "MINEQUAL",
      47                 :            :     "STAREQUAL",
      48                 :            :     "SLASHEQUAL",
      49                 :            :     "PERCENTEQUAL",
      50                 :            :     "AMPEREQUAL",
      51                 :            :     "VBAREQUAL",
      52                 :            :     "CIRCUMFLEXEQUAL",
      53                 :            :     "LEFTSHIFTEQUAL",
      54                 :            :     "RIGHTSHIFTEQUAL",
      55                 :            :     "DOUBLESTAREQUAL",
      56                 :            :     "DOUBLESLASH",
      57                 :            :     "DOUBLESLASHEQUAL",
      58                 :            :     "AT",
      59                 :            :     "ATEQUAL",
      60                 :            :     "RARROW",
      61                 :            :     "ELLIPSIS",
      62                 :            :     "COLONEQUAL",
      63                 :            :     "OP",
      64                 :            :     "AWAIT",
      65                 :            :     "ASYNC",
      66                 :            :     "TYPE_IGNORE",
      67                 :            :     "TYPE_COMMENT",
      68                 :            :     "SOFT_KEYWORD",
      69                 :            :     "<ERRORTOKEN>",
      70                 :            :     "<COMMENT>",
      71                 :            :     "<NL>",
      72                 :            :     "<ENCODING>",
      73                 :            :     "<N_TOKENS>",
      74                 :            : };
      75                 :            : 
      76                 :            : /* Return the token corresponding to a single character */
      77                 :            : 
      78                 :            : int
      79                 :   14665111 : _PyToken_OneChar(int c1)
      80                 :            : {
      81   [ +  +  +  +  :   14665111 :     switch (c1) {
          +  +  +  +  -  
          +  +  +  +  +  
          +  +  +  +  +  
             +  +  +  +  
                      + ]
      82                 :      65246 :     case '%': return PERCENT;
      83                 :       6390 :     case '&': return AMPER;
      84                 :    2694759 :     case '(': return LPAR;
      85                 :    2694400 :     case ')': return RPAR;
      86                 :     379449 :     case '*': return STAR;
      87                 :      95027 :     case '+': return PLUS;
      88                 :    4070035 :     case ',': return COMMA;
      89                 :     110573 :     case '-': return MINUS;
      90                 :          0 :     case '.': return DOT;
      91                 :      25341 :     case '/': return SLASH;
      92                 :    1982414 :     case ':': return COLON;
      93                 :       7791 :     case ';': return SEMI;
      94                 :      15089 :     case '<': return LESS;
      95                 :    1084530 :     case '=': return EQUAL;
      96                 :      13410 :     case '>': return GREATER;
      97                 :      36663 :     case '@': return AT;
      98                 :     639040 :     case '[': return LSQB;
      99                 :     638991 :     case ']': return RSQB;
     100                 :       1016 :     case '^': return CIRCUMFLEX;
     101                 :      47792 :     case '{': return LBRACE;
     102                 :       8330 :     case '|': return VBAR;
     103                 :      47733 :     case '}': return RBRACE;
     104                 :       1066 :     case '~': return TILDE;
     105                 :            :     }
     106                 :         26 :     return OP;
     107                 :            : }
     108                 :            : 
     109                 :            : int
     110                 :   14880314 : _PyToken_TwoChars(int c1, int c2)
     111                 :            : {
     112   [ +  +  +  +  :   14880314 :     switch (c1) {
          +  +  +  +  +  
          +  +  +  +  +  
                      + ]
     113         [ +  + ]:      17561 :     case '!':
     114                 :            :         switch (c2) {
     115                 :      17559 :         case '=': return NOTEQUAL;
     116                 :            :         }
     117                 :          2 :         break;
     118         [ +  + ]:      65319 :     case '%':
     119                 :            :         switch (c2) {
     120                 :         73 :         case '=': return PERCENTEQUAL;
     121                 :            :         }
     122                 :      65246 :         break;
     123         [ +  + ]:       6867 :     case '&':
     124                 :            :         switch (c2) {
     125                 :        477 :         case '=': return AMPEREQUAL;
     126                 :            :         }
     127                 :       6390 :         break;
     128      [ +  +  + ]:     421225 :     case '*':
     129                 :            :         switch (c2) {
     130                 :      41125 :         case '*': return DOUBLESTAR;
     131                 :        651 :         case '=': return STAREQUAL;
     132                 :            :         }
     133                 :     379449 :         break;
     134         [ +  + ]:     113860 :     case '+':
     135                 :            :         switch (c2) {
     136                 :      18833 :         case '=': return PLUSEQUAL;
     137                 :            :         }
     138                 :      95027 :         break;
     139      [ +  +  + ]:     146686 :     case '-':
     140                 :            :         switch (c2) {
     141                 :       2726 :         case '=': return MINEQUAL;
     142                 :      33387 :         case '>': return RARROW;
     143                 :            :         }
     144                 :     110573 :         break;
     145      [ +  +  + ]:      29285 :     case '/':
     146                 :            :         switch (c2) {
     147                 :       3818 :         case '/': return DOUBLESLASH;
     148                 :        126 :         case '=': return SLASHEQUAL;
     149                 :            :         }
     150                 :      25341 :         break;
     151         [ +  + ]:    1983359 :     case ':':
     152                 :            :         switch (c2) {
     153                 :        945 :         case '=': return COLONEQUAL;
     154                 :            :         }
     155                 :    1982414 :         break;
     156   [ +  +  +  + ]:      27781 :     case '<':
     157                 :            :         switch (c2) {
     158                 :       3796 :         case '<': return LEFTSHIFT;
     159                 :       8894 :         case '=': return LESSEQUAL;
     160                 :          2 :         case '>': return NOTEQUAL;
     161                 :            :         }
     162                 :      15089 :         break;
     163         [ +  + ]:    1155731 :     case '=':
     164                 :            :         switch (c2) {
     165                 :      71201 :         case '=': return EQEQUAL;
     166                 :            :         }
     167                 :    1084530 :         break;
     168      [ +  +  + ]:      23032 :     case '>':
     169                 :            :         switch (c2) {
     170                 :       8205 :         case '=': return GREATEREQUAL;
     171                 :       1417 :         case '>': return RIGHTSHIFT;
     172                 :            :         }
     173                 :      13410 :         break;
     174         [ +  + ]:      36708 :     case '@':
     175                 :            :         switch (c2) {
     176                 :         45 :         case '=': return ATEQUAL;
     177                 :            :         }
     178                 :      36663 :         break;
     179         [ +  + ]:       1228 :     case '^':
     180                 :            :         switch (c2) {
     181                 :        212 :         case '=': return CIRCUMFLEXEQUAL;
     182                 :            :         }
     183                 :       1016 :         break;
     184         [ +  + ]:      10022 :     case '|':
     185                 :            :         switch (c2) {
     186                 :       1692 :         case '=': return VBAREQUAL;
     187                 :            :         }
     188                 :       8330 :         break;
     189                 :            :     }
     190                 :   14665130 :     return OP;
     191                 :            : }
     192                 :            : 
     193                 :            : int
     194                 :     215184 : _PyToken_ThreeChars(int c1, int c2, int c3)
     195                 :            : {
     196   [ +  -  +  +  :     215184 :     switch (c1) {
                   +  + ]
     197         [ +  + ]:      41776 :     case '*':
     198                 :            :         switch (c2) {
     199         [ +  + ]:      41125 :         case '*':
     200                 :            :             switch (c3) {
     201                 :         58 :             case '=': return DOUBLESTAREQUAL;
     202                 :            :             }
     203                 :      41067 :             break;
     204                 :            :         }
     205                 :      41718 :         break;
     206         [ #  # ]:          0 :     case '.':
     207                 :            :         switch (c2) {
     208         [ #  # ]:          0 :         case '.':
     209                 :            :             switch (c3) {
     210                 :          0 :             case '.': return ELLIPSIS;
     211                 :            :             }
     212                 :          0 :             break;
     213                 :            :         }
     214                 :          0 :         break;
     215         [ +  + ]:       3944 :     case '/':
     216                 :            :         switch (c2) {
     217         [ +  + ]:       3818 :         case '/':
     218                 :            :             switch (c3) {
     219                 :        357 :             case '=': return DOUBLESLASHEQUAL;
     220                 :            :             }
     221                 :       3461 :             break;
     222                 :            :         }
     223                 :       3587 :         break;
     224         [ +  + ]:      12692 :     case '<':
     225                 :            :         switch (c2) {
     226         [ +  + ]:       3796 :         case '<':
     227                 :            :             switch (c3) {
     228                 :        269 :             case '=': return LEFTSHIFTEQUAL;
     229                 :            :             }
     230                 :       3527 :             break;
     231                 :            :         }
     232                 :      12423 :         break;
     233         [ +  + ]:       9622 :     case '>':
     234                 :            :         switch (c2) {
     235         [ +  + ]:       1417 :         case '>':
     236                 :            :             switch (c3) {
     237                 :         82 :             case '=': return RIGHTSHIFTEQUAL;
     238                 :            :             }
     239                 :       1335 :             break;
     240                 :            :         }
     241                 :       9540 :         break;
     242                 :            :     }
     243                 :     214418 :     return OP;
     244                 :            : }

Generated by: LCOV version 1.14