OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (C) 2013 Google Inc. All rights reserved. | 2 # Copyright (C) 2013 Google Inc. All rights reserved. |
3 # | 3 # |
4 # Redistribution and use in source and binary forms, with or without | 4 # Redistribution and use in source and binary forms, with or without |
5 # modification, are permitted provided that the following conditions are | 5 # modification, are permitted provided that the following conditions are |
6 # met: | 6 # met: |
7 # | 7 # |
8 # * Redistributions of source code must retain the above copyright | 8 # * Redistributions of source code must retain the above copyright |
9 # notice, this list of conditions and the following disclaimer. | 9 # notice, this list of conditions and the following disclaimer. |
10 # * Redistributions in binary form must reproduce the above | 10 # * Redistributions in binary form must reproduce the above |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
53 'hash': hasher.hash, | 53 'hash': hasher.hash, |
54 'to_macro_style': name_utilities.to_macro_style, | 54 'to_macro_style': name_utilities.to_macro_style, |
55 'symbol': _symbol, | 55 'symbol': _symbol, |
56 } | 56 } |
57 | 57 |
58 def __init__(self, in_file_paths, enabled_conditions): | 58 def __init__(self, in_file_paths, enabled_conditions): |
59 super(MakeQualifiedNamesWriter, self).__init__(None, enabled_conditions) | 59 super(MakeQualifiedNamesWriter, self).__init__(None, enabled_conditions) |
60 assert len(in_file_paths) <= 2, 'MakeQualifiedNamesWriter requires at mo
st 2 in files, got %d.' % len(in_file_paths) | 60 assert len(in_file_paths) <= 2, 'MakeQualifiedNamesWriter requires at mo
st 2 in files, got %d.' % len(in_file_paths) |
61 | 61 |
62 if len(in_file_paths) == 2: | 62 if len(in_file_paths) == 2: |
63 tags_in_file = InFile.load_from_files([in_file_paths.pop(0)], self.d
efaults, self.valid_values, self.default_parameters) | 63 self.tags_in_file = InFile.load_from_files([in_file_paths.pop(0)], s
elf.defaults, self.valid_values, self.default_parameters) |
64 else: | 64 else: |
65 tags_in_file = None | 65 self.tags_in_file = None |
66 | 66 |
67 attrs_in_file = InFile.load_from_files([in_file_paths.pop()], self.defau
lts, self.valid_values, self.default_parameters) | 67 self.attrs_in_file = InFile.load_from_files([in_file_paths.pop()], self.
defaults, self.valid_values, self.default_parameters) |
68 | 68 |
69 namespace = attrs_in_file.parameters['namespace'].strip('"') | 69 self.namespace = self.attrs_in_file.parameters['namespace'].strip('"') |
70 if tags_in_file: | 70 if self.tags_in_file: |
71 assert namespace == tags_in_file.parameters['namespace'].strip('"'),
'Both in files must have the same namespace.' | 71 assert self.namespace == self.tags_in_file.parameters['namespace'].s
trip('"'), 'Both in files must have the same namespace.' |
72 | 72 |
73 namespace_uri = attrs_in_file.parameters['namespaceURI'].strip('"') | 73 namespace_uri = self.attrs_in_file.parameters['namespaceURI'].strip('"') |
74 if tags_in_file: | 74 if self.tags_in_file: |
75 assert namespace_uri == tags_in_file.parameters['namespaceURI'].stri
p('"'), 'Both in files must have the same namespaceURI.' | 75 assert namespace_uri == self.tags_in_file.parameters['namespaceURI']
.strip('"'), 'Both in files must have the same namespaceURI.' |
76 | 76 |
77 use_namespace_for_attrs = attrs_in_file.parameters['attrsNullNamespace']
is None | 77 use_namespace_for_attrs = self.attrs_in_file.parameters['attrsNullNamesp
ace'] is None |
78 | 78 |
79 self._outputs = { | 79 self._outputs = { |
80 (namespace + "Names.h"): self.generate_header, | 80 (self.namespace + "Names.h"): self.generate_header, |
81 (namespace + "Names.cpp"): self.generate_implementation, | 81 (self.namespace + "Names.cpp"): self.generate_implementation, |
82 } | 82 } |
83 self._template_context = { | 83 self._template_context = { |
84 'namespace': namespace, | 84 'namespace': self.namespace, |
85 'namespace_uri': namespace_uri, | 85 'namespace_uri': namespace_uri, |
86 'use_namespace_for_attrs': use_namespace_for_attrs, | 86 'use_namespace_for_attrs': use_namespace_for_attrs, |
87 'tags': tags_in_file.name_dictionaries if tags_in_file else [], | 87 'tags': self.tags_in_file.name_dictionaries if self.tags_in_file els
e [], |
88 'attrs': attrs_in_file.name_dictionaries, | 88 'attrs': self.attrs_in_file.name_dictionaries, |
89 } | 89 } |
90 | 90 |
91 @template_expander.use_jinja("MakeQualifiedNames.h.tmpl", filters=filters) | 91 @template_expander.use_jinja('MakeQualifiedNames.h.tmpl', filters=filters) |
92 def generate_header(self): | 92 def generate_header(self): |
93 return self._template_context | 93 return self._template_context |
94 | 94 |
95 @template_expander.use_jinja("MakeQualifiedNames.cpp.tmpl", filters=filters) | 95 @template_expander.use_jinja('MakeQualifiedNames.cpp.tmpl', filters=filters) |
96 def generate_implementation(self): | 96 def generate_implementation(self): |
97 return self._template_context | 97 return self._template_context |
98 | 98 |
99 | 99 |
100 if __name__ == "__main__": | 100 if __name__ == "__main__": |
101 in_generator.Maker(MakeQualifiedNamesWriter).main(sys.argv) | 101 in_generator.Maker(MakeQualifiedNamesWriter).main(sys.argv) |
OLD | NEW |