"""Token constants (from "token.h")."""__all__ = ['tok_name', 'ISTERMINAL', 'ISNONTERMINAL', 'ISEOF']# 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 = 0NAME = 1NUMBER = 2STRING = 3NEWLINE = 4INDENT = 5DEDENT = 6LPAR = 7RPAR = 8LSQB = 9RSQB = 10COLON = 11COMMA = 12SEMI = 13PLUS = 14MINUS = 15STAR = 16SLASH = 17VBAR = 18AMPER = 19LESS = 20GREATER = 21EQUAL = 22DOT = 23PERCENT = 24LBRACE = 25RBRACE = 26EQEQUAL = 27NOTEQUAL = 28LESSEQUAL = 29GREATEREQUAL = 30TILDE = 31CIRCUMFLEX = 32LEFTSHIFT = 33RIGHTSHIFT = 34DOUBLESTAR = 35PLUSEQUAL = 36MINEQUAL = 37STAREQUAL = 38SLASHEQUAL = 39PERCENTEQUAL = 40AMPEREQUAL = 41VBAREQUAL = 42CIRCUMFLEXEQUAL = 43LEFTSHIFTEQUAL = 44RIGHTSHIFTEQUAL = 45DOUBLESTAREQUAL = 46DOUBLESLASH = 47DOUBLESLASHEQUAL = 48AT = 49ATEQUAL = 50RARROW = 51ELLIPSIS = 52# Don't forget to update the table _PyParser_TokenNames in tokenizer.c!OP = 53ERRORTOKEN = 54# These aren't used by the C tokenizer but are needed for tokenize.pyCOMMENT = 55NL = 56ENCODING = 57N_TOKENS = 58# Special definitions for cooperation with parserNT_OFFSET = 256#--end constants--tok_name = {value: namefor name, value in globals().items()if isinstance(value, int) and not name.startswith('_')}__all__.extend(tok_name.values())def ISTERMINAL(x):return x < NT_OFFSETdef ISNONTERMINAL(x):return x >= NT_OFFSETdef ISEOF(x):return x == ENDMARKERdef _main():import reimport sysargs = 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 OSError as err:sys.stdout.write("I/O error: %s\n" % str(err))sys.exit(1)with fp:lines = fp.read().split("\n")prog = re.compile(r"#define[ \t][ \t]*([A-Z0-9][A-Z0-9_]*)[ \t][ \t]*([0-9][0-9]*)",re.IGNORECASE)comment_regex = re.compile(r"^\s*/\*\s*(.+?)\s*\*/\s*$",re.IGNORECASE)tokens = {}prev_val = Nonefor line in lines:match = prog.match(line)if match:name, val = match.group(1, 2)val = int(val)tokens[val] = {'token': name} # reverse so we can sort them...prev_val = valelse:comment_match = comment_regex.match(line)if comment_match and prev_val is not None:comment = comment_match.group(1)tokens[prev_val]['comment'] = commentkeys = sorted(tokens.keys())# load the output skeleton from the target:try:fp = open(outFileName)except OSError as err:sys.stderr.write("I/O error: %s\n" % str(err))sys.exit(2)with fp:format = fp.read().split("\n")try:start = format.index("#--start constants--") + 1end = format.index("#--end constants--")except ValueError:sys.stderr.write("target does not contain format markers")sys.exit(3)lines = []for key in keys:lines.append("%s = %d" % (tokens[key]["token"], key))if "comment" in tokens[key]:lines.append("# %s" % tokens[key]["comment"])format[start:end] = linestry:fp = open(outFileName, 'w')except OSError as err:sys.stderr.write("I/O error: %s\n" % str(err))sys.exit(4)with fp:fp.write("\n".join(format))if __name__ == "__main__":_main()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。