Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(334)

Side by Side Diff: Source/build/scripts/in_file.py

Issue 729393002: Auto generate UseCounter::Feature enum from an .in file (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # Copyright (C) 2013 Google Inc. All rights reserved. 1 # Copyright (C) 2013 Google Inc. All rights reserved.
2 # 2 #
3 # Redistribution and use in source and binary forms, with or without 3 # Redistribution and use in source and binary forms, with or without
4 # modification, are permitted provided that the following conditions are 4 # modification, are permitted provided that the following conditions are
5 # met: 5 # met:
6 # 6 #
7 # * Redistributions of source code must retain the above copyright 7 # * Redistributions of source code must retain the above copyright
8 # notice, this list of conditions and the following disclaimer. 8 # notice, this list of conditions and the following disclaimer.
9 # * Redistributions in binary form must reproduce the above 9 # * Redistributions in binary form must reproduce the above
10 # copyright notice, this list of conditions and the following disclaimer 10 # copyright notice, this list of conditions and the following disclaimer
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 if '=' in line: 125 if '=' in line:
126 name, value = line.split('=') 126 name, value = line.split('=')
127 else: 127 else:
128 name, value = line, True 128 name, value = line, True
129 if not name in self.parameters: 129 if not name in self.parameters:
130 self._fatal("Unknown parameter: '%s' in line:\n%s\nKnown parameters: %s" % (name, line, self.parameters.keys())) 130 self._fatal("Unknown parameter: '%s' in line:\n%s\nKnown parameters: %s" % (name, line, self.parameters.keys()))
131 self.parameters[name] = value 131 self.parameters[name] = value
132 132
133 def _parse_line(self, line): 133 def _parse_line(self, line):
134 args = copy.deepcopy(self._defaults) 134 args = copy.deepcopy(self._defaults)
135 line = line.split('//')[0] # remove comments
haraken 2014/11/24 09:38:49 I'm not sure but we might want to use '#' instead
philipj_slow 2014/11/24 10:44:59 Also, isn't there already some code for handling /
135 parts = line.split(' ') 136 parts = line.split(' ')
136 args['name'] = parts[0] 137 args['name'] = parts[0]
137 # re-join the rest of the line and split on ',' 138 # re-join the rest of the line and split on ','
138 args_list = ' '.join(parts[1:]).strip().split(',') 139 args_list = ' '.join(parts[1:]).strip().split(',')
139 for arg_string in args_list: 140 for arg_string in args_list:
140 arg_string = arg_string.strip() 141 arg_string = arg_string.strip()
141 if not arg_string: # Ignore empty args 142 if not arg_string: # Ignore empty args
142 continue 143 continue
143 if '=' in arg_string: 144 if '=' in arg_string:
144 arg_name, arg_value = arg_string.split('=') 145 arg_name, arg_value = arg_string.split('=')
145 else: 146 else:
146 arg_name, arg_value = arg_string, True 147 arg_name, arg_value = arg_string, True
147 if arg_name not in self._defaults: 148 if arg_name not in self._defaults:
148 self._fatal("Unknown argument: '%s' in line:\n%s\nKnown argument s: %s" % (arg_name, line, self._defaults.keys())) 149 self._fatal("Unknown argument: '%s' in line:\n%s\nKnown argument s: %s" % (arg_name, line, self._defaults.keys()))
149 valid_values = self._valid_values.get(arg_name) 150 valid_values = self._valid_values.get(arg_name)
150 if valid_values and arg_value not in valid_values: 151 if valid_values and arg_value not in valid_values:
151 self._fatal("Unknown value: '%s' in line:\n%s\nKnown values: %s" % (arg_value, line, valid_values)) 152 self._fatal("Unknown value: '%s' in line:\n%s\nKnown values: %s" % (arg_value, line, valid_values))
152 if self._is_sequence(args[arg_name]): 153 if self._is_sequence(args[arg_name]):
153 args[arg_name].append(arg_value) 154 args[arg_name].append(arg_value)
154 else: 155 else:
155 args[arg_name] = arg_value 156 args[arg_name] = arg_value
156 return args 157 return args
157 158
158 def _fatal(self, message): 159 def _fatal(self, message):
159 # FIXME: This should probably raise instead of exit(1) 160 # FIXME: This should probably raise instead of exit(1)
160 print message 161 print message
161 exit(1) 162 exit(1)
OLDNEW
« no previous file with comments | « no previous file | Source/build/scripts/make_use_counter.py » ('j') | Source/build/scripts/make_use_counter.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698