| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library dart2js.parser.node_listener; | 5 library dart2js.parser.node_listener; |
| 6 | 6 |
| 7 import '../common.dart'; | 7 import '../common.dart'; |
| 8 import '../elements/elements.dart' show CompilationUnitElement; | 8 import '../elements/elements.dart' show CompilationUnitElement; |
| 9 import '../native/native.dart' as native; | 9 import '../native/native.dart' as native; |
| 10 import '../tokens/precedence_constants.dart' as Precedence show INDEX_INFO; | 10 import '../tokens/precedence_constants.dart' as Precedence show INDEX_INFO; |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 Identifier name = popNode(); | 121 Identifier name = popNode(); |
| 122 TypeAnnotation returnType = popNode(); | 122 TypeAnnotation returnType = popNode(); |
| 123 pushNode(new Typedef( | 123 pushNode(new Typedef( |
| 124 returnType, name, typeParameters, formals, typedefKeyword, endToken)); | 124 returnType, name, typeParameters, formals, typedefKeyword, endToken)); |
| 125 } | 125 } |
| 126 | 126 |
| 127 void endNamedMixinApplication( | 127 void endNamedMixinApplication( |
| 128 Token classKeyword, Token implementsKeyword, Token endToken) { | 128 Token classKeyword, Token implementsKeyword, Token endToken) { |
| 129 NodeList interfaces = (implementsKeyword != null) ? popNode() : null; | 129 NodeList interfaces = (implementsKeyword != null) ? popNode() : null; |
| 130 Node mixinApplication = popNode(); | 130 Node mixinApplication = popNode(); |
| 131 Modifiers modifiers = popNode(); | |
| 132 NodeList typeParameters = popNode(); | 131 NodeList typeParameters = popNode(); |
| 133 Identifier name = popNode(); | 132 Identifier name = popNode(); |
| 133 Modifiers modifiers = popNode(); |
| 134 pushNode(new NamedMixinApplication(name, typeParameters, modifiers, | 134 pushNode(new NamedMixinApplication(name, typeParameters, modifiers, |
| 135 mixinApplication, interfaces, classKeyword, endToken)); | 135 mixinApplication, interfaces, classKeyword, endToken)); |
| 136 } | 136 } |
| 137 | 137 |
| 138 void endEnum(Token enumKeyword, Token endBrace, int count) { | 138 void endEnum(Token enumKeyword, Token endBrace, int count) { |
| 139 NodeList names = makeNodeList(count, enumKeyword.next.next, endBrace, ","); | 139 NodeList names = makeNodeList(count, enumKeyword.next.next, endBrace, ","); |
| 140 Identifier name = popNode(); | 140 Identifier name = popNode(); |
| 141 pushNode(new Enum(enumKeyword, name, names)); | 141 pushNode(new Enum(enumKeyword, name, names)); |
| 142 } | 142 } |
| 143 | 143 |
| (...skipping 720 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 864 void log(message) { | 864 void log(message) { |
| 865 reporter.log(message); | 865 reporter.log(message); |
| 866 } | 866 } |
| 867 | 867 |
| 868 void internalError({Token token, Node node}) { | 868 void internalError({Token token, Node node}) { |
| 869 // TODO(ahe): This should call reporter.internalError. | 869 // TODO(ahe): This should call reporter.internalError. |
| 870 Spannable spannable = (token == null) ? node : token; | 870 Spannable spannable = (token == null) ? node : token; |
| 871 throw new SpannableAssertionFailure(spannable, 'Internal error in parser.'); | 871 throw new SpannableAssertionFailure(spannable, 'Internal error in parser.'); |
| 872 } | 872 } |
| 873 } | 873 } |
| OLD | NEW |