Revert "update fasta scanner to always generate INDEX or INDEX_EQ tokens"

This reverts commit b8d318e94e.

Review-Url: https://codereview.chromium.org/2746543007 .
This commit is contained in:
danrubel 2017-03-12 18:44:05 -04:00
parent c330fc471f
commit 75c23fec4b
4 changed files with 22 additions and 9 deletions

View file

@ -386,10 +386,7 @@ class Unparser extends Indentation implements Visitor {
if (node.nodes != null) {
unparseNodeListFrom(node, node.nodes, spaces: spaces);
}
// if "[]" then beginToken == endToken ... only write beginToken
if (node.endToken != null && node.endToken != node.beginToken) {
write(node.endToken.lexeme);
}
if (node.endToken != null) write(node.endToken.lexeme);
}
visitNodeList(NodeList node) {

View file

@ -492,10 +492,6 @@ class Parser {
token = parseOptionalFormalParameters(token, true,
inFunctionType: inFunctionType);
break;
} else if (identical(value, '[]')) {
reportRecoverableError(token,
ErrorKind.EmptyOptionalParameterList);
break;
}
token = parseFormalParameter(token, FormalParameterType.REQUIRED,
inFunctionType: inFunctionType);

View file

@ -435,7 +435,11 @@ abstract class AbstractScanner implements Scanner {
// [ [] []=
next = advance();
if (identical(next, $CLOSE_SQUARE_BRACKET)) {
return select($EQ, INDEX_EQ_INFO, INDEX_INFO);
Token token = previousToken();
if (token is KeywordToken && token.keyword.syntax == 'operator' ||
token is SymbolToken && token.info == HASH_INFO) {
return select($EQ, INDEX_EQ_INFO, INDEX_INFO);
}
}
appendBeginGroup(OPEN_SQUARE_BRACKET_INFO);
return next;

View file

@ -155,6 +155,22 @@ class ScannerTest_Fasta extends ScannerTestBase {
super.test_comment_generic_method_type_list();
}
@override
@failingTest
void test_index() {
// TODO(paulberry,ahe): "[]" should be parsed as a single token.
// See dartbug.com/28665.
super.test_index();
}
@override
@failingTest
void test_index_eq() {
// TODO(paulberry,ahe): "[]=" should be parsed as a single token.
// See dartbug.com/28665.
super.test_index_eq();
}
@override
@failingTest
void test_mismatched_closer() {