| beginCompilationUnit(f) | 
 |   beginMetadataStar(f) | 
 |   endMetadataStar(0) | 
 |   beginTopLevelMember(f) | 
 |     beginTopLevelMethod(, null) | 
 |       handleNoType() | 
 |       handleIdentifier(f, topLevelFunctionDeclaration) | 
 |       handleNoTypeVariables(() | 
 |       beginFormalParameters((, MemberKind.TopLevelMethod) | 
 |       endFormalParameters(0, (, ), MemberKind.TopLevelMethod) | 
 |       handleAsyncModifier(null, null) | 
 |       beginBlockFunctionBody({) | 
 |         handleIdentifier(foo, expression) | 
 |         handleNoTypeArguments(!) | 
 |         handleNoArguments(!) | 
 |         handleSend(foo, !) | 
 |         handleNonNullAssertExpression(!) | 
 |         handleIdentifier(bar, expressionContinuation) | 
 |         handleNoTypeArguments(!) | 
 |         handleNoArguments(!) | 
 |         handleSend(bar, !) | 
 |         handleEndingBinaryExpression(.) | 
 |         handleNonNullAssertExpression(!) | 
 |         handleIdentifier(arg, expression) | 
 |         handleNoTypeArguments(]) | 
 |         handleNoArguments(]) | 
 |         handleSend(arg, ]) | 
 |         handleIndexedExpression(null, [, ]) | 
 |         handleNonNullAssertExpression(!) | 
 |         handleIdentifier(arg2, expression) | 
 |         handleNoTypeArguments(]) | 
 |         handleNoArguments(]) | 
 |         handleSend(arg2, ]) | 
 |         handleIndexedExpression(null, [, ]) | 
 |         handleExpressionStatement(;) | 
 |       endBlockFunctionBody(1, {, }) | 
 |     endTopLevelMethod(f, null, }) | 
 |   endTopLevelDeclaration() | 
 | endCompilationUnit(1, ) |