Index: pkg/analyzer/lib/src/summary/fasta/stack_listener.dart |
diff --git a/pkg/analyzer/lib/src/summary/fasta/stack_listener.dart b/pkg/analyzer/lib/src/summary/fasta/stack_listener.dart |
deleted file mode 100644 |
index d8b29ea7d4148d9a4b933890f3eabd8fb577fde1..0000000000000000000000000000000000000000 |
--- a/pkg/analyzer/lib/src/summary/fasta/stack_listener.dart |
+++ /dev/null |
@@ -1,140 +0,0 @@ |
-// 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. |
- |
-library fe.stack_listener; |
- |
-import 'dart:collection' show Queue; |
- |
-import 'package:front_end/src/fasta/parser.dart' |
- show IdentifierContext, Listener, MemberKind; |
- |
-import 'package:front_end/src/fasta/scanner.dart' show Token; |
- |
-import 'package:front_end/src/scanner/token.dart' show BeginToken; |
- |
-enum NullValue { |
- Arguments, |
- Combinators, |
- FormalParameters, |
- FunctionBody, |
- IdentifierList, |
- Initializers, |
- Metadata, |
- Modifiers, |
- Type, |
- TypeArguments, |
- TypeList, |
- TypeVariable, |
- TypeVariables, |
-} |
- |
-abstract class StackListener extends Listener { |
- final Queue<Object> stack = new Queue<Object>(); |
- |
- Uri get uri; |
- |
- void checkEmpty() { |
- if (stack.isNotEmpty) { |
- throw "Stack not empty $uri:\n" |
- " ${stack.join('\n ')}"; |
- } |
- } |
- |
- void debugEvent(String name) { |
- // print(" ${stack.join('\n ')}"); |
- // print(name); |
- } |
- |
- void endCompilationUnit(int count, Token token) { |
- debugEvent("CompilationUnit"); |
- checkEmpty(); |
- } |
- |
- void endTopLevelDeclaration(Token token) { |
- debugEvent("TopLevelDeclaration"); |
- checkEmpty(); |
- } |
- |
- void handleIdentifier(Token token, IdentifierContext context) { |
- debugEvent("handleIdentifier"); |
- push(token.lexeme); |
- } |
- |
- void handleNoArguments(Token token) { |
- debugEvent("NoArguments"); |
- var typeArguments = pop(); |
- assert(typeArguments == null); |
- push(NullValue.Arguments); |
- } |
- |
- void handleNoFormalParameters(Token token, MemberKind kind) { |
- debugEvent("NoFormalParameters"); |
- push(NullValue.FormalParameters); |
- } |
- |
- void handleNoFunctionBody(Token token) { |
- debugEvent("NoFunctionBody"); |
- push(NullValue.FunctionBody); |
- } |
- |
- void handleNoInitializers() { |
- debugEvent("NoInitializers"); |
- push(NullValue.Initializers); |
- } |
- |
- void handleNoType(Token token) { |
- debugEvent("NoType"); |
- push(NullValue.Type); |
- } |
- |
- void handleNoTypeArguments(Token token) { |
- debugEvent("NoTypeArguments"); |
- push(NullValue.TypeArguments); |
- } |
- |
- void handleNoTypeVariables(Token token) { |
- debugEvent("NoTypeVariables"); |
- push(NullValue.TypeVariables); |
- } |
- |
- void handleParenthesizedExpression(BeginToken token) { |
- debugEvent("ParenthesizedExpression"); |
- } |
- |
- void logEvent(String name) { |
- print(" ${stack.join('\n ')}"); |
- throw "Unhandled event: $name in $runtimeType $uri."; |
- } |
- |
- Object peek() { |
- Object node = stack.last; |
- return node is NullValue ? null : node; |
- } |
- |
- Object pop({NullValue expect: null}) { |
- Object node = stack.removeLast(); |
- if (expect != null && expect != node) { |
- throw "unexpected value: $expect vs $node"; |
- } |
- return node is NullValue ? null : node; |
- } |
- |
- Object popIfNotNull(Object value) { |
- return value == null ? null : pop(); |
- } |
- |
- List popList(int n) { |
- if (n == 0) return null; |
- List list = new List(n); |
- for (int i = n - 1; i >= 0; i--) { |
- list[i] = pop(); |
- } |
- return list; |
- } |
- |
- void push(Object node) { |
- if (node == null) throw "null not allowed."; |
- stack.addLast(node); |
- } |
-} |