blob: c5ad5c235ac8988721e89d4445e398441fa0ca5c [file] [log] [blame]
// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:front_end/src/scanner/token.dart' show CommentToken, Token;
/// Search for the token before [target] starting the search with [start].
/// Return `null` if [target] is a comment token
/// or the previous token cannot be found.
Token findPrevious(Token start, Token target) {
if (start == target || target is CommentToken) {
return null;
}
Token token = start is CommentToken ? start.parent : start;
do {
Token next = token.next;
if (next == target) {
return token;
}
token = next;
} while (!token.isEof);
return null;
}