parseUnit(test) | |
skipErrorTokens(test) | |
listener: beginCompilationUnit(test) | |
syntheticPreviousToken(test) | |
parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext') | |
parseMetadataStar() | |
listener: beginMetadataStar(test) | |
listener: endMetadataStar(0) | |
parseTopLevelMemberImpl() | |
listener: beginTopLevelMember(test) | |
isReservedKeyword(() | |
parseTopLevelMethod(, null, null, , Instance of 'NoType', null, test, false) | |
listener: beginTopLevelMethod(, null, null) | |
listener: handleNoType() | |
ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false) | |
listener: handleIdentifier(test, topLevelFunctionDeclaration) | |
parseMethodTypeVar(test) | |
listener: handleNoTypeVariables(() | |
parseGetterOrFormalParameters(test, test, false, MemberKind.TopLevelMethod) | |
parseFormalParameters(test, MemberKind.TopLevelMethod) | |
parseFormalParametersRest((, MemberKind.TopLevelMethod) | |
listener: beginFormalParameters((, MemberKind.TopLevelMethod) | |
parseFormalParameter((, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod) | |
parseMetadataStar(() | |
listener: beginMetadataStar(dynamic) | |
listener: endMetadataStar(0) | |
listener: beginFormalParameter(dynamic, MemberKind.TopLevelMethod, null, null, null) | |
listener: handleIdentifier(dynamic, typeReference) | |
listener: handleNoTypeArguments(x) | |
listener: handleType(dynamic, null) | |
ensureIdentifier(dynamic, formalParameterDeclaration) | |
listener: handleIdentifier(x, formalParameterDeclaration) | |
listener: handleFormalParameterWithoutValue()) | |
listener: endFormalParameter(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({) | |
notEofOrValue(}, const) | |
parseStatement({) | |
parseStatementX({) | |
parseExpressionStatementOrConstDeclaration({) | |
parseExpressionStatementOrDeclarationAfterModifiers(const, {, null, const, Instance of 'NoType', false) | |
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) | |
parseUnaryExpression(=, true) | |
parsePrimary(=, expression) | |
parseLiteralInt(=) | |
listener: handleLiteralInt(1) | |
listener: endVariableInitializer(=) | |
listener: endInitializedIdentifier(y) | |
ensureSemicolon(1) | |
listener: endVariablesDeclaration(1, ;) | |
notEofOrValue(}, switch) | |
parseStatement(;) | |
parseStatementX(;) | |
parseSwitchStatement(;) | |
listener: beginSwitchStatement(switch) | |
ensureParenthesizedCondition(switch, allowCase: false) | |
parseExpressionInParenthesisRest((, allowCase: false) | |
parseExpression(() | |
looksLikeOuterPatternEquals(() | |
skipOuterPattern(() | |
skipObjectPatternRest(x) | |
parsePrecedenceExpression((, 1, true) | |
parseUnaryExpression((, true) | |
parsePrimary((, expression) | |
parseSendOrFunctionLiteral((, expression) | |
parseSend((, expression) | |
isNextIdentifier(() | |
ensureIdentifier((, expression) | |
listener: handleIdentifier(x, expression) | |
listener: handleNoTypeArguments()) | |
parseArgumentsOpt(x) | |
listener: handleNoArguments()) | |
listener: handleSend(x, )) | |
ensureCloseParen(x, () | |
listener: handleParenthesizedCondition((, null, null) | |
parseSwitchBlock()) | |
ensureBlock(), null, switch statement) | |
listener: beginSwitchBlock({) | |
notEofOrValue(}, case) | |
peekPastLabels(case) | |
listener: beginCaseExpression(case) | |
parsePattern(case, precedence: 1, isRefutableContext: true) | |
parsePrimaryPattern(case, isRefutableContext: true) | |
parsePrecedenceExpression(case, 17, false) | |
parseUnaryExpression(case, false) | |
parsePrimary(case, expression) | |
parseSendOrFunctionLiteral(case, expression) | |
parseSend(case, expression) | |
isNextIdentifier(case) | |
ensureIdentifier(case, expression) | |
listener: handleIdentifier(y, expression) | |
listener: handleNoTypeArguments(as) | |
parseArgumentsOpt(y) | |
listener: handleNoArguments(as) | |
listener: handleSend(y, as) | |
listener: handleConstantPattern(null) | |
listener: beginAsOperatorType(as) | |
computeTypeAfterIsOrAs(as) | |
listener: handleIdentifier(Object, typeReference) | |
listener: handleNoTypeArguments(:) | |
listener: handleType(Object, null) | |
listener: endAsOperatorType(as) | |
listener: handleCastPattern(as) | |
ensureColon(Object) | |
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, }) | |
notEofOrValue(}, }) | |
listener: endSwitchBlock(1, {, }) | |
listener: endSwitchStatement(switch, }) | |
notEofOrValue(}, }) | |
listener: endBlockFunctionBody(2, {, }) | |
listener: endTopLevelMethod(test, null, }) | |
listener: endTopLevelDeclaration() | |
reportAllErrorTokens(test) | |
listener: endCompilationUnit(1, ) |