(root)/
Python-3.11.7/
Parser/
token.c
       1  /* Auto-generated by Tools/scripts/generate_token.py */
       2  
       3  #include "Python.h"
       4  #include "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  PyToken_OneChar(int c1)
      80  {
      81      switch (c1) {
      82      case '%': return PERCENT;
      83      case '&': return AMPER;
      84      case '(': return LPAR;
      85      case ')': return RPAR;
      86      case '*': return STAR;
      87      case '+': return PLUS;
      88      case ',': return COMMA;
      89      case '-': return MINUS;
      90      case '.': return DOT;
      91      case '/': return SLASH;
      92      case ':': return COLON;
      93      case ';': return SEMI;
      94      case '<': return LESS;
      95      case '=': return EQUAL;
      96      case '>': return GREATER;
      97      case '@': return AT;
      98      case '[': return LSQB;
      99      case ']': return RSQB;
     100      case '^': return CIRCUMFLEX;
     101      case '{': return LBRACE;
     102      case '|': return VBAR;
     103      case '}': return RBRACE;
     104      case '~': return TILDE;
     105      }
     106      return OP;
     107  }
     108  
     109  int
     110  PyToken_TwoChars(int c1, int c2)
     111  {
     112      switch (c1) {
     113      case '!':
     114          switch (c2) {
     115          case '=': return NOTEQUAL;
     116          }
     117          break;
     118      case '%':
     119          switch (c2) {
     120          case '=': return PERCENTEQUAL;
     121          }
     122          break;
     123      case '&':
     124          switch (c2) {
     125          case '=': return AMPEREQUAL;
     126          }
     127          break;
     128      case '*':
     129          switch (c2) {
     130          case '*': return DOUBLESTAR;
     131          case '=': return STAREQUAL;
     132          }
     133          break;
     134      case '+':
     135          switch (c2) {
     136          case '=': return PLUSEQUAL;
     137          }
     138          break;
     139      case '-':
     140          switch (c2) {
     141          case '=': return MINEQUAL;
     142          case '>': return RARROW;
     143          }
     144          break;
     145      case '/':
     146          switch (c2) {
     147          case '/': return DOUBLESLASH;
     148          case '=': return SLASHEQUAL;
     149          }
     150          break;
     151      case ':':
     152          switch (c2) {
     153          case '=': return COLONEQUAL;
     154          }
     155          break;
     156      case '<':
     157          switch (c2) {
     158          case '<': return LEFTSHIFT;
     159          case '=': return LESSEQUAL;
     160          case '>': return NOTEQUAL;
     161          }
     162          break;
     163      case '=':
     164          switch (c2) {
     165          case '=': return EQEQUAL;
     166          }
     167          break;
     168      case '>':
     169          switch (c2) {
     170          case '=': return GREATEREQUAL;
     171          case '>': return RIGHTSHIFT;
     172          }
     173          break;
     174      case '@':
     175          switch (c2) {
     176          case '=': return ATEQUAL;
     177          }
     178          break;
     179      case '^':
     180          switch (c2) {
     181          case '=': return CIRCUMFLEXEQUAL;
     182          }
     183          break;
     184      case '|':
     185          switch (c2) {
     186          case '=': return VBAREQUAL;
     187          }
     188          break;
     189      }
     190      return OP;
     191  }
     192  
     193  int
     194  PyToken_ThreeChars(int c1, int c2, int c3)
     195  {
     196      switch (c1) {
     197      case '*':
     198          switch (c2) {
     199          case '*':
     200              switch (c3) {
     201              case '=': return DOUBLESTAREQUAL;
     202              }
     203              break;
     204          }
     205          break;
     206      case '.':
     207          switch (c2) {
     208          case '.':
     209              switch (c3) {
     210              case '.': return ELLIPSIS;
     211              }
     212              break;
     213          }
     214          break;
     215      case '/':
     216          switch (c2) {
     217          case '/':
     218              switch (c3) {
     219              case '=': return DOUBLESLASHEQUAL;
     220              }
     221              break;
     222          }
     223          break;
     224      case '<':
     225          switch (c2) {
     226          case '<':
     227              switch (c3) {
     228              case '=': return LEFTSHIFTEQUAL;
     229              }
     230              break;
     231          }
     232          break;
     233      case '>':
     234          switch (c2) {
     235          case '>':
     236              switch (c3) {
     237              case '=': return RIGHTSHIFTEQUAL;
     238              }
     239              break;
     240          }
     241          break;
     242      }
     243      return OP;
     244  }