OLD | NEW |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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 part of scanner; | 5 part of scanner; |
6 | 6 |
7 class ClassElementParser extends PartialParser { | 7 class ClassElementParser extends PartialParser { |
8 ClassElementParser(Listener listener) : super(listener); | 8 ClassElementParser(Listener listener) : super(listener); |
9 | 9 |
10 Token parseClassBody(Token token) => fullParseClassBody(token); | 10 Token parseClassBody(Token token) => fullParseClassBody(token); |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
169 pushNode(null); | 169 pushNode(null); |
170 } | 170 } |
171 | 171 |
172 void addMember(Element memberElement) { | 172 void addMember(Element memberElement) { |
173 for (Link link = metadata; !link.isEmpty; link = link.tail) { | 173 for (Link link = metadata; !link.isEmpty; link = link.tail) { |
174 memberElement.addMetadata(link.head); | 174 memberElement.addMetadata(link.head); |
175 } | 175 } |
176 metadata = const Link<MetadataAnnotation>(); | 176 metadata = const Link<MetadataAnnotation>(); |
177 enclosingElement.addMember(memberElement, listener); | 177 enclosingElement.addMember(memberElement, listener); |
178 } | 178 } |
| 179 |
| 180 void endMetadata(Token beginToken, Token periodBeforeName, Token endToken) { |
| 181 popNode(); // Discard arguments. |
| 182 if (periodBeforeName != null) { |
| 183 popNode(); // Discard name. |
| 184 } |
| 185 popNode(); // Discard node (Send or Identifier). |
| 186 pushMetadata(new PartialMetadataAnnotation(beginToken)); |
| 187 } |
179 } | 188 } |
OLD | NEW |