parseUnit(f) skipErrorTokens(f) listener: beginCompilationUnit(f) syntheticPreviousToken(f) parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext') parseMetadataStar() listener: beginMetadataStar(f) listener: endMetadataStar(0) parseTopLevelMemberImpl() listener: beginTopLevelMember(f) isReservedKeyword(() parseTopLevelMethod(, null, , Instance of 'NoType', null, f, false) listener: beginTopLevelMethod(, null) listener: handleNoType() ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false) listener: handleIdentifier(f, topLevelFunctionDeclaration) parseMethodTypeVar(f) listener: handleNoTypeVariables(() parseGetterOrFormalParameters(f, f, false, MemberKind.TopLevelMethod) parseFormalParameters(f, MemberKind.TopLevelMethod) parseFormalParametersRest((, MemberKind.TopLevelMethod) listener: beginFormalParameters((, MemberKind.TopLevelMethod) listener: endFormalParameters(0, (, ), MemberKind.TopLevelMethod) parseAsyncModifierOpt()) listener: handleAsyncModifier(null, null) inPlainSync() parseFunctionBody(), false, false) listener: beginBlockFunctionBody({) notEofOrValue(}, foo) parseStatement({) parseStatementX({) parseExpressionStatementOrDeclarationAfterModifiers({, {, null, null, null, false) looksLikeLocalFunction(foo) parseExpressionStatement({) parseExpression({) parsePrecedenceExpression({, 1, true) parseUnaryExpression({, true) parsePrimary({, expression) parseSendOrFunctionLiteral({, expression) parseSend({, expression) ensureIdentifier({, expression) listener: handleIdentifier(foo, expression) listener: handleNoTypeArguments(.) parseArgumentsOpt(foo) listener: handleNoArguments(.) listener: handleSend(foo, .) parsePrimary(., expressionContinuation) parseSendOrFunctionLiteral(., expressionContinuation) parseSend(., expressionContinuation) ensureIdentifier(., expressionContinuation) listener: handleIdentifier(bar, expressionContinuation) listener: handleNoTypeArguments(!) parseArgumentsOpt(bar) listener: handleNoArguments(!) listener: handleSend(bar, !) listener: handleEndingBinaryExpression(.) listener: handleNonNullAssertExpression(!) parseArgumentOrIndexStar(!, Instance of 'NoTypeParamOrArg', false) parseExpression([) parsePrecedenceExpression([, 1, true) parseUnaryExpression([, true) parsePrimary([, expression) parseSendOrFunctionLiteral([, expression) parseSend([, expression) ensureIdentifier([, expression) listener: handleIdentifier(arg, expression) listener: handleNoTypeArguments(]) parseArgumentsOpt(arg) listener: handleNoArguments(]) listener: handleSend(arg, ]) listener: handleIndexedExpression(null, [, ]) listener: handleNonNullAssertExpression(!) parseArgumentOrIndexStar(!, Instance of 'NoTypeParamOrArg', false) parseExpression([) parsePrecedenceExpression([, 1, true) parseUnaryExpression([, true) parsePrimary([, expression) parseSendOrFunctionLiteral([, expression) parseSend([, expression) ensureIdentifier([, expression) listener: handleIdentifier(arg2, expression) listener: handleNoTypeArguments(]) parseArgumentsOpt(arg2) listener: handleNoArguments(]) listener: handleSend(arg2, ]) listener: handleIndexedExpression(null, [, ]) ensureSemicolon(]) listener: handleExpressionStatement(;) notEofOrValue(}, }) listener: endBlockFunctionBody(1, {, }) listener: endTopLevelMethod(f, null, }) listener: endTopLevelDeclaration() reportAllErrorTokens(f) listener: endCompilationUnit(1, )