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

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

Issue 10698108: Stop passing HtmlSystemShared around and move html renaming to IDLTypeInfo. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: . Created 8 years, 5 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 | « lib/dom/scripts/systemhtml.py ('k') | lib/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 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 typename = self._interface.id 78 typename = self._interface.id
79 79
80 80
81 extends = [] 81 extends = []
82 suppressed_extends = [] 82 suppressed_extends = []
83 83
84 for parent in self._interface.parents: 84 for parent in self._interface.parents:
85 # TODO(vsm): Remove source_filter. 85 # TODO(vsm): Remove source_filter.
86 if MatchSourceFilter(parent): 86 if MatchSourceFilter(parent):
87 # Parent is a DOM type. 87 # Parent is a DOM type.
88 extends.append(DartType(parent.type.id)) 88 extends.append(self._DartType(parent.type.id))
89 elif '<' in parent.type.id: 89 elif '<' in parent.type.id:
90 # Parent is a Dart collection type. 90 # Parent is a Dart collection type.
91 # TODO(vsm): Make this check more robust. 91 # TODO(vsm): Make this check more robust.
92 extends.append(parent.type.id) 92 extends.append(parent.type.id)
93 else: 93 else:
94 suppressed_extends.append('%s.%s' % 94 suppressed_extends.append('%s.%s' %
95 (self._common_prefix, parent.type.id)) 95 (self._common_prefix, parent.type.id))
96 96
97 comment = ' extends' 97 comment = ' extends'
98 extends_str = '' 98 extends_str = ''
(...skipping 19 matching lines...) Expand all
118 self._top_level_emitter) = self._emitter.Emit( 118 self._top_level_emitter) = self._emitter.Emit(
119 self._template + '$!TOP_LEVEL', 119 self._template + '$!TOP_LEVEL',
120 ID=typename, 120 ID=typename,
121 EXTENDS=extends_str) 121 EXTENDS=extends_str)
122 122
123 if constructor_info: 123 if constructor_info:
124 self._members_emitter.Emit( 124 self._members_emitter.Emit(
125 '\n' 125 '\n'
126 ' $CTOR($PARAMS);\n', 126 ' $CTOR($PARAMS);\n',
127 CTOR=typename, 127 CTOR=typename,
128 PARAMS=constructor_info.ParametersInterfaceDeclaration()) 128 PARAMS=constructor_info.ParametersInterfaceDeclaration(self._DartType) )
129 129
130 element_type = MaybeTypedArrayElementTypeInHierarchy( 130 element_type = MaybeTypedArrayElementTypeInHierarchy(
131 self._interface, self._system._database) 131 self._interface, self._system._database)
132 if element_type: 132 if element_type:
133 self._members_emitter.Emit( 133 self._members_emitter.Emit(
134 '\n' 134 '\n'
135 ' $CTOR(int length);\n' 135 ' $CTOR(int length);\n'
136 '\n' 136 '\n'
137 ' $CTOR.fromList(List<$TYPE> list);\n' 137 ' $CTOR.fromList(List<$TYPE> list);\n'
138 '\n' 138 '\n'
139 ' $CTOR.fromBuffer(ArrayBuffer buffer,' 139 ' $CTOR.fromBuffer(ArrayBuffer buffer,'
140 ' [int byteOffset, int length]);\n', 140 ' [int byteOffset, int length]);\n',
141 CTOR=self._interface.id, 141 CTOR=self._interface.id,
142 TYPE=DartType(element_type)) 142 TYPE=self._DartType(element_type))
143 143
144 144
145 def FinishInterface(self): 145 def FinishInterface(self):
146 # TODO(vsm): Use typedef if / when that is supported in Dart. 146 # TODO(vsm): Use typedef if / when that is supported in Dart.
147 # Define variant as subtype. 147 # Define variant as subtype.
148 if (self._super_interface and 148 if (self._super_interface and
149 self._interface.id is not self._super_interface): 149 self._interface.id is not self._super_interface):
150 consts_emitter = self._top_level_emitter.Emit( 150 consts_emitter = self._top_level_emitter.Emit(
151 '\n' 151 '\n'
152 'interface $NAME extends $BASE {\n' 152 'interface $NAME extends $BASE {\n'
153 '$!CONSTS' 153 '$!CONSTS'
154 '}\n', 154 '}\n',
155 NAME=self._interface.id, 155 NAME=self._interface.id,
156 BASE=self._super_interface) 156 BASE=self._super_interface)
157 for const in sorted(self._interface.constants, ConstantOutputOrder): 157 for const in sorted(self._interface.constants, ConstantOutputOrder):
158 self._EmitConstant(consts_emitter, const) 158 self._EmitConstant(consts_emitter, const)
159 159
160 def AddConstant(self, constant): 160 def AddConstant(self, constant):
161 if (not self._super_interface or 161 if (not self._super_interface or
162 self._interface.id is self._super_interface): 162 self._interface.id is self._super_interface):
163 self._EmitConstant(self._members_emitter, constant) 163 self._EmitConstant(self._members_emitter, constant)
164 164
165 def _EmitConstant(self, emitter, constant): 165 def _EmitConstant(self, emitter, constant):
166 emitter.Emit('\n static final $TYPE$NAME = $VALUE;\n', 166 emitter.Emit('\n static final $TYPE$NAME = $VALUE;\n',
167 NAME=constant.id, 167 NAME=constant.id,
168 TYPE=TypeOrNothing(DartType(constant.type.id), 168 TYPE=TypeOrNothing(self._DartType(constant.type.id),
169 constant.type.id), 169 constant.type.id),
170 VALUE=constant.value) 170 VALUE=constant.value)
171 171
172 def AddAttribute(self, attribute): 172 def AddAttribute(self, attribute):
173 getter = attribute 173 getter = attribute
174 setter = attribute if not systembase.IsReadOnly(attribute) else None 174 setter = attribute if not systembase.IsReadOnly(attribute) else None
175 if getter and setter and getter.type.id == setter.type.id: 175 if getter and setter and getter.type.id == setter.type.id:
176 self._members_emitter.Emit('\n $TYPE $NAME;\n', 176 self._members_emitter.Emit('\n $TYPE $NAME;\n',
177 NAME=DartDomNameOfAttribute(getter), 177 NAME=DartDomNameOfAttribute(getter),
178 TYPE=TypeOrVar(DartType(getter.type.id), 178 TYPE=TypeOrVar(self._DartType(getter.type.id),
179 getter.type.id)) 179 getter.type.id))
180 return 180 return
181 if getter and not setter: 181 if getter and not setter:
182 self._members_emitter.Emit('\n final $TYPE$NAME;\n', 182 self._members_emitter.Emit('\n final $TYPE$NAME;\n',
183 NAME=DartDomNameOfAttribute(getter), 183 NAME=DartDomNameOfAttribute(getter),
184 TYPE=TypeOrNothing(DartType(getter.type.id), 184 TYPE=TypeOrNothing(self._DartType(getter.type.i d),
185 getter.type.id)) 185 getter.type.id))
186 return 186 return
187 raise Exception('Unexpected getter/setter combination %s %s' % 187 raise Exception('Unexpected getter/setter combination %s %s' %
188 (getter, setter)) 188 (getter, setter))
189 189
190 def AddOperation(self, info): 190 def AddOperation(self, info):
191 """ 191 """
192 Arguments: 192 Arguments:
193 operations - contains the overloads, one or more operations with the same 193 operations - contains the overloads, one or more operations with the same
194 name. 194 name.
195 """ 195 """
196 self._members_emitter.Emit('\n' 196 self._members_emitter.Emit('\n'
197 ' $TYPE $NAME($PARAMS);\n', 197 ' $TYPE $NAME($PARAMS);\n',
198 TYPE=info.type_name, 198 TYPE=self._DartType(info.type_name),
199 NAME=info.name, 199 NAME=info.name,
200 PARAMS=info.ParametersInterfaceDeclaration()) 200 PARAMS=info.ParametersInterfaceDeclaration(self._ DartType))
OLDNEW
« no previous file with comments | « lib/dom/scripts/systemhtml.py ('k') | lib/dom/scripts/systemnative.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698