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

Side by Side Diff: client/dom/scripts/systeminterface.py

Issue 9432024: Do not rename idl types to dart types at top level - this info is needed for native bindings genera… (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Update html frog system. Created 8 years, 10 months 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 | Annotate | Revision Log
« no previous file with comments | « client/dom/scripts/systemhtml.py ('k') | client/dom/scripts/systemnative.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 2 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
3 # for details. All rights reserved. Use of this source code is governed by a 3 # for details. All rights reserved. Use of this source code is governed by a
4 # BSD-style license that can be found in the LICENSE file. 4 # BSD-style license that can be found in the LICENSE file.
5 5
6 """This module providesfunctionality for systems to generate 6 """This module providesfunctionality for systems to generate
7 Dart interfaces from the IDL database.""" 7 Dart interfaces from the IDL database."""
8 8
9 import os 9 import os
10 import systembase 10 import systembase
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 typename = self._interface.id 91 typename = self._interface.id
92 92
93 93
94 extends = [] 94 extends = []
95 suppressed_extends = [] 95 suppressed_extends = []
96 96
97 for parent in self._interface.parents: 97 for parent in self._interface.parents:
98 # TODO(vsm): Remove source_filter. 98 # TODO(vsm): Remove source_filter.
99 if MatchSourceFilter(self._source_filter, parent): 99 if MatchSourceFilter(self._source_filter, parent):
100 # Parent is a DOM type. 100 # Parent is a DOM type.
101 extends.append(parent.type.id) 101 extends.append(DartType(parent.type.id))
102 elif '<' in parent.type.id: 102 elif '<' in parent.type.id:
103 # Parent is a Dart collection type. 103 # Parent is a Dart collection type.
104 # TODO(vsm): Make this check more robust. 104 # TODO(vsm): Make this check more robust.
105 extends.append(parent.type.id) 105 extends.append(parent.type.id)
106 else: 106 else:
107 suppressed_extends.append('%s.%s' % 107 suppressed_extends.append('%s.%s' %
108 (self._common_prefix, parent.type.id)) 108 (self._common_prefix, parent.type.id))
109 109
110 comment = ' extends' 110 comment = ' extends'
111 extends_str = '' 111 extends_str = ''
(...skipping 30 matching lines...) Expand all
142 142
143 element_type = MaybeTypedArrayElementType(self._interface) 143 element_type = MaybeTypedArrayElementType(self._interface)
144 if element_type: 144 if element_type:
145 self._members_emitter.Emit( 145 self._members_emitter.Emit(
146 '\n' 146 '\n'
147 ' $CTOR(int length);\n' 147 ' $CTOR(int length);\n'
148 '\n' 148 '\n'
149 ' $CTOR.fromList(List<$TYPE> list);\n' 149 ' $CTOR.fromList(List<$TYPE> list);\n'
150 '\n' 150 '\n'
151 ' $CTOR.fromBuffer(ArrayBuffer buffer);\n', 151 ' $CTOR.fromBuffer(ArrayBuffer buffer);\n',
152 CTOR=self._interface.id, 152 CTOR=self._interface.id,
153 TYPE=element_type) 153 TYPE=DartType(element_type))
154 154
155 155
156 def FinishInterface(self): 156 def FinishInterface(self):
157 # TODO(vsm): Use typedef if / when that is supported in Dart. 157 # TODO(vsm): Use typedef if / when that is supported in Dart.
158 # Define variant as subtype. 158 # Define variant as subtype.
159 if (self._super_interface and 159 if (self._super_interface and
160 self._interface.id is not self._super_interface): 160 self._interface.id is not self._super_interface):
161 consts_emitter = self._top_level_emitter.Emit( 161 consts_emitter = self._top_level_emitter.Emit(
162 '\n' 162 '\n'
163 'interface $NAME extends $BASE {\n' 163 'interface $NAME extends $BASE {\n'
164 '$!CONSTS' 164 '$!CONSTS'
165 '}\n', 165 '}\n',
166 NAME=self._interface.id, 166 NAME=self._interface.id,
167 BASE=self._super_interface) 167 BASE=self._super_interface)
168 for const in sorted(self._interface.constants, ConstantOutputOrder): 168 for const in sorted(self._interface.constants, ConstantOutputOrder):
169 self._EmitConstant(consts_emitter, const) 169 self._EmitConstant(consts_emitter, const)
170 170
171 def AddConstant(self, constant): 171 def AddConstant(self, constant):
172 if (not self._super_interface or 172 if (not self._super_interface or
173 self._interface.id is self._super_interface): 173 self._interface.id is self._super_interface):
174 self._EmitConstant(self._members_emitter, constant) 174 self._EmitConstant(self._members_emitter, constant)
175 175
176 def _EmitConstant(self, emitter, constant): 176 def _EmitConstant(self, emitter, constant):
177 emitter.Emit('\n static final $TYPE $NAME = $VALUE;\n', 177 emitter.Emit('\n static final $TYPE $NAME = $VALUE;\n',
178 NAME=constant.id, 178 NAME=constant.id,
179 TYPE=constant.type.id, 179 TYPE=DartType(constant.type.id),
180 VALUE=constant.value) 180 VALUE=constant.value)
181 181
182 def AddAttribute(self, getter, setter): 182 def AddAttribute(self, getter, setter):
183 if getter and setter and getter.type.id == setter.type.id: 183 if getter and setter and getter.type.id == setter.type.id:
184 self._members_emitter.Emit('\n $TYPE $NAME;\n', 184 self._members_emitter.Emit('\n $TYPE $NAME;\n',
185 NAME=getter.id, TYPE=getter.type.id); 185 NAME=getter.id, TYPE=DartType(getter.type.id));
186 return 186 return
187 if getter and not setter: 187 if getter and not setter:
188 self._members_emitter.Emit('\n final $TYPE $NAME;\n', 188 self._members_emitter.Emit('\n final $TYPE $NAME;\n',
189 NAME=getter.id, TYPE=getter.type.id); 189 NAME=getter.id, TYPE=DartType(getter.type.id));
190 return 190 return
191 raise Exception('Unexpected getter/setter combination %s %s' % 191 raise Exception('Unexpected getter/setter combination %s %s' %
192 (getter, setter)) 192 (getter, setter))
193 193
194 def AddIndexer(self, element_type): 194 def AddIndexer(self, element_type):
195 # Interface inherits all operations from List<element_type>. 195 # Interface inherits all operations from List<element_type>.
196 pass 196 pass
197 197
198 def AddOperation(self, info): 198 def AddOperation(self, info):
199 """ 199 """
200 Arguments: 200 Arguments:
201 operations - contains the overloads, one or more operations with the same 201 operations - contains the overloads, one or more operations with the same
202 name. 202 name.
203 """ 203 """
204 self._members_emitter.Emit('\n' 204 self._members_emitter.Emit('\n'
205 ' $TYPE $NAME($PARAMS);\n', 205 ' $TYPE $NAME($PARAMS);\n',
206 TYPE=info.type_name, 206 TYPE=info.type_name,
207 NAME=info.name, 207 NAME=info.name,
208 PARAMS=info.ParametersInterfaceDeclaration()) 208 PARAMS=info.ParametersInterfaceDeclaration())
209 209
210 # Interfaces get secondary members directly via the superinterfaces. 210 # Interfaces get secondary members directly via the superinterfaces.
211 def AddSecondaryAttribute(self, interface, getter, setter): 211 def AddSecondaryAttribute(self, interface, getter, setter):
212 pass 212 pass
213 213
214 def AddSecondaryOperation(self, interface, attr): 214 def AddSecondaryOperation(self, interface, attr):
215 pass 215 pass
216 216
217 def AddEventAttributes(self, event_attrs): 217 def AddEventAttributes(self, event_attrs):
218 pass 218 pass
OLDNEW
« no previous file with comments | « client/dom/scripts/systemhtml.py ('k') | client/dom/scripts/systemnative.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698