Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1226)

Unified Diff: pkg/fasta/lib/src/kernel/body_builder.dart

Issue 2645513002: Document parser event names. (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/dart_parser/lib/src/listener.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/fasta/lib/src/kernel/body_builder.dart
diff --git a/pkg/fasta/lib/src/kernel/body_builder.dart b/pkg/fasta/lib/src/kernel/body_builder.dart
index f8e63d1184c68b585843a2b6df3156ada00a0a5b..3446c5564a7948be997a9d9bb53264103639af78 100644
--- a/pkg/fasta/lib/src/kernel/body_builder.dart
+++ b/pkg/fasta/lib/src/kernel/body_builder.dart
@@ -115,6 +115,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
final ClassHierarchy hierarchy;
+ @override
final CoreTypes coreTypes;
final bool isInstanceMember;
@@ -157,6 +158,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
return isInstanceMember || member is KernelConstructorBuilder;
}
+ @override
void push(Object node) {
isFirstIdentifier = false;
inInitializer = false;
@@ -167,6 +169,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
Expression popForEffect() => toEffect(pop());
+ @override
Expression toValue(Object node) {
if (node is UnresolvedIdentifier) {
return throwNoSuchMethodError(node.name.name, new Arguments.empty(),
@@ -258,10 +261,13 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
switchScope = pop();
}
+ @override
Uri get uri => library.fileUri ?? library.uri;
+ @override
JumpTarget createJumpTarget(JumpTargetKind kind) => new JumpTarget(kind);
+ @override
void endMetadata(Token beginToken, Token periodBeforeName, Token endToken) {
debugEvent("Metadata");
pop(); // Arguments.
@@ -271,11 +277,13 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
// TODO(ahe): Implement metadata on local declarations.
}
+ @override
void endMetadataStar(int count, bool forParameter) {
debugEvent("MetadataStar");
push(NullValue.Metadata);
}
+ @override
void endTopLevelFields(int count, Token beginToken, Token endToken) {
debugEvent("TopLevelFields");
doFields(count);
@@ -284,6 +292,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
// DietListener discarding top-level member metadata.
}
+ @override
void endFields(int count, Token beginToken, Token endToken) {
debugEvent("Fields");
doFields(count);
@@ -317,11 +326,13 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
}
+ @override
void endMember() {
debugEvent("Member");
checkEmpty();
}
+ @override
void endFunctionBody(int count, Token beginToken, Token endToken) {
debugEvent("FunctionBody");
if (beginToken == null) {
@@ -334,6 +345,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
}
+ @override
void prepareInitializers() {
scope = formalParameterScope;
assert(fieldInitializers.isEmpty);
@@ -363,11 +375,13 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
}
+ @override
void beginConstructorInitializer(Token token) {
debugEvent("beginConstructorInitializer");
inInitializer = true;
}
+ @override
void endConstructorInitializer(Token token) {
debugEvent("endConstructorInitializer");
assert(!inInitializer);
@@ -394,14 +408,17 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
}
+ @override
void handleNoInitializers() {
debugEvent("NoInitializers");
}
+ @override
void endInitializers(int count, Token beginToken, Token endToken) {
debugEvent("Initializers");
}
+ @override
void finishFunction(FormalParameters formals,
AsyncMarker asyncModifier, Statement body) {
debugEvent("finishFunction");
@@ -432,11 +449,13 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
}
+ @override
void endExpressionStatement(Token token) {
debugEvent("ExpressionStatement");
push(new ExpressionStatement(popForEffect()));
}
+ @override
void endArguments(int count, Token beginToken, Token endToken) {
debugEvent("Arguments");
List arguments = popList(count) ?? <Expression>[];
@@ -463,11 +482,13 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
}
+ @override
void handleParenthesizedExpression(BeginGroupToken token) {
debugEvent("ParenthesizedExpression");
push(popForValue());
}
+ @override
void endSend(Token token) {
debugEvent("Send");
Arguments arguments = pop();
@@ -492,6 +513,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
}
+ @override
finishSend(Object receiver, Arguments arguments, int charOffset) {
if (receiver is BuilderAccessor) {
return receiver.doInvocation(charOffset, arguments);
@@ -504,6 +526,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
}
+ @override
void beginCascade(Token token) {
debugEvent("beginCascade");
Expression expression = popForValue();
@@ -520,6 +543,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
}
+ @override
void endCascade() {
debugEvent("endCascade");
Expression expression = popForEffect();
@@ -528,6 +552,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
push(cascadeReceiver);
}
+ @override
void handleBinaryExpression(Token token) {
debugEvent("BinaryExpression");
if (optional(".", token) || optional("..", token)) {
@@ -597,6 +622,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
push(send.withReceiver(receiver));
}
+ @override
Expression toSuperMethodInvocation(MethodInvocation node) {
Member target = lookupSuperMember(node.name);
bool isNoSuchMethod = target == null;
@@ -636,6 +662,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
isSetter: isSetter);
}
+ @override
Member lookupSuperMember(Name name, {bool isSetter: false}) {
Class superclass = classBuilder.cls.superclass;
return superclass == null
@@ -643,6 +670,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
: hierarchy.getDispatchTarget(superclass, name, setter: isSetter);
}
+ @override
Constructor lookupConstructor(Name name, {bool isSuper}) {
Class cls = classBuilder.cls;
if (isSuper) {
@@ -659,6 +687,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
return null;
}
+ @override
void beginExpression(Token token) {
debugEvent("beginExpression");
isFirstIdentifier = true;
@@ -670,6 +699,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
return builder.isField ? (builder.isFinal ? null : builder) : null;
}
+ @override
void handleIdentifier(Token token) {
debugEvent("handleIdentifier");
String name = token.value;
@@ -685,6 +715,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
}
+ @override
builderToFirstExpression(Builder builder, String name, int charOffset,
{bool isPrefix: false}) {
if (builder == null || (!isInstanceContext && builder.isInstanceMember)) {
@@ -730,6 +761,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
}
+ @override
void handleQualified(Token period) {
debugEvent("Qualified");
Identifier name = pop();
@@ -737,16 +769,19 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
push([receiver, name]);
}
+ @override
void beginLiteralString(Token token) {
debugEvent("beginLiteralString");
push(token);
}
+ @override
void handleStringPart(Token token) {
debugEvent("StringPart");
push(token);
}
+ @override
void endLiteralString(int interpolationCount) {
debugEvent("endLiteralString");
if (interpolationCount == 0) {
@@ -774,6 +809,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
}
+ @override
void handleStringJuxtaposition(int literalCount) {
debugEvent("StringJuxtaposition");
List<Expression> parts = popListForValue(literalCount);
@@ -795,11 +831,13 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
push(new StringConcatenation(expressions ?? parts));
}
+ @override
void handleLiteralInt(Token token) {
debugEvent("LiteralInt");
push(new IntLiteral(int.parse(token.value)));
}
+ @override
void endReturnStatement(
bool hasExpression, Token beginToken, Token endToken) {
debugEvent("ReturnStatement");
@@ -812,6 +850,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
}
+ @override
void endIfStatement(Token ifToken, Token elseToken) {
Statement elsePart = popStatementIfNotNull(elseToken);
Statement thenPart = popStatement();
@@ -819,6 +858,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
push(new IfStatement(condition, thenPart, elsePart));
}
+ @override
void endInitializer(Token assignmentOperator) {
debugEvent("Initializer");
assert(assignmentOperator.stringValue == "=");
@@ -827,6 +867,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
push(new VariableDeclaration(identifier.name, initializer: initializer));
}
+ @override
void endInitializedIdentifier() {
// TODO(ahe): Use [InitializedIdentifier] here?
debugEvent("InitializedIdentifier");
@@ -843,6 +884,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
scope[variable.name] = new KernelVariableBuilder(variable);
}
+ @override
void endVariablesDeclaration(int count, Token endToken) {
debugEvent("VariablesDeclaration");
List<VariableDeclaration> variables = popList(count);
@@ -866,6 +908,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
}
+ @override
void endBlock(int count, Token beginToken, Token endToken) {
debugEvent("Block");
Block block = popBlock(count);
@@ -873,6 +916,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
push(block);
}
+ @override
void handleAssignmentExpression(Token token) {
debugEvent("AssignmentExpression");
Expression value = popForValue();
@@ -888,6 +932,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
}
+ @override
void enterLoop() {
if (peek() is LabelTarget) {
LabelTarget target = peek();
@@ -908,6 +953,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
}
+ @override
void endForStatement(
int updateExpressionCount, Token beginToken, Token endToken) {
debugEvent("ForStatement");
@@ -955,16 +1001,19 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
exitLoopOrSwitch(result);
}
+ @override
void endAwaitExpression(Token beginToken, Token endToken) {
debugEvent("AwaitExpression");
push(new AwaitExpression(popForValue()));
}
+ @override
void handleAsyncModifier(Token asyncToken, Token starToken) {
debugEvent("AsyncModifier");
push(asyncMarkerFromTokens(asyncToken, starToken));
}
+ @override
void handleLiteralList(
int count, Token beginToken, Token constKeyword, Token endToken) {
debugEvent("LiteralList");
@@ -983,6 +1032,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
isConst: constKeyword != null));
}
+ @override
void handleLiteralBool(Token token) {
debugEvent("LiteralBool");
bool value = optional("true", token);
@@ -990,16 +1040,19 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
push(new BoolLiteral(value));
}
+ @override
void handleLiteralDouble(Token token) {
debugEvent("LiteralDouble");
push(new DoubleLiteral(double.parse(token.value)));
}
+ @override
void handleLiteralNull(Token token) {
debugEvent("LiteralNull");
push(new NullLiteral());
}
+ @override
void handleLiteralMap(
int count, Token beginToken, Token constKeyword, Token endToken) {
debugEvent("LiteralMap");
@@ -1022,6 +1075,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
isConst: constKeyword != null));
}
+ @override
void endLiteralMapEntry(Token colon, Token endToken) {
debugEvent("LiteralMapEntry");
Expression value = popForValue();
@@ -1029,6 +1083,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
push(new MapEntry(key, value));
}
+ @override
void beginLiteralSymbol(Token token) {
isFirstIdentifier = false;
}
@@ -1043,6 +1098,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
}
+ @override
void endLiteralSymbol(Token hashToken, int identifierCount) {
debugEvent("LiteralSymbol");
String value;
@@ -1074,6 +1130,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
return const DynamicType();
}
+ @override
void endType(Token beginToken, Token endToken) {
// TODO(ahe): The scope is wrong for return types of generic functions.
debugEvent("Type");
@@ -1134,11 +1191,13 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
}
+ @override
void handleVoidKeyword(Token token) {
debugEvent("VoidKeyword");
push(const VoidType());
}
+ @override
void handleAsOperator(Token operator, Token endToken) {
debugEvent("AsOperator");
DartType type = pop();
@@ -1146,6 +1205,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
push(new AsExpression(expression, type));
}
+ @override
void handleIsOperator(Token operator, Token not, Token endToken) {
debugEvent("IsOperator");
DartType type = pop();
@@ -1157,6 +1217,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
push(expression);
}
+ @override
void handleConditionalExpression(Token question, Token colon) {
debugEvent("ConditionalExpression");
Expression elseExpression = popForValue();
@@ -1166,12 +1227,14 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
condition, thenExpression, elseExpression, const DynamicType()));
}
+ @override
void endThrowExpression(Token throwToken, Token endToken) {
debugEvent("ThrowExpression");
Expression expression = popForValue();
push(new Throw(expression));
}
+ @override
void endFormalParameter(Token thisKeyword) {
debugEvent("FormalParameter");
if (thisKeyword != null) {
@@ -1214,6 +1277,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
push(variable);
}
+ @override
void endOptionalFormalParameters(
int count, Token beginToken, Token endToken) {
debugEvent("OptionalFormalParameters");
@@ -1222,11 +1286,13 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
push(new OptionalFormals(kind, popList(count)));
}
+ @override
void beginFunctionTypedFormalParameter(Token token) {
debugEvent("beginFunctionTypedFormalParameter");
functionNestingLevel++;
}
+ @override
void handleFunctionTypedFormalParameter(Token token) {
debugEvent("FunctionTypedFormalParameter");
if (inCatchClause || functionNestingLevel != 0) {
@@ -1241,6 +1307,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
functionNestingLevel--;
}
+ @override
void handleValuedFormalParameter(Token equals, Token token) {
debugEvent("ValuedFormalParameter");
Expression initializer = popForValue();
@@ -1248,6 +1315,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
push(new InitializedIdentifier(name.name, initializer));
}
+ @override
void endFormalParameters(int count, Token beginToken, Token endToken) {
debugEvent("FormalParameters");
OptionalFormals optional;
@@ -1263,16 +1331,19 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
}
+ @override
void beginCatchClause(Token token) {
debugEvent("beginCatchClause");
inCatchClause = true;
}
+ @override
void endCatchClause(Token token) {
debugEvent("CatchClause");
inCatchClause = false;
}
+ @override
void handleCatchBlock(Token onKeyword, Token catchKeyword) {
debugEvent("CatchBlock");
Block body = pop();
@@ -1300,6 +1371,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
push(new Catch(exception, body, guard: type, stackTrace: stackTrace));
}
+ @override
void endTryStatement(
int catchCount, Token tryKeyword, Token finallyKeyword) {
Statement finallyBlock = popStatementIfNotNull(finallyKeyword);
@@ -1319,11 +1391,13 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
}
+ @override
void handleNoExpression(Token token) {
debugEvent("NoExpression");
push(NullValue.Expression);
}
+ @override
void handleIndexedExpression(
Token openCurlyBracket, Token closeCurlyBracket) {
debugEvent("IndexedExpression");
@@ -1333,6 +1407,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
null, null));
}
+ @override
void handleUnaryPrefixExpression(Token token) {
debugEvent("UnaryPrefixExpression");
Expression expression = popForValue();
@@ -1354,6 +1429,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
return internalError("Unknown increment operator: ${token.value}");
}
+ @override
void handleUnaryPrefixAssignmentExpression(Token token) {
debugEvent("UnaryPrefixAssignmentExpression");
var accessor = pop();
@@ -1364,6 +1440,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
}
+ @override
void handleUnaryPostfixAssignmentExpression(Token token) {
debugEvent("UnaryPostfixAssignmentExpression");
var accessor = pop();
@@ -1375,6 +1452,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
}
+ @override
void endConstructorReference(
Token start, Token periodBeforeName, Token endToken) {
debugEvent("ConstructorReference");
@@ -1430,6 +1508,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
push(name);
}
+ @override
Expression buildStaticInvocation(Member target, Arguments arguments,
{bool isConst: false}) {
List<TypeParameter> typeParameters = target.function.typeParameters;
@@ -1511,6 +1590,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
return true;
}
+ @override
void handleNewExpression(Token token) {
debugEvent("NewExpression");
Arguments arguments = pop();
@@ -1559,16 +1639,19 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
push(throwNoSuchMethodError(errorName, arguments, token.charOffset));
}
+ @override
void handleConstExpression(Token token) {
debugEvent("ConstExpression");
handleNewExpression(token);
}
+ @override
void endTypeArguments(int count, Token beginToken, Token endToken) {
debugEvent("TypeArguments");
push(popList(count));
}
+ @override
void handleThisExpression(Token token) {
debugEvent("ThisExpression");
if (isFirstIdentifier && isInstanceContext) {
@@ -1579,6 +1662,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
}
+ @override
void handleSuperExpression(Token token) {
debugEvent("SuperExpression");
if (isFirstIdentifier && isInstanceContext) {
@@ -1592,6 +1676,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
}
+ @override
void handleNamedArgument(Token colon) {
debugEvent("NamedArgument");
Expression value = popForValue();
@@ -1599,6 +1684,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
push(new NamedExpression(identifier.name, value));
}
+ @override
void endFunctionName(Token token) {
debugEvent("FunctionName");
Identifier name = pop();
@@ -1610,16 +1696,19 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
enterLocalScope();
}
+ @override
void beginFunction(Token token) {
debugEvent("beginFunction");
functionNestingLevel++;
}
+ @override
void beginUnnamedFunction(Token token) {
debugEvent("beginUnnamedFunction");
functionNestingLevel++;
}
+ @override
void endFunction(Token getOrSet, Token endToken) {
debugEvent("Function");
Statement body = popStatement();
@@ -1634,6 +1723,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
functionNestingLevel--;
}
+ @override
void endFunctionDeclaration(Token token) {
debugEvent("FunctionDeclaration");
FunctionNode function = pop();
@@ -1646,6 +1736,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
push(declaration);
}
+ @override
void endUnnamedFunction(Token token) {
debugEvent("UnnamedFunction");
Statement body = popStatement();
@@ -1659,6 +1750,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
functionNestingLevel--;
}
+ @override
void endDoWhileStatement(
Token doKeyword, Token whileKeyword, Token endToken) {
debugEvent("DoWhileStatement");
@@ -1678,10 +1770,12 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
exitLoopOrSwitch(result);
}
+ @override
void beginForInExpression(Token token) {
enterLocalScope(scope.parent);
}
+ @override
void endForInExpression(Token token) {
debugEvent("ForInExpression");
Expression expression = popForValue();
@@ -1689,6 +1783,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
push(expression ?? NullValue.Expression);
}
+ @override
void endForIn(
Token awaitToken, Token forToken, Token inKeyword, Token endToken) {
debugEvent("ForIn");
@@ -1735,12 +1830,14 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
exitLoopOrSwitch(result);
}
+ @override
void handleLabel(Token token) {
debugEvent("Label");
Identifier identifier = pop();
push(new Label(identifier.name));
}
+ @override
void beginLabeledStatement(Token token, int labelCount) {
debugEvent("beginLabeledStatement");
List<Label> labels = popList(labelCount);
@@ -1752,6 +1849,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
push(target);
}
+ @override
void endLabeledStatement(int labelCount) {
debugEvent("LabeledStatement");
Statement statement = popStatement();
@@ -1772,16 +1870,19 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
push(statement);
}
+ @override
void endRethrowStatement(Token throwToken, Token endToken) {
debugEvent("RethrowStatement");
push(new ExpressionStatement(new Rethrow()));
}
+ @override
void handleFinallyBlock(Token finallyKeyword) {
debugEvent("FinallyBlock");
// Do nothing, handled by [endTryStatement].
}
+ @override
void endWhileStatement(Token whileKeyword, Token endToken) {
debugEvent("WhileStatement");
Statement body = popStatement();
@@ -1800,11 +1901,13 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
exitLoopOrSwitch(result);
}
+ @override
void handleEmptyStatement(Token token) {
debugEvent("EmptyStatement");
push(new EmptyStatement());
}
+ @override
void handleAssertStatement(
Token assertKeyword, Token commaToken, Token semicolonToken) {
debugEvent("AssertStatement");
@@ -1813,11 +1916,13 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
push(new AssertStatement(condition, message));
}
+ @override
void endYieldStatement(Token yieldToken, Token starToken, Token endToken) {
debugEvent("YieldStatement");
push(new YieldStatement(popForValue(), isYieldStar: starToken != null));
}
+ @override
void beginSwitchBlock(Token token) {
debugEvent("beginSwitchBlock");
enterLocalScope();
@@ -1825,6 +1930,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
enterBreakTarget();
}
+ @override
void beginSwitchCase(int labelCount, int expressionCount, Token firstToken) {
debugEvent("beginSwitchCase");
List labelsAndExpressions = popList(labelCount + expressionCount);
@@ -1853,6 +1959,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
enterLocalScope();
}
+ @override
void handleSwitchCase(
int labelCount,
int expressionCount,
@@ -1869,11 +1976,13 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
push(labels);
}
+ @override
void endSwitchStatement(Token switchKeyword, Token endToken) {
debugEvent("SwitchStatement");
// Do nothing. Handled by [endSwitchBlock].
}
+ @override
void endSwitchBlock(int caseCount, Token beginToken, Token endToken) {
debugEvent("SwitchBlock");
List<SwitchCase> cases =
@@ -1901,11 +2010,13 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
exitLoopOrSwitch(result);
}
+ @override
void handleCaseMatch(Token caseKeyword, Token colon) {
debugEvent("CaseMatch");
// Do nothing. Handled by [handleSwitchCase].
}
+ @override
void handleBreakStatement(
bool hasTarget, Token breakKeyword, Token endToken) {
debugEvent("BreakStatement");
@@ -1932,6 +2043,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
}
+ @override
void handleContinueStatement(
bool hasTarget, Token continueKeyword, Token endToken) {
debugEvent("ContinueStatement");
@@ -1978,28 +2090,33 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
}
+ @override
void endTypeVariable(Token token, Token extendsOrSuper) {
logEvent("TypeVariable");
// TODO(ahe): Implement this when enabling generic method syntax.
}
+ @override
void endTypeVariables(int count, Token beginToken, Token endToken) {
logEvent("TypeVariables");
// TODO(ahe): Implement this when enabling generic method syntax.
}
+ @override
void handleModifier(Token token) {
debugEvent("Modifier");
// TODO(ahe): Copied from outline_builder.dart.
push(new Modifier.fromString(token.stringValue));
}
+ @override
void handleModifiers(int count) {
debugEvent("Modifiers");
// TODO(ahe): Copied from outline_builder.dart.
push(popList(count) ?? NullValue.Modifiers);
}
+ @override
void reportErrorHelper(Token token, ErrorKind kind, Map arguments) {
super.reportErrorHelper(token, kind, arguments);
if (!hasParserError) {
@@ -2008,6 +2125,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
hasParserError = true;
}
+ @override
Token expectedExpression(Token token) {
if (token is ErrorToken) {
reportErrorToken(token);
@@ -2022,6 +2140,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
}
+ @override
Token expected(String string, Token token) {
if (token is ErrorToken) {
reportErrorToken(token);
@@ -2053,6 +2172,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
print(message);
}
+ @override
Expression buildCompileTimeError(error, [int charOffset = -1]) {
String message = new InputError(uri, charOffset, error).format();
print(message);
@@ -2063,6 +2183,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
return new ExpressionStatement(buildCompileTimeError(error, charOffset));
}
+ @override
Initializer buildCompileTimeErrorIntializer(error, [int charOffset = -1]) {
return new LocalInitializer(
new VariableDeclaration.forValue(
@@ -2070,6 +2191,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
+ @override
Expression buildProblemExpression(Builder builder, String name) {
if (builder is AmbiguousBuilder) {
return buildCompileTimeError("Duplicated named: '$name'.");
@@ -2080,6 +2202,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
}
}
+ @override
void handleOperator(Token token) {
debugEvent("Operator");
push(new Operator(token.stringValue)..fileOffset = token.charOffset);
@@ -2089,6 +2212,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
return errors.inputError(uri, charOffset, message);
}
+ @override
void debugEvent(String name) {
// printEvent(name);
}
« no previous file with comments | « pkg/dart_parser/lib/src/listener.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698