| beginCompilationUnit(class) | 
 |   beginMetadataStar(class) | 
 |   endMetadataStar(0) | 
 |   beginClassOrMixinOrNamedMixinApplicationPrelude(class) | 
 |     handleIdentifier(A, classOrMixinDeclaration) | 
 |     handleNoTypeVariables({) | 
 |     beginClassDeclaration(class, null, null, null, null, null, null, null, null, A) | 
 |       handleNoType(A) | 
 |       handleClassExtends(null, 1) | 
 |       handleClassNoWithClause() | 
 |       handleImplements(null, 0) | 
 |       handleClassHeader(class, class, null) | 
 |       beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {) | 
 |       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, }) | 
 |     endClassDeclaration(class, }) | 
 |   endTopLevelDeclaration(}) | 
 |   beginMetadataStar(class) | 
 |   endMetadataStar(0) | 
 |   beginClassOrMixinOrNamedMixinApplicationPrelude(class) | 
 |     handleIdentifier(C, classOrMixinDeclaration) | 
 |     handleNoTypeVariables(extends) | 
 |     beginClassDeclaration(class, null, null, null, null, null, null, null, null, C) | 
 |       handleIdentifier(A, typeReference) | 
 |       handleNoTypeArguments({) | 
 |       handleType(A, null) | 
 |       handleClassExtends(extends, 1) | 
 |       handleClassNoWithClause() | 
 |       handleImplements(null, 0) | 
 |       handleClassHeader(class, class, null) | 
 |       beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {) | 
 |       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, }) | 
 |     endClassDeclaration(class, }) | 
 |   endTopLevelDeclaration(}) | 
 |   beginMetadataStar(extension) | 
 |   endMetadataStar(0) | 
 |   beginExtensionDeclarationPrelude(extension) | 
 |     handleNoTypeVariables(on) | 
 |     beginExtensionDeclaration(null, extension, null) | 
 |       handleIdentifier(C, typeReference) | 
 |       handleNoTypeArguments({) | 
 |       handleType(C, null) | 
 |       beginClassOrMixinOrExtensionBody(DeclarationKind.Extension, {) | 
 |         beginMetadataStar(addChild) | 
 |         endMetadataStar(0) | 
 |         beginMember() | 
 |           beginMethod(DeclarationKind.Extension, null, null, null, null, null, null, addChild) | 
 |             handleNoType({) | 
 |             handleIdentifier(addChild, methodDeclaration) | 
 |             handleNoTypeVariables(() | 
 |             beginFormalParameters((, MemberKind.ExtensionNonStaticMethod) | 
 |               beginMetadataStar(A) | 
 |               endMetadataStar(0) | 
 |               beginFormalParameter(A, MemberKind.ExtensionNonStaticMethod, null, null, null) | 
 |                 handleIdentifier(A, typeReference) | 
 |                 handleNoTypeArguments(child) | 
 |                 handleType(A, null) | 
 |                 handleIdentifier(child, formalParameterDeclaration) | 
 |                 handleFormalParameterWithoutValue()) | 
 |               endFormalParameter(null, null, null, child, null, null, FormalParameterKind.requiredPositional, MemberKind.ExtensionNonStaticMethod) | 
 |             endFormalParameters(1, (, ), MemberKind.ExtensionNonStaticMethod) | 
 |             handleNoInitializers() | 
 |             handleAsyncModifier(null, null) | 
 |             beginBlockFunctionBody({) | 
 |             endBlockFunctionBody(0, {, }) | 
 |           endExtensionMethod(null, addChild, (, null, }) | 
 |         endMember() | 
 |       endClassOrMixinOrExtensionBody(DeclarationKind.Extension, 1, {, }) | 
 |     endExtensionDeclaration(extension, extension, on, }) | 
 |   endTopLevelDeclaration(}) | 
 | endCompilationUnit(3, ) |