parseUnit(main) | |
skipErrorTokens(main) | |
listener: beginCompilationUnit(main) | |
syntheticPreviousToken(main) | |
parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext') | |
parseMetadataStar() | |
listener: beginMetadataStar(main) | |
listener: endMetadataStar(0) | |
parseTopLevelMemberImpl() | |
listener: beginTopLevelMember(main) | |
isReservedKeyword(() | |
parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false) | |
listener: beginTopLevelMethod(, null, null) | |
listener: handleNoType() | |
ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false) | |
listener: handleIdentifier(main, topLevelFunctionDeclaration) | |
parseMethodTypeVar(main) | |
listener: handleNoTypeVariables(() | |
parseGetterOrFormalParameters(main, main, false, MemberKind.TopLevelMethod) | |
parseFormalParameters(main, 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(}, try) | |
parseStatement({) | |
parseStatementX({) | |
parseTryStatement({) | |
listener: beginTryStatement(try) | |
parseBlock(try, BlockKind(try statement)) | |
ensureBlock(try, null, try statement) | |
listener: beginBlock({, BlockKind(try statement)) | |
notEofOrValue(}, print) | |
parseStatement({) | |
parseStatementX({) | |
parseExpressionStatementOrDeclarationAfterModifiers({, {, null, null, null, null) | |
looksLikeLocalFunction(print) | |
parseExpressionStatement({) | |
parseExpression({) | |
parsePrecedenceExpression({, 1, true) | |
parseUnaryExpression({, true) | |
parsePrimary({, expression) | |
parseSendOrFunctionLiteral({, expression) | |
looksLikeFunctionBody(;) | |
parseSend({, expression) | |
isNextIdentifier({) | |
ensureIdentifier({, expression) | |
listener: handleIdentifier(print, expression) | |
listener: handleNoTypeArguments(() | |
parseArgumentsOpt(print) | |
parseArguments(print) | |
parseArgumentsRest(() | |
listener: beginArguments(() | |
parseExpression(() | |
parsePrecedenceExpression((, 1, true) | |
parseUnaryExpression((, true) | |
parsePrimary((, expression) | |
parseLiteralInt(() | |
listener: handleLiteralInt(0) | |
listener: endArguments(1, (, )) | |
listener: handleSend(print, ;) | |
ensureSemicolon()) | |
listener: handleExpressionStatement(;) | |
notEofOrValue(}, }) | |
listener: endBlock(1, {, }, BlockKind(try statement)) | |
listener: beginCatchClause(on) | |
listener: handleIdentifier(String, typeReference) | |
listener: handleNoTypeArguments({) | |
listener: handleType(String, null) | |
listener: endCatchClause({) | |
parseBlock(String, BlockKind(catch clause)) | |
ensureBlock(String, null, catch clause) | |
listener: beginBlock({, BlockKind(catch clause)) | |
notEofOrValue(}, }) | |
listener: endBlock(0, {, }, BlockKind(catch clause)) | |
listener: handleCatchBlock(on, null, null) | |
listener: beginCatchClause(on) | |
parseRecordType((, on, false) | |
listener: beginRecordType(() | |
parseRecordTypeField((, identifierIsOptional: true) | |
listener: beginRecordTypeEntry() | |
parseMetadataStar(() | |
listener: beginMetadataStar([) | |
listener: endMetadataStar(0) | |
reportRecoverableErrorWithToken([, Instance of 'Template<(Token) => Message>') | |
listener: handleRecoverableError(Message[ExpectedType, Expected a type, but got '['., null, {lexeme: [}], [, [) | |
rewriter() | |
listener: handleIdentifier(, typeReference) | |
listener: handleNoTypeArguments([) | |
listener: handleType(, null) | |
listener: handleNoName([) | |
listener: endRecordTypeEntry() | |
ensureCloseParen(, () | |
reportRecoverableError([, Message[ExpectedButGot, Expected ')' before this., null, {string: )}]) | |
listener: handleRecoverableError(Message[ExpectedButGot, Expected ')' before this., null, {string: )}], [, [) | |
reportRecoverableError(), RecordTypeOnePositionalFieldNoTrailingComma) | |
listener: handleRecoverableError(RecordTypeOnePositionalFieldNoTrailingComma, ), )) | |
listener: endRecordType((, null, 1, false) | |
listener: endCatchClause({) | |
parseBlock(), BlockKind(catch clause)) | |
ensureBlock(), null, catch clause) | |
listener: beginBlock({, BlockKind(catch clause)) | |
notEofOrValue(}, }) | |
listener: endBlock(0, {, }, BlockKind(catch clause)) | |
listener: handleCatchBlock(on, null, null) | |
listener: beginCatchClause(on) | |
parseRecordType((, on, false) | |
listener: beginRecordType(() | |
listener: endRecordType((, null, 0, false) | |
listener: endCatchClause(;) | |
parseBlock(), BlockKind(catch clause)) | |
ensureBlock(), null, catch clause) | |
reportRecoverableError(), Message[ExpectedClassOrMixinBody, A catch clause must have a body, even if it is empty., Try adding an empty body., {string: catch clause}]) | |
listener: handleRecoverableError(Message[ExpectedClassOrMixinBody, A catch clause must have a body, even if it is empty., Try adding an empty body., {string: catch clause}], ), )) | |
insertBlock()) | |
rewriter() | |
rewriter() | |
listener: beginBlock({, BlockKind(catch clause)) | |
notEofOrValue(}, }) | |
listener: endBlock(0, {, }, BlockKind(catch clause)) | |
listener: handleCatchBlock(on, null, null) | |
listener: endTryStatement(3, try, null) | |
notEofOrValue(}, ;) | |
parseStatement(}) | |
parseStatementX(}) | |
parseEmptyStatement(}) | |
listener: handleEmptyStatement(;) | |
notEofOrValue(}, }) | |
listener: endBlockFunctionBody(2, {, }) | |
listener: endTopLevelMethod(main, null, }) | |
listener: endTopLevelDeclaration() | |
reportAllErrorTokens(main) | |
listener: endCompilationUnit(1, ) |