Viewing file:      token.py (2.86 KB)      -rwxr-xr-x Select action/file-type:    (+) |   (+) |   (+) | Code (+) | Session (+) |   (+) | SDB (+) |   (+) |   (+) |   (+) |   (+) |   (+) |
 
#! /usr/bin/env python2.4
  """Token constants (from "token.h")."""
  #  This file is automatically generated; please don't muck it up! # #  To update the symbols in this file, 'cd' to the top directory of #  the python source tree after building the interpreter and run: # #    python Lib/token.py
  #--start constants-- ENDMARKER = 0 NAME = 1 NUMBER = 2 STRING = 3 NEWLINE = 4 INDENT = 5 DEDENT = 6 LPAR = 7 RPAR = 8 LSQB = 9 RSQB = 10 COLON = 11 COMMA = 12 SEMI = 13 PLUS = 14 MINUS = 15 STAR = 16 SLASH = 17 VBAR = 18 AMPER = 19 LESS = 20 GREATER = 21 EQUAL = 22 DOT = 23 PERCENT = 24 BACKQUOTE = 25 LBRACE = 26 RBRACE = 27 EQEQUAL = 28 NOTEQUAL = 29 LESSEQUAL = 30 GREATEREQUAL = 31 TILDE = 32 CIRCUMFLEX = 33 LEFTSHIFT = 34 RIGHTSHIFT = 35 DOUBLESTAR = 36 PLUSEQUAL = 37 MINEQUAL = 38 STAREQUAL = 39 SLASHEQUAL = 40 PERCENTEQUAL = 41 AMPEREQUAL = 42 VBAREQUAL = 43 CIRCUMFLEXEQUAL = 44 LEFTSHIFTEQUAL = 45 RIGHTSHIFTEQUAL = 46 DOUBLESTAREQUAL = 47 DOUBLESLASH = 48 DOUBLESLASHEQUAL = 49 AT = 50 OP = 51 ERRORTOKEN = 52 N_TOKENS = 53 NT_OFFSET = 256 #--end constants--
  tok_name = {} for _name, _value in globals().items():     if type(_value) is type(0):         tok_name[_value] = _name
 
  def ISTERMINAL(x):     return x < NT_OFFSET
  def ISNONTERMINAL(x):     return x >= NT_OFFSET
  def ISEOF(x):     return x == ENDMARKER
 
  def main():     import re     import sys     args = sys.argv[1:]     inFileName = args and args[0] or "Include/token.h"     outFileName = "Lib/token.py"     if len(args) > 1:         outFileName = args[1]     try:         fp = open(inFileName)     except IOError, err:         sys.stdout.write("I/O error: %s\n" % str(err))         sys.exit(1)     lines = fp.read().split("\n")     fp.close()     prog = re.compile(         "#define[ \t][ \t]*([A-Z0-9][A-Z0-9_]*)[ \t][ \t]*([0-9][0-9]*)",         re.IGNORECASE)     tokens = {}     for line in lines:         match = prog.match(line)         if match:             name, val = match.group(1, 2)             val = int(val)             tokens[val] = name          # reverse so we can sort them...     keys = tokens.keys()     keys.sort()     # load the output skeleton from the target:     try:         fp = open(outFileName)     except IOError, err:         sys.stderr.write("I/O error: %s\n" % str(err))         sys.exit(2)     format = fp.read().split("\n")     fp.close()     try:         start = format.index("#--start constants--") + 1         end = format.index("#--end constants--")     except ValueError:         sys.stderr.write("target does not contain format markers")         sys.exit(3)     lines = []     for val in keys:         lines.append("%s = %d" % (tokens[val], val))     format[start:end] = lines     try:         fp = open(outFileName, 'w')     except IOError, err:         sys.stderr.write("I/O error: %s\n" % str(err))         sys.exit(4)     fp.write("\n".join(format))     fp.close()
 
  if __name__ == "__main__":     main() 
  |