parseUnit(typedef)
  skipErrorTokens(typedef)
  listener: beginCompilationUnit(typedef)
  syntheticPreviousToken(typedef)
  parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext')
    parseMetadataStar()
      listener: beginMetadataStar(typedef)
      listener: endMetadataStar(0)
    parseTopLevelKeywordDeclaration(, typedef, null, Instance of 'DirectiveContext')
      parseTypedef(typedef)
        listener: beginUncategorizedTopLevelDeclaration(typedef)
        listener: beginTypedef(typedef)
        ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
          listener: handleIdentifier(F, typedefDeclaration)
        listener: beginTypeVariables(<)
        parseMetadataStar(<)
          listener: beginMetadataStar(Glib)
          listener: endMetadataStar(0)
        ensureIdentifier(<, typeVariableDeclaration)
          listener: handleIdentifier(Glib, typeVariableDeclaration)
        listener: beginTypeVariable(Glib)
        listener: handleTypeVariablesDefined(Glib, 1)
        listener: handleNoType(Glib)
        listener: endTypeVariable(., 0, null, null)
        reportRecoverableError(Glib, Message[ExpectedAfterButGot, Expected '>' after this., null, {string: >}])
          listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected '>' after this., null, {string: >}], Glib, Glib)
        listener: endTypeVariables(<, >)
        reportRecoverableErrorWithToken(, Instance of 'Template<(Token) => Message>')
          listener: handleRecoverableError(Message[ExpectedType, Expected a type, but got ''., null, {lexeme: }], , )
          listener: // WARNING: Reporting at eof for .
        rewriter()
        listener: handleIdentifier(, typeReference)
        listener: handleNoTypeArguments()
        listener: handleType(, null)
        ensureSemicolon()
          reportRecoverableError(=, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], =, =)
          rewriter()
        listener: endTypedef(typedef, =, ;)
  listener: endTopLevelDeclaration()
  reportAllErrorTokens(typedef)
  listener: endCompilationUnit(1, )
