| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | |
| 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. | |
| 4 | |
| 5 part of native; | |
| 6 | |
| 7 void checkAllowedLibrary(ElementListener listener, Token token) { | |
| 8 LibraryElement currentLibrary = listener.compilationUnitElement.library; | |
| 9 if (!currentLibrary.canUseNative) { | |
| 10 listener.recoverableError(token, "Unexpected token"); | |
| 11 } | |
| 12 } | |
| 13 | |
| 14 Token handleNativeBlockToSkip(Listener listener, Token token) { | |
| 15 checkAllowedLibrary(listener, token); | |
| 16 token = token.next; | |
| 17 if (identical(token.kind, STRING_TOKEN)) { | |
| 18 token = token.next; | |
| 19 } | |
| 20 if (identical(token.stringValue, '{')) { | |
| 21 BeginGroupToken beginGroupToken = token; | |
| 22 token = beginGroupToken.endGroup; | |
| 23 } | |
| 24 return token; | |
| 25 } | |
| 26 | |
| 27 Token handleNativeFunctionBody(ElementListener listener, Token token) { | |
| 28 checkAllowedLibrary(listener, token); | |
| 29 Token begin = token; | |
| 30 listener.beginReturnStatement(token); | |
| 31 token = token.next; | |
| 32 bool hasExpression = false; | |
| 33 if (identical(token.kind, STRING_TOKEN)) { | |
| 34 hasExpression = true; | |
| 35 listener.beginLiteralString(token); | |
| 36 listener.endLiteralString(0); | |
| 37 token = token.next; | |
| 38 } | |
| 39 listener.endReturnStatement(hasExpression, begin, token); | |
| 40 // TODO(ngeoffray): expect a ';'. | |
| 41 // Currently there are method with both native marker and Dart body. | |
| 42 return token.next; | |
| 43 } | |
| OLD | NEW |