parseUnit(void) skipErrorTokens(void) listener: beginCompilationUnit(void) syntheticPreviousToken(void) parseTopLevelDeclarationImpl(, DirectiveContext(DirectiveState.Unknown)) parseMetadataStar() listener: beginMetadataStar(void) listener: endMetadataStar(0) parseTopLevelMemberImpl() listener: beginTopLevelMember(void) parseTopLevelMethod(, null, null, , VoidType(), null, f, false) listener: beginTopLevelMethod(, null, null) listener: handleVoidKeyword(void) ensureIdentifierPotentiallyRecovered(void, 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) parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod) parseMetadataStar(() listener: beginMetadataStar(x) listener: endMetadataStar(0) listener: beginFormalParameter(x, MemberKind.TopLevelMethod, null, null, null) listener: handleNoType(() ensureIdentifier((, formalParameterDeclaration) listener: handleIdentifier(x, formalParameterDeclaration) listener: handleFormalParameterWithoutValue()) listener: endFormalParameter(null, null, null, null, x, null, null, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod) listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod) parseAsyncModifierOpt()) listener: handleAsyncModifier(null, null) inPlainSync() parseFunctionBody(), false, false) listener: beginBlockFunctionBody({) notEofOrType(CLOSE_CURLY_BRACKET, const) parseStatement({) parseStatementX({) parseExpressionStatementOrConstDeclaration({) parseExpressionStatementOrDeclarationAfterModifiers(const, {, null, const, NoType(), null) looksLikeLocalFunction(y) listener: beginMetadataStar(const) listener: endMetadataStar(0) listener: handleNoType(const) listener: beginVariablesDeclaration(y, null, const) parseVariablesDeclarationRest(const, true) parseOptionallyInitializedIdentifier(const) ensureIdentifier(const, localVariableDeclaration) listener: handleIdentifier(y, localVariableDeclaration) listener: beginInitializedIdentifier(y) parseVariableInitializerOpt(y) listener: beginVariableInitializer(=) parseExpression(=) looksLikeOuterPatternEquals(=) skipOuterPattern(=) parsePrecedenceExpression(=, 1, true, ConstantPatternContext.none) parseUnaryExpression(=, true, ConstantPatternContext.none) parsePrimary(=, expression, ConstantPatternContext.none) parseLiteralInt(=) listener: handleLiteralInt(1) listener: endVariableInitializer(=) listener: endInitializedIdentifier(y) ensureSemicolon(1) listener: endVariablesDeclaration(1, ;) notEofOrType(CLOSE_CURLY_BRACKET, switch) parseStatement(;) parseStatementX(;) parseSwitchStatement(;) listener: beginSwitchStatement(switch) ensureParenthesizedCondition(switch, allowCase: false) parseExpressionInParenthesisRest((, allowCase: false) parseExpression(() looksLikeOuterPatternEquals(() skipOuterPattern(() skipObjectPatternRest(x) parsePrecedenceExpression((, 1, true, ConstantPatternContext.none) parseUnaryExpression((, true, ConstantPatternContext.none) parsePrimary((, expression, ConstantPatternContext.none) parseSendOrFunctionLiteral((, expression, ConstantPatternContext.none) parseSend((, expression, ConstantPatternContext.none) ensureIdentifier((, expression) listener: handleIdentifier(x, expression) listener: handleNoTypeArguments()) parseArgumentsOpt(x) listener: handleNoArguments()) listener: handleSend(x, x) ensureCloseParen(x, () listener: handleParenthesizedCondition((, null, null) parseSwitchBlock()) ensureBlock(), BlockKind(switch statement)) listener: beginSwitchBlock({) notEofOrType(CLOSE_CURLY_BRACKET, case) peekPastLabels(case) listener: beginCaseExpression(case) parsePattern(case, PatternContext.matching, precedence: 1) listener: beginPattern(case) parsePrimaryPattern(case, PatternContext.matching) listener: beginConstantPattern(null) parsePrecedenceExpression(case, 7, false, ConstantPatternContext.implicit) parseUnaryExpression(case, false, ConstantPatternContext.implicit) parsePrimary(case, expression, ConstantPatternContext.implicit) parseSendOrFunctionLiteral(case, expression, ConstantPatternContext.implicit) parseSend(case, expression, ConstantPatternContext.implicit) ensureIdentifier(case, expression) listener: handleIdentifier(y, expression) listener: handleNoTypeArguments(?) parseArgumentsOpt(y) listener: handleNoArguments(?) listener: handleSend(y, y) listener: endConstantPattern(null) listener: handleNullCheckPattern(?) reportRecoverableErrorWithEnd(y, ?, InvalidInsideUnaryPattern) listener: handleRecoverableError(InvalidInsideUnaryPattern, y, ?) listener: handleNullAssertPattern(!) listener: endPattern(!) listener: handleSwitchCaseNoWhenClause(!) ensureColon(!) listener: endCaseExpression(case, null, :) peekPastLabels(break) parseStatementsInSwitchCase(:, break, case, 0, 1, null, null) listener: beginSwitchCase(0, 1, case) parseStatement(:) parseStatementX(:) parseBreakStatement(:) isBreakAllowed() ensureSemicolon(break) listener: handleBreakStatement(false, break, ;) peekPastLabels(}) listener: endSwitchCase(0, 1, null, null, 1, case, ;) notEofOrType(CLOSE_CURLY_BRACKET, }) listener: endSwitchBlock(1, {, }) listener: endSwitchStatement(switch, }) notEofOrType(CLOSE_CURLY_BRACKET, }) listener: endBlockFunctionBody(2, {, }) listener: endTopLevelMethod(void, null, }) listener: endTopLevelDeclaration(}) reportAllErrorTokens(void) listener: endCompilationUnit(1, )