OLD | NEW |
---|---|
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 provides shared functionality for the system to generate | 6 """This module provides shared functionality for the system to generate |
7 Dart:html APIs from the IDL database.""" | 7 Dart:html APIs from the IDL database.""" |
8 | 8 |
9 from systemfrog import * | 9 from systemfrog import * |
10 from systeminterface import * | 10 from systeminterface import * |
(...skipping 648 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
659 self.AddEventAttributes(events) | 659 self.AddEventAttributes(events) |
660 else: | 660 else: |
661 self._EmitEventGetter(self._shared.GetParentEventsClass(self._interface)) | 661 self._EmitEventGetter(self._shared.GetParentEventsClass(self._interface)) |
662 | 662 |
663 def AddAttribute(self, getter, setter): | 663 def AddAttribute(self, getter, setter): |
664 html_getter_name = self._shared.RenameInHtmlLibrary( | 664 html_getter_name = self._shared.RenameInHtmlLibrary( |
665 self._interface, getter.id, 'get:') | 665 self._interface, getter.id, 'get:') |
666 html_setter_name = self._shared.RenameInHtmlLibrary( | 666 html_setter_name = self._shared.RenameInHtmlLibrary( |
667 self._interface, getter.id, 'set:') | 667 self._interface, getter.id, 'set:') |
668 | 668 |
669 if not html_getter_name: | 669 if not html_getter_name or html_getter_name.startswith('_'): |
Jacob
2012/03/09 19:18:39
add a trivial
IsPrivate helper
nweiz
2012/03/09 20:58:57
Done.
| |
670 getter = None | 670 getter = None |
671 if not html_setter_name: | 671 if not html_setter_name or html_setter_name.startswith('_'): |
672 setter = None | 672 setter = None |
673 if not getter and not setter: | 673 if not getter and not setter: |
674 return | 674 return |
675 | 675 |
676 # We don't yet handle inconsistent renames of the getter and setter yet. | 676 # We don't yet handle inconsistent renames of the getter and setter yet. |
677 if html_getter_name and html_setter_name: | 677 if html_getter_name and html_setter_name: |
678 assert html_getter_name == html_setter_name | 678 assert html_getter_name == html_setter_name |
679 if (getter and setter and | 679 if (getter and setter and |
680 DartType(getter.type.id) == DartType(setter.type.id)): | 680 DartType(getter.type.id) == DartType(setter.type.id)): |
681 self._members_emitter.Emit('\n $TYPE $NAME;\n', | 681 self._members_emitter.Emit('\n $TYPE $NAME;\n', |
682 NAME=html_getter_name, | 682 NAME=html_getter_name, |
683 TYPE=DartType(getter.type.id)); | 683 TYPE=DartType(getter.type.id)); |
684 return | 684 return |
685 if getter and not setter: | 685 if getter and not setter: |
686 self._members_emitter.Emit('\n final $TYPE $NAME;\n', | 686 self._members_emitter.Emit('\n final $TYPE $NAME;\n', |
687 NAME=html_getter_name, | 687 NAME=html_getter_name, |
688 TYPE=DartType(getter.type.id)); | 688 TYPE=DartType(getter.type.id)); |
689 return | 689 return |
690 raise Exception('Unexpected getter/setter combination %s %s' % | 690 raise Exception('Unexpected getter/setter combination %s %s' % |
691 (getter, setter)) | 691 (getter, setter)) |
692 | 692 |
693 def AddOperation(self, info): | 693 def AddOperation(self, info): |
694 """ | 694 """ |
695 Arguments: | 695 Arguments: |
696 operations - contains the overloads, one or more operations with the same | 696 operations - contains the overloads, one or more operations with the same |
697 name. | 697 name. |
698 """ | 698 """ |
699 html_name = self._shared.RenameInHtmlLibrary(self._interface, info.name) | 699 html_name = self._shared.RenameInHtmlLibrary(self._interface, info.name) |
700 if html_name: | 700 if html_name and not html_name.startswith('_'): |
701 self._members_emitter.Emit('\n' | 701 self._members_emitter.Emit('\n' |
702 ' $TYPE $NAME($PARAMS);\n', | 702 ' $TYPE $NAME($PARAMS);\n', |
703 TYPE=info.type_name, | 703 TYPE=info.type_name, |
704 NAME=html_name, | 704 NAME=html_name, |
705 PARAMS=info.ParametersInterfaceDeclaration()) | 705 PARAMS=info.ParametersInterfaceDeclaration()) |
706 | 706 |
707 def FinishInterface(self): | 707 def FinishInterface(self): |
708 pass | 708 pass |
709 | 709 |
710 def AddConstant(self, constant): | 710 def AddConstant(self, constant): |
(...skipping 1056 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1767 # dispatch has removed f(X), leaving only f(Y), but there is no guarantee | 1767 # dispatch has removed f(X), leaving only f(Y), but there is no guarantee |
1768 # that Y = Z-X, so we need to check for Y. | 1768 # that Y = Z-X, so we need to check for Y. |
1769 true_code = emitter.Emit( | 1769 true_code = emitter.Emit( |
1770 '$(INDENT)if ($COND) {\n' | 1770 '$(INDENT)if ($COND) {\n' |
1771 '$!TRUE' | 1771 '$!TRUE' |
1772 '$(INDENT)}\n', | 1772 '$(INDENT)}\n', |
1773 COND=test, INDENT=indent) | 1773 COND=test, INDENT=indent) |
1774 self.GenerateDispatch( | 1774 self.GenerateDispatch( |
1775 true_code, info, indent + ' ', position + 1, positive) | 1775 true_code, info, indent + ' ', position + 1, positive) |
1776 return True | 1776 return True |
OLD | NEW |