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

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

Issue 9341007: Use 'field' syntax in dart:dom interfaces. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: merge 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
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 generates Dart APIs from the IDL database.""" 6 """This module generates Dart APIs from the IDL database."""
7 7
8 import emitter 8 import emitter
9 import idlnode 9 import idlnode
10 import logging 10 import logging
(...skipping 1232 matching lines...) Expand 10 before | Expand all | Expand 10 after
1243 self._interface.id is self._super_interface): 1243 self._interface.id is self._super_interface):
1244 self._EmitConstant(self._members_emitter, constant) 1244 self._EmitConstant(self._members_emitter, constant)
1245 1245
1246 def _EmitConstant(self, emitter, constant): 1246 def _EmitConstant(self, emitter, constant):
1247 emitter.Emit('\n static final $TYPE $NAME = $VALUE;\n', 1247 emitter.Emit('\n static final $TYPE $NAME = $VALUE;\n',
1248 NAME=constant.id, 1248 NAME=constant.id,
1249 TYPE=constant.type.id, 1249 TYPE=constant.type.id,
1250 VALUE=constant.value) 1250 VALUE=constant.value)
1251 1251
1252 def AddAttribute(self, getter, setter): 1252 def AddAttribute(self, getter, setter):
1253 if getter: 1253 if getter and setter and getter.type.id == setter.type.id:
1254 self._members_emitter.Emit('\n $TYPE get $NAME();\n', 1254 self._members_emitter.Emit('\n $TYPE $NAME;\n',
1255 NAME=getter.id, TYPE=getter.type.id) 1255 NAME=getter.id, TYPE=getter.type.id);
1256 if setter: 1256 return
1257 self._members_emitter.Emit('\n void set $NAME($TYPE value);\n', 1257 if getter and not setter:
1258 NAME=setter.id, TYPE=setter.type.id) 1258 self._members_emitter.Emit('\n final $TYPE $NAME;\n',
1259 NAME=getter.id, TYPE=getter.type.id);
1260 return
1261 raise Exception('Unexpected getter/setter combination %s %s' %
1262 (getter, setter))
1259 1263
1260 def AddIndexer(self, element_type): 1264 def AddIndexer(self, element_type):
1261 # Interface inherits all operations from List<element_type>. 1265 # Interface inherits all operations from List<element_type>.
1262 pass 1266 pass
1263 1267
1264 def AddOperation(self, info): 1268 def AddOperation(self, info):
1265 """ 1269 """
1266 Arguments: 1270 Arguments:
1267 operations - contains the overloads, one or more operations with the same 1271 operations - contains the overloads, one or more operations with the same
1268 name. 1272 name.
(...skipping 702 matching lines...) Expand 10 before | Expand all | Expand 10 after
1971 # generate the constants as part of the class. This will need to go away 1975 # generate the constants as part of the class. This will need to go away
1972 # if we revert back to generating interfaces. 1976 # if we revert back to generating interfaces.
1973 self._members_emitter.Emit('\n static final $TYPE $NAME = $VALUE;\n', 1977 self._members_emitter.Emit('\n static final $TYPE $NAME = $VALUE;\n',
1974 NAME=constant.id, 1978 NAME=constant.id,
1975 TYPE=constant.type.id, 1979 TYPE=constant.type.id,
1976 VALUE=constant.value) 1980 VALUE=constant.value)
1977 1981
1978 pass 1982 pass
1979 1983
1980 def AddAttribute(self, getter, setter): 1984 def AddAttribute(self, getter, setter):
1981 use_fields = True
1982 output_type = getter and self._NarrowOutputType(getter.type.id) 1985 output_type = getter and self._NarrowOutputType(getter.type.id)
1983 input_type = setter and self._NarrowInputType(setter.type.id) 1986 input_type = setter and self._NarrowInputType(setter.type.id)
1984 if use_fields and getter and setter: 1987 if getter and setter and input_type == output_type:
1985 if input_type == output_type: 1988 self._members_emitter.Emit(
1986 self._members_emitter.Emit( 1989 '\n $TYPE $NAME;\n',
1987 '\n $TYPE $NAME;\n', 1990 NAME=getter.id, TYPE=output_type)
1988 NAME=getter.id, TYPE=output_type) 1991 return
1989 return 1992 if getter and not setter:
1990 if use_fields and getter and not setter: 1993 self._members_emitter.Emit(
1991 self._members_emitter.Emit( 1994 '\n final $TYPE $NAME;\n',
1992 '\n final $TYPE $NAME;\n', 1995 NAME=getter.id, TYPE=output_type)
1993 NAME=getter.id, TYPE=output_type) 1996 return
1994 return
1995 if getter: 1997 if getter:
1996 self._AddGetter(getter) 1998 self._AddGetter(getter)
1997 if setter: 1999 if setter:
1998 self._AddSetter(setter) 2000 self._AddSetter(setter)
1999 2001
2000 def _AddGetter(self, attr): 2002 def _AddGetter(self, attr):
2001 # TODO(sra): Remove native body when Issue 829 fixed. 2003 # TODO(sra): Remove native body when Issue 829 fixed.
2002 self._members_emitter.Emit( 2004 self._members_emitter.Emit(
2003 '\n $TYPE get $NAME() native "return this.$NAME;";\n', 2005 '\n $TYPE get $NAME() native "return this.$NAME;";\n',
2004 NAME=attr.id, TYPE=self._NarrowOutputType(attr.type.id)) 2006 NAME=attr.id, TYPE=self._NarrowOutputType(attr.type.id))
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after
2312 INDENT=indent, 2314 INDENT=indent,
2313 NATIVENAME=native_name, 2315 NATIVENAME=native_name,
2314 ARGS=argument_expressions) 2316 ARGS=argument_expressions)
2315 2317
2316 self._members_emitter.Emit(' $TYPE $NATIVE_NAME($PARAMS) native ' 2318 self._members_emitter.Emit(' $TYPE $NATIVE_NAME($PARAMS) native '
2317 '"$(INTERFACE)$(NATIVE_NAME)_Callback";\n', 2319 '"$(INTERFACE)$(NATIVE_NAME)_Callback";\n',
2318 NATIVE_NAME=native_name, 2320 NATIVE_NAME=native_name,
2319 TYPE=info.type_name, 2321 TYPE=info.type_name,
2320 PARAMS=', '.join(arg_names), 2322 PARAMS=', '.join(arg_names),
2321 INTERFACE=self._interface.id) 2323 INTERFACE=self._interface.id)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698