]> git.proxmox.com Git - mirror_edk2.git/blame - AppPkg/Applications/Python/Python-2.7.10/Lib/token.py
EmbeddedPkg: Extend NvVarStoreFormattedLib LIBRARY_CLASS
[mirror_edk2.git] / AppPkg / Applications / Python / Python-2.7.10 / Lib / token.py
CommitLineData
3257aa99
DM
1"""Token constants (from "token.h")."""\r
2\r
3# This file is automatically generated; please don't muck it up!\r
4#\r
5# To update the symbols in this file, 'cd' to the top directory of\r
6# the python source tree after building the interpreter and run:\r
7#\r
8# ./python Lib/token.py\r
9\r
10#--start constants--\r
11ENDMARKER = 0\r
12NAME = 1\r
13NUMBER = 2\r
14STRING = 3\r
15NEWLINE = 4\r
16INDENT = 5\r
17DEDENT = 6\r
18LPAR = 7\r
19RPAR = 8\r
20LSQB = 9\r
21RSQB = 10\r
22COLON = 11\r
23COMMA = 12\r
24SEMI = 13\r
25PLUS = 14\r
26MINUS = 15\r
27STAR = 16\r
28SLASH = 17\r
29VBAR = 18\r
30AMPER = 19\r
31LESS = 20\r
32GREATER = 21\r
33EQUAL = 22\r
34DOT = 23\r
35PERCENT = 24\r
36BACKQUOTE = 25\r
37LBRACE = 26\r
38RBRACE = 27\r
39EQEQUAL = 28\r
40NOTEQUAL = 29\r
41LESSEQUAL = 30\r
42GREATEREQUAL = 31\r
43TILDE = 32\r
44CIRCUMFLEX = 33\r
45LEFTSHIFT = 34\r
46RIGHTSHIFT = 35\r
47DOUBLESTAR = 36\r
48PLUSEQUAL = 37\r
49MINEQUAL = 38\r
50STAREQUAL = 39\r
51SLASHEQUAL = 40\r
52PERCENTEQUAL = 41\r
53AMPEREQUAL = 42\r
54VBAREQUAL = 43\r
55CIRCUMFLEXEQUAL = 44\r
56LEFTSHIFTEQUAL = 45\r
57RIGHTSHIFTEQUAL = 46\r
58DOUBLESTAREQUAL = 47\r
59DOUBLESLASH = 48\r
60DOUBLESLASHEQUAL = 49\r
61AT = 50\r
62OP = 51\r
63ERRORTOKEN = 52\r
64N_TOKENS = 53\r
65NT_OFFSET = 256\r
66#--end constants--\r
67\r
68tok_name = {}\r
69for _name, _value in globals().items():\r
70 if type(_value) is type(0):\r
71 tok_name[_value] = _name\r
72del _name, _value\r
73\r
74\r
75def ISTERMINAL(x):\r
76 return x < NT_OFFSET\r
77\r
78def ISNONTERMINAL(x):\r
79 return x >= NT_OFFSET\r
80\r
81def ISEOF(x):\r
82 return x == ENDMARKER\r
83\r
84\r
85def main():\r
86 import re\r
87 import sys\r
88 args = sys.argv[1:]\r
89 inFileName = args and args[0] or "Include/token.h"\r
90 outFileName = "Lib/token.py"\r
91 if len(args) > 1:\r
92 outFileName = args[1]\r
93 try:\r
94 fp = open(inFileName)\r
95 except IOError, err:\r
96 sys.stdout.write("I/O error: %s\n" % str(err))\r
97 sys.exit(1)\r
98 lines = fp.read().split("\n")\r
99 fp.close()\r
100 prog = re.compile(\r
101 "#define[ \t][ \t]*([A-Z0-9][A-Z0-9_]*)[ \t][ \t]*([0-9][0-9]*)",\r
102 re.IGNORECASE)\r
103 tokens = {}\r
104 for line in lines:\r
105 match = prog.match(line)\r
106 if match:\r
107 name, val = match.group(1, 2)\r
108 val = int(val)\r
109 tokens[val] = name # reverse so we can sort them...\r
110 keys = tokens.keys()\r
111 keys.sort()\r
112 # load the output skeleton from the target:\r
113 try:\r
114 fp = open(outFileName)\r
115 except IOError, err:\r
116 sys.stderr.write("I/O error: %s\n" % str(err))\r
117 sys.exit(2)\r
118 format = fp.read().split("\n")\r
119 fp.close()\r
120 try:\r
121 start = format.index("#--start constants--") + 1\r
122 end = format.index("#--end constants--")\r
123 except ValueError:\r
124 sys.stderr.write("target does not contain format markers")\r
125 sys.exit(3)\r
126 lines = []\r
127 for val in keys:\r
128 lines.append("%s = %d" % (tokens[val], val))\r
129 format[start:end] = lines\r
130 try:\r
131 fp = open(outFileName, 'w')\r
132 except IOError, err:\r
133 sys.stderr.write("I/O error: %s\n" % str(err))\r
134 sys.exit(4)\r
135 fp.write("\n".join(format))\r
136 fp.close()\r
137\r
138\r
139if __name__ == "__main__":\r
140 main()\r