OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright 2016 The Chromium Authors. All rights reserved. | 2 # Copyright 2016 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 import math | 6 import math |
7 import sys | 7 import sys |
8 | 8 |
9 import json5_generator | 9 import json5_generator |
10 import template_expander | 10 import template_expander |
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
310 | 310 |
311 # TODO(shend): Remove this once we move NONPROPERTIES to its own JSON fi
le, | 311 # TODO(shend): Remove this once we move NONPROPERTIES to its own JSON fi
le, |
312 # since the JSON5 reader will handle missing fields and defaults. | 312 # since the JSON5 reader will handle missing fields and defaults. |
313 for property_ in NONPROPERTIES: | 313 for property_ in NONPROPERTIES: |
314 property_['name_for_methods'] = property_['name'] | 314 property_['name_for_methods'] = property_['name'] |
315 if 'field_type_path' not in property_: | 315 if 'field_type_path' not in property_: |
316 property_['field_type_path'] = None | 316 property_['field_type_path'] = None |
317 if 'type_name' not in property_: | 317 if 'type_name' not in property_: |
318 property_['type_name'] = 'E' + enum_type_name(property_['name_fo
r_methods']) | 318 property_['type_name'] = 'E' + enum_type_name(property_['name_fo
r_methods']) |
319 | 319 |
320 property_values = self._properties.values() | 320 # Ignore shorthand properties |
| 321 for property_ in self._properties.values(): |
| 322 if property_['field_template'] is not None: |
| 323 assert not property_['longhands'], \ |
| 324 "Shorthand '{}' cannot have a field_template.".format(proper
ty_['name']) |
| 325 |
| 326 property_values = [value for value in self._properties.values() if not v
alue['longhands']] |
321 | 327 |
322 for property_ in property_values: | 328 for property_ in property_values: |
323 # Override the type name when field_type_path is specified | 329 # Override the type name when field_type_path is specified |
324 if property_['field_type_path']: | 330 if property_['field_type_path']: |
325 property_['type_name'] = property_['field_type_path'].split('/')
[-1] | 331 property_['type_name'] = property_['field_type_path'].split('/')
[-1] |
326 # CSS properties are not allowed to explicitly specify their field_s
ize. | 332 # CSS properties are not allowed to explicitly specify their field_s
ize. |
327 property_['field_size'] = None | 333 property_['field_size'] = None |
328 | 334 |
329 self._generated_enums = _create_enums(property_values + NONPROPERTIES) | 335 self._generated_enums = _create_enums(property_values + NONPROPERTIES) |
330 | 336 |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
406 'mapping': [(enum_value_name(k), enum_for_css_keyword(k)) fo
r k in property_['keywords']], | 412 'mapping': [(enum_value_name(k), enum_for_css_keyword(k)) fo
r k in property_['keywords']], |
407 } | 413 } |
408 | 414 |
409 return { | 415 return { |
410 'include_paths': self._include_paths, | 416 'include_paths': self._include_paths, |
411 'mappings': mappings, | 417 'mappings': mappings, |
412 } | 418 } |
413 | 419 |
414 if __name__ == '__main__': | 420 if __name__ == '__main__': |
415 json5_generator.Maker(ComputedStyleBaseWriter).main() | 421 json5_generator.Maker(ComputedStyleBaseWriter).main() |
OLD | NEW |