| beginCompilationUnit(main) | 
 |   beginMetadataStar(main) | 
 |   endMetadataStar(0) | 
 |   beginTopLevelMember(main) | 
 |     beginTopLevelMethod(, null) | 
 |       handleNoType() | 
 |       handleIdentifier(main, topLevelFunctionDeclaration) | 
 |       handleNoTypeVariables(() | 
 |       beginFormalParameters((, MemberKind.TopLevelMethod) | 
 |       endFormalParameters(0, (, ), MemberKind.TopLevelMethod) | 
 |       handleAsyncModifier(null, null) | 
 |       beginBlockFunctionBody({) | 
 |         beginSwitchStatement(switch) | 
 |           handleIdentifier(a, expression) | 
 |           handleNoTypeArguments()) | 
 |           handleNoArguments()) | 
 |           handleSend(a, )) | 
 |           handleParenthesizedCondition(() | 
 |           beginSwitchBlock({) | 
 |             beginCaseExpression(case) | 
 |               handleIdentifier(x, expression) | 
 |               handleNoTypeArguments(?) | 
 |               handleNoArguments(?) | 
 |               handleSend(x, ?) | 
 |               handleLiteralInt(4) | 
 |               handleIndexedExpression(?, [, ]) | 
 |             endCaseExpression(:) | 
 |             handleCaseMatch(case, :) | 
 |             beginSwitchCase(0, 1, case) | 
 |               beginBlock({, BlockKind(statement)) | 
 |                 beginBlock({, BlockKind(statement)) | 
 |                   beginBlock({, BlockKind(statement)) | 
 |                     handleLiteralInt(2) | 
 |                     handleExpressionStatement(;) | 
 |                   endBlock(1, {, }, BlockKind(statement)) | 
 |                 endBlock(1, {, }, BlockKind(statement)) | 
 |               endBlock(1, {, }, BlockKind(statement)) | 
 |               handleEmptyStatement(;) | 
 |             endSwitchCase(0, 1, null, null, 2, case, }) | 
 |           endSwitchBlock(1, {, }) | 
 |         endSwitchStatement(switch, }) | 
 |       endBlockFunctionBody(1, {, }) | 
 |     endTopLevelMethod(main, null, }) | 
 |   endTopLevelDeclaration() | 
 | endCompilationUnit(1, ) |