parseUnit(EncodingErrorToken())
  skipErrorTokens(EncodingErrorToken())
  listener: beginCompilationUnit(/)
  syntheticPreviousToken(/)
  parseTopLevelDeclarationImpl(AsciiControlCharacterToken(0), Instance of 'DirectiveContext')
    parseMetadataStar(AsciiControlCharacterToken(0))
      listener: beginMetadataStar(/)
      listener: endMetadataStar(0)
    listener: beginTopLevelMember(/)
    parseInvalidTopLevelDeclaration(AsciiControlCharacterToken(0))
      reportRecoverableErrorWithToken(/, Instance of 'Template<(Token) => Message>')
        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '/'., null, {lexeme: /}], /, /)
      listener: handleInvalidTopLevelDeclaration(/)
  listener: endTopLevelDeclaration(/)
  parseTopLevelDeclarationImpl(/, Instance of 'DirectiveContext')
    parseMetadataStar(/)
      listener: beginMetadataStar(/)
      listener: endMetadataStar(0)
    listener: beginTopLevelMember(/)
    parseInvalidTopLevelDeclaration(/)
      reportRecoverableErrorWithToken(/, Instance of 'Template<(Token) => Message>')
        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '/'., null, {lexeme: /}], /, /)
      listener: handleInvalidTopLevelDeclaration(/)
  listener: endTopLevelDeclaration(C)
  parseTopLevelDeclarationImpl(/, Instance of 'DirectiveContext')
    parseMetadataStar(/)
      listener: beginMetadataStar(C)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(/)
      listener: beginTopLevelMember(C)
      parseFields(/, null, null, null, null, null, null, /, Instance of 'SimpleType', o, DeclarationKind.TopLevel, null, false)
        listener: beginFields(/)
        listener: handleIdentifier(C, typeReference)
        listener: handleNoTypeArguments(o)
        listener: handleType(C, null)
        ensureIdentifierPotentiallyRecovered(C, topLevelVariableDeclaration, false)
          listener: handleIdentifier(o, topLevelVariableDeclaration)
        parseFieldInitializerOpt(o, o, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(p)
        ensureSemicolon(o)
          reportRecoverableError(o, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], o, o)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, C, ;)
  listener: endTopLevelDeclaration(p)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(p)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(p)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', y, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(p, typeReference)
        listener: handleNoTypeArguments(y)
        listener: handleType(p, null)
        ensureIdentifierPotentiallyRecovered(p, topLevelVariableDeclaration, false)
          listener: handleIdentifier(y, topLevelVariableDeclaration)
        parseFieldInitializerOpt(y, y, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(r)
        ensureSemicolon(y)
          reportRecoverableError(y, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], y, y)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, p, ;)
  listener: endTopLevelDeclaration(r)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(r)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(r)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', i, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(r, typeReference)
        listener: handleNoTypeArguments(i)
        listener: handleType(r, null)
        ensureIdentifierPotentiallyRecovered(r, topLevelVariableDeclaration, false)
          listener: handleIdentifier(i, topLevelVariableDeclaration)
        parseFieldInitializerOpt(i, i, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(g)
        ensureSemicolon(i)
          reportRecoverableError(i, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], i, i)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, r, ;)
  listener: endTopLevelDeclaration(g)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(g)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(g)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', h, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(g, typeReference)
        listener: handleNoTypeArguments(h)
        listener: handleType(g, null)
        ensureIdentifierPotentiallyRecovered(g, topLevelVariableDeclaration, false)
          listener: handleIdentifier(h, topLevelVariableDeclaration)
        parseFieldInitializerOpt(h, h, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(t)
        ensureSemicolon(h)
          reportRecoverableError(h, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], h, h)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, g, ;)
  listener: endTopLevelDeclaration(t)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(t)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(t)
      isReservedKeyword(()
      parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, t, false)
        listener: beginTopLevelMethod(;, null)
        listener: handleNoType(;)
        ensureIdentifierPotentiallyRecovered(;, topLevelFunctionDeclaration, false)
          listener: handleIdentifier(t, topLevelFunctionDeclaration)
        parseMethodTypeVar(t)
          listener: handleNoTypeVariables(()
        parseGetterOrFormalParameters(t, t, false, MemberKind.TopLevelMethod)
          parseFormalParameters(t, MemberKind.TopLevelMethod)
            parseFormalParametersRest((, MemberKind.TopLevelMethod)
              listener: beginFormalParameters((, MemberKind.TopLevelMethod)
              parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
                parseMetadataStar(()
                  listener: beginMetadataStar(c)
                  listener: endMetadataStar(0)
                listener: beginFormalParameter(c, MemberKind.TopLevelMethod, null, null, null)
                listener: handleNoType(()
                ensureIdentifier((, formalParameterDeclaration)
                  listener: handleIdentifier(c, formalParameterDeclaration)
                listener: handleFormalParameterWithoutValue())
                listener: endFormalParameter(null, null, c, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
        parseAsyncModifierOpt())
          listener: handleAsyncModifier(null, null)
          inPlainSync()
        parseFunctionBody(), false, false)
          ensureBlock(), Instance of 'Template<(Token) => Message>', null)
            reportRecoverableError(2, Message[ExpectedFunctionBody, Expected a function body, but got '2'., null, {lexeme: 2}])
              listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '2'., null, {lexeme: 2}], 2, 2)
            insertBlock())
              rewriter()
              rewriter()
          listener: handleInvalidFunctionBody({)
        listener: endTopLevelMethod(t, null, })
  listener: endTopLevelDeclaration(2)
  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
    parseMetadataStar(})
      listener: beginMetadataStar(2)
      listener: endMetadataStar(0)
    listener: beginTopLevelMember(2)
    parseInvalidTopLevelDeclaration(})
      reportRecoverableErrorWithToken(2, Instance of 'Template<(Token) => Message>')
        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '2'., null, {lexeme: 2}], 2, 2)
      listener: handleInvalidTopLevelDeclaration(2)
  listener: endTopLevelDeclaration(0)
  parseTopLevelDeclarationImpl(2, Instance of 'DirectiveContext')
    parseMetadataStar(2)
      listener: beginMetadataStar(0)
      listener: endMetadataStar(0)
    listener: beginTopLevelMember(0)
    parseInvalidTopLevelDeclaration(2)
      reportRecoverableErrorWithToken(0, Instance of 'Template<(Token) => Message>')
        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '0'., null, {lexeme: 0}], 0, 0)
      listener: handleInvalidTopLevelDeclaration(0)
  listener: endTopLevelDeclaration(2)
  parseTopLevelDeclarationImpl(0, Instance of 'DirectiveContext')
    parseMetadataStar(0)
      listener: beginMetadataStar(2)
      listener: endMetadataStar(0)
    listener: beginTopLevelMember(2)
    parseInvalidTopLevelDeclaration(0)
      reportRecoverableErrorWithToken(2, Instance of 'Template<(Token) => Message>')
        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '2'., null, {lexeme: 2}], 2, 2)
      listener: handleInvalidTopLevelDeclaration(2)
  listener: endTopLevelDeclaration(0)
  parseTopLevelDeclarationImpl(2, Instance of 'DirectiveContext')
    parseMetadataStar(2)
      listener: beginMetadataStar(0)
      listener: endMetadataStar(0)
    listener: beginTopLevelMember(0)
    parseInvalidTopLevelDeclaration(2)
      reportRecoverableErrorWithToken(0, Instance of 'Template<(Token) => Message>')
        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '0'., null, {lexeme: 0}], 0, 0)
      listener: handleInvalidTopLevelDeclaration(0)
  listener: endTopLevelDeclaration(,)
  parseTopLevelDeclarationImpl(0, Instance of 'DirectiveContext')
    parseMetadataStar(0)
      listener: beginMetadataStar(,)
      listener: endMetadataStar(0)
    listener: beginTopLevelMember(,)
    parseInvalidTopLevelDeclaration(0)
      reportRecoverableErrorWithToken(,, Instance of 'Template<(Token) => Message>')
        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got ','., null, {lexeme: ,}], ,, ,)
      listener: handleInvalidTopLevelDeclaration(,)
  listener: endTopLevelDeclaration(t)
  parseTopLevelDeclarationImpl(,, Instance of 'DirectiveContext')
    parseMetadataStar(,)
      listener: beginMetadataStar(t)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(,)
      listener: beginTopLevelMember(t)
      parseFields(,, null, null, null, null, null, null, ,, Instance of 'SimpleType', h, DeclarationKind.TopLevel, null, false)
        listener: beginFields(,)
        listener: handleIdentifier(t, typeReference)
        listener: handleNoTypeArguments(h)
        listener: handleType(t, null)
        ensureIdentifierPotentiallyRecovered(t, topLevelVariableDeclaration, false)
          listener: handleIdentifier(h, topLevelVariableDeclaration)
        parseFieldInitializerOpt(h, h, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(e)
        ensureSemicolon(h)
          reportRecoverableError(h, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], h, h)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, t, ;)
  listener: endTopLevelDeclaration(e)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(e)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(e)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', D, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(e, typeReference)
        listener: handleNoTypeArguments(D)
        listener: handleType(e, null)
        ensureIdentifierPotentiallyRecovered(e, topLevelVariableDeclaration, false)
          listener: handleIdentifier(D, topLevelVariableDeclaration)
        parseFieldInitializerOpt(D, D, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(a)
        ensureSemicolon(D)
          reportRecoverableError(D, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], D, D)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
  listener: endTopLevelDeclaration(a)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(a)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(a)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(a, typeReference)
        listener: handleNoTypeArguments(r)
        listener: handleType(a, null)
        ensureIdentifierPotentiallyRecovered(a, topLevelVariableDeclaration, false)
          listener: handleIdentifier(r, topLevelVariableDeclaration)
        parseFieldInitializerOpt(r, r, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(t)
        ensureSemicolon(r)
          reportRecoverableError(r, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], r, r)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, a, ;)
  listener: endTopLevelDeclaration(t)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(t)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(t)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', p, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(t, typeReference)
        listener: handleNoTypeArguments(p)
        listener: handleType(t, null)
        ensureIdentifierPotentiallyRecovered(t, topLevelVariableDeclaration, false)
          listener: handleIdentifier(p, topLevelVariableDeclaration)
        parseFieldInitializerOpt(p, p, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(r)
        ensureSemicolon(p)
          reportRecoverableError(p, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], p, p)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, t, ;)
  listener: endTopLevelDeclaration(r)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(r)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(r)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', o, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(r, typeReference)
        listener: handleNoTypeArguments(o)
        listener: handleType(r, null)
        ensureIdentifierPotentiallyRecovered(r, topLevelVariableDeclaration, false)
          listener: handleIdentifier(o, topLevelVariableDeclaration)
        parseFieldInitializerOpt(o, o, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(j)
        ensureSemicolon(o)
          reportRecoverableError(o, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], o, o)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, r, ;)
  listener: endTopLevelDeclaration(j)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(j)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(j)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(j, typeReference)
        listener: handleNoTypeArguments(e)
        listener: handleType(j, null)
        ensureIdentifierPotentiallyRecovered(j, topLevelVariableDeclaration, false)
          listener: handleIdentifier(e, topLevelVariableDeclaration)
        parseFieldInitializerOpt(e, e, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(c)
        ensureSemicolon(e)
          reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], e, e)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, j, ;)
  listener: endTopLevelDeclaration(c)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(c)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(c)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', t, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(c, typeReference)
        listener: handleNoTypeArguments(t)
        listener: handleType(c, null)
        ensureIdentifierPotentiallyRecovered(c, topLevelVariableDeclaration, false)
          listener: handleIdentifier(t, topLevelVariableDeclaration)
        parseFieldInitializerOpt(t, t, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(a)
        ensureSemicolon(t)
          reportRecoverableError(t, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], t, t)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, c, ;)
  listener: endTopLevelDeclaration(a)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(a)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(a)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', u, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(a, typeReference)
        listener: handleNoTypeArguments(u)
        listener: handleType(a, null)
        ensureIdentifierPotentiallyRecovered(a, topLevelVariableDeclaration, false)
          listener: handleIdentifier(u, topLevelVariableDeclaration)
        parseFieldInitializerOpt(u, u, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(t)
        ensureSemicolon(u)
          reportRecoverableError(u, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], u, u)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, a, ;)
  listener: endTopLevelDeclaration(t)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(t)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(t)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', h, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(t, typeReference)
        listener: handleNoTypeArguments(h)
        listener: handleType(t, null)
        ensureIdentifierPotentiallyRecovered(t, topLevelVariableDeclaration, false)
          listener: handleIdentifier(h, topLevelVariableDeclaration)
        parseFieldInitializerOpt(h, h, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(o)
        ensureSemicolon(h)
          reportRecoverableError(h, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], h, h)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, t, ;)
  listener: endTopLevelDeclaration(o)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(o)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(o)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(o, typeReference)
        listener: handleNoTypeArguments(r)
        listener: handleType(o, null)
        ensureIdentifierPotentiallyRecovered(o, topLevelVariableDeclaration, false)
          listener: handleIdentifier(r, topLevelVariableDeclaration)
        parseFieldInitializerOpt(r, r, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(s)
        ensureSemicolon(r)
          reportRecoverableError(r, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], r, r)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, o, ;)
  listener: endTopLevelDeclaration(s)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(s)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(s)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'PrefixedType', l, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(s, prefixedTypeReference)
        listener: handleIdentifier(P, typeReferenceContinuation)
        listener: handleQualified(.)
        listener: handleNoTypeArguments(l)
        listener: handleType(s, null)
        ensureIdentifierPotentiallyRecovered(P, topLevelVariableDeclaration, false)
          listener: handleIdentifier(l, topLevelVariableDeclaration)
        parseFieldInitializerOpt(l, l, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(e)
        ensureSemicolon(l)
          reportRecoverableError(l, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], l, l)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, s, ;)
  listener: endTopLevelDeclaration(e)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(e)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(e)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', a, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(e, typeReference)
        listener: handleNoTypeArguments(a)
        listener: handleType(e, null)
        ensureIdentifierPotentiallyRecovered(e, topLevelVariableDeclaration, false)
          listener: handleIdentifier(a, topLevelVariableDeclaration)
        parseFieldInitializerOpt(a, a, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(s)
        ensureSemicolon(a)
          reportRecoverableError(a, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], a, a)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
  listener: endTopLevelDeclaration(s)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(s)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(s)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(s, typeReference)
        listener: handleNoTypeArguments(e)
        listener: handleType(s, null)
        ensureIdentifierPotentiallyRecovered(s, topLevelVariableDeclaration, false)
          listener: handleIdentifier(e, topLevelVariableDeclaration)
        parseFieldInitializerOpt(e, e, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(s)
        ensureSemicolon(e)
          reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], e, e)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, s, ;)
  listener: endTopLevelDeclaration(s)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(s)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(s)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(s, typeReference)
        listener: handleNoTypeArguments(e)
        listener: handleType(s, null)
        ensureIdentifierPotentiallyRecovered(s, topLevelVariableDeclaration, false)
          listener: handleIdentifier(e, topLevelVariableDeclaration)
        parseFieldInitializerOpt(e, e, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(e)
        ensureSemicolon(e)
          reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], e, e)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, s, ;)
  listener: endTopLevelDeclaration(e)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(e)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(e)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', t, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(e, typeReference)
        listener: handleNoTypeArguments(t)
        listener: handleType(e, null)
        ensureIdentifierPotentiallyRecovered(e, topLevelVariableDeclaration, false)
          listener: handleIdentifier(t, topLevelVariableDeclaration)
        parseFieldInitializerOpt(t, t, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(h)
        ensureSemicolon(t)
          reportRecoverableError(t, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], t, t)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
  listener: endTopLevelDeclaration(h)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(h)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(h)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(h, typeReference)
        listener: handleNoTypeArguments(e)
        listener: handleType(h, null)
        ensureIdentifierPotentiallyRecovered(h, topLevelVariableDeclaration, false)
          listener: handleIdentifier(e, topLevelVariableDeclaration)
        parseFieldInitializerOpt(e, e, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(A)
        ensureSemicolon(e)
          reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], e, e)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, h, ;)
  listener: endTopLevelDeclaration(A)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(A)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(A)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', U, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(A, typeReference)
        listener: handleNoTypeArguments(U)
        listener: handleType(A, null)
        ensureIdentifierPotentiallyRecovered(A, topLevelVariableDeclaration, false)
          listener: handleIdentifier(U, topLevelVariableDeclaration)
        parseFieldInitializerOpt(U, U, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(T)
        ensureSemicolon(U)
          reportRecoverableError(U, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], U, U)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, A, ;)
  listener: endTopLevelDeclaration(T)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(T)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(T)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', H, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(T, typeReference)
        listener: handleNoTypeArguments(H)
        listener: handleType(T, null)
        ensureIdentifierPotentiallyRecovered(T, topLevelVariableDeclaration, false)
          listener: handleIdentifier(H, topLevelVariableDeclaration)
        parseFieldInitializerOpt(H, H, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(O)
        ensureSemicolon(H)
          reportRecoverableError(H, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], H, H)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, T, ;)
  listener: endTopLevelDeclaration(O)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(O)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(O)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', R, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(O, typeReference)
        listener: handleNoTypeArguments(R)
        listener: handleType(O, null)
        ensureIdentifierPotentiallyRecovered(O, topLevelVariableDeclaration, false)
          listener: handleIdentifier(R, topLevelVariableDeclaration)
        parseFieldInitializerOpt(R, R, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(S)
        ensureSemicolon(R)
          reportRecoverableError(R, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], R, R)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, O, ;)
  listener: endTopLevelDeclaration(S)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(S)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(S)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', f, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(S, typeReference)
        listener: handleNoTypeArguments(f)
        listener: handleType(S, null)
        ensureIdentifierPotentiallyRecovered(S, topLevelVariableDeclaration, false)
          listener: handleIdentifier(f, topLevelVariableDeclaration)
        parseFieldInitializerOpt(f, f, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(i)
        ensureSemicolon(f)
          reportRecoverableError(f, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], f, f)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, S, ;)
  listener: endTopLevelDeclaration(i)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(i)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(i)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', l, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(i, typeReference)
        listener: handleNoTypeArguments(l)
        listener: handleType(i, null)
        ensureIdentifierPotentiallyRecovered(i, topLevelVariableDeclaration, false)
          listener: handleIdentifier(l, topLevelVariableDeclaration)
        parseFieldInitializerOpt(l, l, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(e)
        ensureSemicolon(l)
          reportRecoverableError(l, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], l, l)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, i, ;)
  listener: endTopLevelDeclaration(e)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(e)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(e)
      isReservedKeyword(/)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'NoType', e, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        reportRecoverableError(e, MissingConstFinalVarOrType)
          listener: handleRecoverableError(MissingConstFinalVarOrType, e, e)
        listener: handleNoType(;)
        ensureIdentifierPotentiallyRecovered(;, topLevelVariableDeclaration, false)
          listener: handleIdentifier(e, topLevelVariableDeclaration)
        parseFieldInitializerOpt(e, e, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(/)
        ensureSemicolon(e)
          reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], e, e)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
  listener: endTopLevelDeclaration(/)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(/)
      listener: endMetadataStar(0)
    listener: beginTopLevelMember(/)
    parseInvalidTopLevelDeclaration(;)
      reportRecoverableErrorWithToken(/, Instance of 'Template<(Token) => Message>')
        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '/'., null, {lexeme: /}], /, /)
      listener: handleInvalidTopLevelDeclaration(/)
  listener: endTopLevelDeclaration(/)
  parseTopLevelDeclarationImpl(/, Instance of 'DirectiveContext')
    parseMetadataStar(/)
      listener: beginMetadataStar(/)
      listener: endMetadataStar(0)
    listener: beginTopLevelMember(/)
    parseInvalidTopLevelDeclaration(/)
      reportRecoverableErrorWithToken(/, Instance of 'Template<(Token) => Message>')
        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '/'., null, {lexeme: /}], /, /)
      listener: handleInvalidTopLevelDeclaration(/)
  listener: endTopLevelDeclaration(f)
  parseTopLevelDeclarationImpl(/, Instance of 'DirectiveContext')
    parseMetadataStar(/)
      listener: beginMetadataStar(f)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(/)
      listener: beginTopLevelMember(f)
      parseFields(/, null, null, null, null, null, null, /, Instance of 'SimpleType', o, DeclarationKind.TopLevel, null, false)
        listener: beginFields(/)
        listener: handleIdentifier(f, typeReference)
        listener: handleNoTypeArguments(o)
        listener: handleType(f, null)
        ensureIdentifierPotentiallyRecovered(f, topLevelVariableDeclaration, false)
          listener: handleIdentifier(o, topLevelVariableDeclaration)
        parseFieldInitializerOpt(o, o, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(r)
        ensureSemicolon(o)
          reportRecoverableError(o, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], o, o)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, f, ;)
  listener: endTopLevelDeclaration(r)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(r)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(r)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', d, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(r, typeReference)
        listener: handleNoTypeArguments(d)
        listener: handleType(r, null)
        ensureIdentifierPotentiallyRecovered(r, topLevelVariableDeclaration, false)
          listener: handleIdentifier(d, topLevelVariableDeclaration)
        parseFieldInitializerOpt(d, d, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(e)
        ensureSemicolon(d)
          reportRecoverableError(d, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], d, d)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, r, ;)
  listener: endTopLevelDeclaration(e)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(e)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(e)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', t, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(e, typeReference)
        listener: handleNoTypeArguments(t)
        listener: handleType(e, null)
        ensureIdentifierPotentiallyRecovered(e, topLevelVariableDeclaration, false)
          listener: handleIdentifier(t, topLevelVariableDeclaration)
        parseFieldInitializerOpt(t, t, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(a)
        ensureSemicolon(t)
          reportRecoverableError(t, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], t, t)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
  listener: endTopLevelDeclaration(a)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(a)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(a)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', i, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(a, typeReference)
        listener: handleNoTypeArguments(i)
        listener: handleType(a, null)
        ensureIdentifierPotentiallyRecovered(a, topLevelVariableDeclaration, false)
          listener: handleIdentifier(i, topLevelVariableDeclaration)
        parseFieldInitializerOpt(i, i, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(l)
        ensureSemicolon(i)
          reportRecoverableError(i, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], i, i)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, a, ;)
  listener: endTopLevelDeclaration(l)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(l)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(l)
      parseTopLevelMethod(;, null, ;, Instance of 'SimpleType', null, s, false)
        listener: beginTopLevelMethod(;, null)
        listener: handleIdentifier(l, typeReference)
        listener: handleNoTypeArguments(s)
        listener: handleType(l, null)
        ensureIdentifierPotentiallyRecovered(l, topLevelFunctionDeclaration, false)
          listener: handleIdentifier(s, topLevelFunctionDeclaration)
        parseMethodTypeVar(s)
          listener: handleNoTypeVariables(.)
        parseGetterOrFormalParameters(s, s, false, MemberKind.TopLevelMethod)
          missingParameterMessage(MemberKind.TopLevelMethod)
          reportRecoverableError(s, MissingFunctionParameters)
            listener: handleRecoverableError(MissingFunctionParameters, s, s)
          rewriter()
          parseFormalParametersRest((, MemberKind.TopLevelMethod)
            listener: beginFormalParameters((, MemberKind.TopLevelMethod)
            listener: endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
        parseAsyncModifierOpt())
          listener: handleAsyncModifier(null, null)
          inPlainSync()
        parseFunctionBody(), false, false)
          ensureBlock(), Instance of 'Template<(Token) => Message>', null)
            reportRecoverableError(., Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {lexeme: .}])
              listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {lexeme: .}], ., .)
            insertBlock())
              rewriter()
              rewriter()
          listener: handleInvalidFunctionBody({)
        listener: endTopLevelMethod(l, null, })
  listener: endTopLevelDeclaration(.)
  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
    parseMetadataStar(})
      listener: beginMetadataStar(.)
      listener: endMetadataStar(0)
    listener: beginTopLevelMember(.)
    parseInvalidTopLevelDeclaration(})
      reportRecoverableErrorWithToken(., Instance of 'Template<(Token) => Message>')
        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '.'., null, {lexeme: .}], ., .)
      listener: handleInvalidTopLevelDeclaration(.)
  listener: endTopLevelDeclaration(A)
  parseTopLevelDeclarationImpl(., Instance of 'DirectiveContext')
    parseMetadataStar(.)
      listener: beginMetadataStar(A)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(.)
      listener: beginTopLevelMember(A)
      parseFields(., null, null, null, null, null, null, ., Instance of 'SimpleType', l, DeclarationKind.TopLevel, null, false)
        listener: beginFields(.)
        listener: handleIdentifier(A, typeReference)
        listener: handleNoTypeArguments(l)
        listener: handleType(A, null)
        ensureIdentifierPotentiallyRecovered(A, topLevelVariableDeclaration, false)
          listener: handleIdentifier(l, topLevelVariableDeclaration)
        parseFieldInitializerOpt(l, l, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(l)
        ensureSemicolon(l)
          reportRecoverableError(l, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], l, l)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, A, ;)
  listener: endTopLevelDeclaration(l)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(l)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(l)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(l, typeReference)
        listener: handleNoTypeArguments(r)
        listener: handleType(l, null)
        ensureIdentifierPotentiallyRecovered(l, topLevelVariableDeclaration, false)
          listener: handleIdentifier(r, topLevelVariableDeclaration)
        parseFieldInitializerOpt(r, r, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(i)
        ensureSemicolon(r)
          reportRecoverableError(r, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], r, r)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, l, ;)
  listener: endTopLevelDeclaration(i)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(i)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(i)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', g, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(i, typeReference)
        listener: handleNoTypeArguments(g)
        listener: handleType(i, null)
        ensureIdentifierPotentiallyRecovered(i, topLevelVariableDeclaration, false)
          listener: handleIdentifier(g, topLevelVariableDeclaration)
        parseFieldInitializerOpt(g, g, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(h)
        ensureSemicolon(g)
          reportRecoverableError(g, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], g, g)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, i, ;)
  listener: endTopLevelDeclaration(h)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(h)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(h)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', t, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(h, typeReference)
        listener: handleNoTypeArguments(t)
        listener: handleType(h, null)
        ensureIdentifierPotentiallyRecovered(h, topLevelVariableDeclaration, false)
          listener: handleIdentifier(t, topLevelVariableDeclaration)
        parseFieldInitializerOpt(t, t, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(s)
        ensureSemicolon(t)
          reportRecoverableError(t, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], t, t)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, h, ;)
  listener: endTopLevelDeclaration(s)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(s)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(s)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(s, typeReference)
        listener: handleNoTypeArguments(r)
        listener: handleType(s, null)
        ensureIdentifierPotentiallyRecovered(s, topLevelVariableDeclaration, false)
          listener: handleIdentifier(r, topLevelVariableDeclaration)
        parseFieldInitializerOpt(r, r, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(e)
        ensureSemicolon(r)
          reportRecoverableError(r, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], r, r)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, s, ;)
  listener: endTopLevelDeclaration(e)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(e)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(e)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', s, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(e, typeReference)
        listener: handleNoTypeArguments(s)
        listener: handleType(e, null)
        ensureIdentifierPotentiallyRecovered(e, topLevelVariableDeclaration, false)
          listener: handleIdentifier(s, topLevelVariableDeclaration)
        parseFieldInitializerOpt(s, s, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(e)
        ensureSemicolon(s)
          reportRecoverableError(s, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], s, s)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
  listener: endTopLevelDeclaration(e)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(e)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(e)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(e, typeReference)
        listener: handleNoTypeArguments(r)
        listener: handleType(e, null)
        ensureIdentifierPotentiallyRecovered(e, topLevelVariableDeclaration, false)
          listener: handleIdentifier(r, topLevelVariableDeclaration)
        parseFieldInitializerOpt(r, r, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(v)
        ensureSemicolon(r)
          reportRecoverableError(r, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], r, r)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
  listener: endTopLevelDeclaration(v)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(v)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(v)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(v, typeReference)
        listener: handleNoTypeArguments(e)
        listener: handleType(v, null)
        ensureIdentifierPotentiallyRecovered(v, topLevelVariableDeclaration, false)
          listener: handleIdentifier(e, topLevelVariableDeclaration)
        parseFieldInitializerOpt(e, e, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(d)
        ensureSemicolon(e)
          reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], e, e)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, v, ;)
  listener: endTopLevelDeclaration(d)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(d)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(d)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'PrefixedType', s, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(d, prefixedTypeReference)
        listener: handleIdentifier(U, typeReferenceContinuation)
        listener: handleQualified(.)
        listener: handleNoTypeArguments(s)
        listener: handleType(d, null)
        ensureIdentifierPotentiallyRecovered(U, topLevelVariableDeclaration, false)
          listener: handleIdentifier(s, topLevelVariableDeclaration)
        parseFieldInitializerOpt(s, s, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(e)
        ensureSemicolon(s)
          reportRecoverableError(s, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], s, s)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, d, ;)
  listener: endTopLevelDeclaration(e)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(e)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(e)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', o, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(e, typeReference)
        listener: handleNoTypeArguments(o)
        listener: handleType(e, null)
        ensureIdentifierPotentiallyRecovered(e, topLevelVariableDeclaration, false)
          listener: handleIdentifier(o, topLevelVariableDeclaration)
        parseFieldInitializerOpt(o, o, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(f)
        ensureSemicolon(o)
          reportRecoverableError(o, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], o, o)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
  listener: endTopLevelDeclaration(f)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(f)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(f)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', t, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(f, typeReference)
        listener: handleNoTypeArguments(t)
        listener: handleType(f, null)
        ensureIdentifierPotentiallyRecovered(f, topLevelVariableDeclaration, false)
          listener: handleIdentifier(t, topLevelVariableDeclaration)
        parseFieldInitializerOpt(t, t, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(h)
        ensureSemicolon(t)
          reportRecoverableError(t, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], t, t)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, f, ;)
  listener: endTopLevelDeclaration(h)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(h)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(h)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', i, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(h, typeReference)
        listener: handleNoTypeArguments(i)
        listener: handleType(h, null)
        ensureIdentifierPotentiallyRecovered(h, topLevelVariableDeclaration, false)
          listener: handleIdentifier(i, topLevelVariableDeclaration)
        parseFieldInitializerOpt(i, i, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(s)
        ensureSemicolon(i)
          reportRecoverableError(i, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], i, i)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, h, ;)
  listener: endTopLevelDeclaration(s)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(s)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(s)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', s, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(s, typeReference)
        listener: handleNoTypeArguments(s)
        listener: handleType(s, null)
        ensureIdentifierPotentiallyRecovered(s, topLevelVariableDeclaration, false)
          listener: handleIdentifier(s, topLevelVariableDeclaration)
        parseFieldInitializerOpt(s, s, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(o)
        ensureSemicolon(s)
          reportRecoverableError(s, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], s, s)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, s, ;)
  listener: endTopLevelDeclaration(o)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(o)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(o)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', u, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(o, typeReference)
        listener: handleNoTypeArguments(u)
        listener: handleType(o, null)
        ensureIdentifierPotentiallyRecovered(o, topLevelVariableDeclaration, false)
          listener: handleIdentifier(u, topLevelVariableDeclaration)
        parseFieldInitializerOpt(u, u, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(r)
        ensureSemicolon(u)
          reportRecoverableError(u, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], u, u)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, o, ;)
  listener: endTopLevelDeclaration(r)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(r)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(r)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', c, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(r, typeReference)
        listener: handleNoTypeArguments(c)
        listener: handleType(r, null)
        ensureIdentifierPotentiallyRecovered(r, topLevelVariableDeclaration, false)
          listener: handleIdentifier(c, topLevelVariableDeclaration)
        parseFieldInitializerOpt(c, c, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(e)
        ensureSemicolon(c)
          reportRecoverableError(c, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], c, c)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, r, ;)
  listener: endTopLevelDeclaration(e)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(e)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(e)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', c, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(e, typeReference)
        listener: handleNoTypeArguments(c)
        listener: handleType(e, null)
        ensureIdentifierPotentiallyRecovered(e, topLevelVariableDeclaration, false)
          listener: handleIdentifier(c, topLevelVariableDeclaration)
        parseFieldInitializerOpt(c, c, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(o)
        ensureSemicolon(c)
          reportRecoverableError(c, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], c, c)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
  listener: endTopLevelDeclaration(o)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(o)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(o)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', d, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(o, typeReference)
        listener: handleNoTypeArguments(d)
        listener: handleType(o, null)
        ensureIdentifierPotentiallyRecovered(o, topLevelVariableDeclaration, false)
          listener: handleIdentifier(d, topLevelVariableDeclaration)
        parseFieldInitializerOpt(d, d, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(e)
        ensureSemicolon(d)
          reportRecoverableError(d, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], d, d)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, o, ;)
  listener: endTopLevelDeclaration(e)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(e)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(e)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', i, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(e, typeReference)
        listener: handleNoTypeArguments(i)
        listener: handleType(e, null)
        ensureIdentifierPotentiallyRecovered(e, topLevelVariableDeclaration, false)
          listener: handleIdentifier(i, topLevelVariableDeclaration)
        parseFieldInitializerOpt(i, i, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(s)
        ensureSemicolon(i)
          reportRecoverableError(i, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], i, i)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
  listener: endTopLevelDeclaration(s)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(s)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(s)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', g, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(s, typeReference)
        listener: handleNoTypeArguments(g)
        listener: handleType(s, null)
        ensureIdentifierPotentiallyRecovered(s, topLevelVariableDeclaration, false)
          listener: handleIdentifier(g, topLevelVariableDeclaration)
        parseFieldInitializerOpt(g, g, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(o)
        ensureSemicolon(g)
          reportRecoverableError(g, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], g, g)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, s, ;)
  listener: endTopLevelDeclaration(o)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(o)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(o)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', v, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(o, typeReference)
        listener: handleNoTypeArguments(v)
        listener: handleType(o, null)
        ensureIdentifierPotentiallyRecovered(o, topLevelVariableDeclaration, false)
          listener: handleIdentifier(v, topLevelVariableDeclaration)
        parseFieldInitializerOpt(v, v, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(e)
        ensureSemicolon(v)
          reportRecoverableError(v, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], v, v)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, o, ;)
  listener: endTopLevelDeclaration(e)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(e)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(e)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(e, typeReference)
        listener: handleNoTypeArguments(r)
        listener: handleType(e, null)
        ensureIdentifierPotentiallyRecovered(e, topLevelVariableDeclaration, false)
          listener: handleIdentifier(r, topLevelVariableDeclaration)
        parseFieldInitializerOpt(r, r, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(n)
        ensureSemicolon(r)
          reportRecoverableError(r, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], r, r)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
  listener: endTopLevelDeclaration(n)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(n)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(n)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(n, typeReference)
        listener: handleNoTypeArguments(e)
        listener: handleType(n, null)
        ensureIdentifierPotentiallyRecovered(n, topLevelVariableDeclaration, false)
          listener: handleIdentifier(e, topLevelVariableDeclaration)
        parseFieldInitializerOpt(e, e, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(d)
        ensureSemicolon(e)
          reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], e, e)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, n, ;)
  listener: endTopLevelDeclaration(d)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(d)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(d)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', b, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(d, typeReference)
        listener: handleNoTypeArguments(b)
        listener: handleType(d, null)
        ensureIdentifierPotentiallyRecovered(d, topLevelVariableDeclaration, false)
          listener: handleIdentifier(b, topLevelVariableDeclaration)
        parseFieldInitializerOpt(b, b, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(y)
        ensureSemicolon(b)
          reportRecoverableError(b, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], b, b)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, d, ;)
  listener: endTopLevelDeclaration(y)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(y)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(y)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', a, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(y, typeReference)
        listener: handleNoTypeArguments(a)
        listener: handleType(y, null)
        ensureIdentifierPotentiallyRecovered(y, topLevelVariableDeclaration, false)
          listener: handleIdentifier(a, topLevelVariableDeclaration)
        parseFieldInitializerOpt(a, a, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(/)
        ensureSemicolon(a)
          reportRecoverableError(a, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], a, a)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, y, ;)
  listener: endTopLevelDeclaration(/)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(/)
      listener: endMetadataStar(0)
    listener: beginTopLevelMember(/)
    parseInvalidTopLevelDeclaration(;)
      reportRecoverableErrorWithToken(/, Instance of 'Template<(Token) => Message>')
        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '/'., null, {lexeme: /}], /, /)
      listener: handleInvalidTopLevelDeclaration(/)
  listener: endTopLevelDeclaration(/)
  parseTopLevelDeclarationImpl(/, Instance of 'DirectiveContext')
    parseMetadataStar(/)
      listener: beginMetadataStar(/)
      listener: endMetadataStar(0)
    listener: beginTopLevelMember(/)
    parseInvalidTopLevelDeclaration(/)
      reportRecoverableErrorWithToken(/, Instance of 'Template<(Token) => Message>')
        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '/'., null, {lexeme: /}], /, /)
      listener: handleInvalidTopLevelDeclaration(/)
  listener: endTopLevelDeclaration(B)
  parseTopLevelDeclarationImpl(/, Instance of 'DirectiveContext')
    parseMetadataStar(/)
      listener: beginMetadataStar(B)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(/)
      listener: beginTopLevelMember(B)
      parseFields(/, null, null, null, null, null, null, /, Instance of 'SimpleType', S, DeclarationKind.TopLevel, null, false)
        listener: beginFields(/)
        listener: handleIdentifier(B, typeReference)
        listener: handleNoTypeArguments(S)
        listener: handleType(B, null)
        ensureIdentifierPotentiallyRecovered(B, topLevelVariableDeclaration, false)
          listener: handleIdentifier(S, topLevelVariableDeclaration)
        parseFieldInitializerOpt(S, S, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(D)
        ensureSemicolon(S)
          reportRecoverableError(S, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], S, S)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, B, ;)
  listener: endTopLevelDeclaration(D)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(D)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(D)
      isReservedKeyword(-)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'NoType', D, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        reportRecoverableError(D, MissingConstFinalVarOrType)
          listener: handleRecoverableError(MissingConstFinalVarOrType, D, D)
        listener: handleNoType(;)
        ensureIdentifierPotentiallyRecovered(;, topLevelVariableDeclaration, false)
          listener: handleIdentifier(D, topLevelVariableDeclaration)
        parseFieldInitializerOpt(D, D, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(-)
        ensureSemicolon(D)
          reportRecoverableError(D, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], D, D)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, D, ;)
  listener: endTopLevelDeclaration(-)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(-)
      listener: endMetadataStar(0)
    listener: beginTopLevelMember(-)
    parseInvalidTopLevelDeclaration(;)
      reportRecoverableErrorWithToken(-, Instance of 'Template<(Token) => Message>')
        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '-'., null, {lexeme: -}], -, -)
      listener: handleInvalidTopLevelDeclaration(-)
  listener: endTopLevelDeclaration(s)
  parseTopLevelDeclarationImpl(-, Instance of 'DirectiveContext')
    parseMetadataStar(-)
      listener: beginMetadataStar(s)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(-)
      listener: beginTopLevelMember(s)
      parseFields(-, null, null, null, null, null, null, -, Instance of 'SimpleType', t, DeclarationKind.TopLevel, null, false)
        listener: beginFields(-)
        listener: handleIdentifier(s, typeReference)
        listener: handleNoTypeArguments(t)
        listener: handleType(s, null)
        ensureIdentifierPotentiallyRecovered(s, topLevelVariableDeclaration, false)
          listener: handleIdentifier(t, topLevelVariableDeclaration)
        parseFieldInitializerOpt(t, t, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(y)
        ensureSemicolon(t)
          reportRecoverableError(t, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], t, t)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, s, ;)
  listener: endTopLevelDeclaration(y)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(y)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(y)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', l, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(y, typeReference)
        listener: handleNoTypeArguments(l)
        listener: handleType(y, null)
        ensureIdentifierPotentiallyRecovered(y, topLevelVariableDeclaration, false)
          listener: handleIdentifier(l, topLevelVariableDeclaration)
        parseFieldInitializerOpt(l, l, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(e)
        ensureSemicolon(l)
          reportRecoverableError(l, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], l, l)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, y, ;)
  listener: endTopLevelDeclaration(e)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(e)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(e)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', l, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(e, typeReference)
        listener: handleNoTypeArguments(l)
        listener: handleType(e, null)
        ensureIdentifierPotentiallyRecovered(e, topLevelVariableDeclaration, false)
          listener: handleIdentifier(l, topLevelVariableDeclaration)
        parseFieldInitializerOpt(l, l, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(i)
        ensureSemicolon(l)
          reportRecoverableError(l, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], l, l)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
  listener: endTopLevelDeclaration(i)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(i)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(i)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', c, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(i, typeReference)
        listener: handleNoTypeArguments(c)
        listener: handleType(i, null)
        ensureIdentifierPotentiallyRecovered(i, topLevelVariableDeclaration, false)
          listener: handleIdentifier(c, topLevelVariableDeclaration)
        parseFieldInitializerOpt(c, c, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(e)
        ensureSemicolon(c)
          reportRecoverableError(c, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], c, c)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, i, ;)
  listener: endTopLevelDeclaration(e)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(e)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(e)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', n, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(e, typeReference)
        listener: handleNoTypeArguments(n)
        listener: handleType(e, null)
        ensureIdentifierPotentiallyRecovered(e, topLevelVariableDeclaration, false)
          listener: handleIdentifier(n, topLevelVariableDeclaration)
        parseFieldInitializerOpt(n, n, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(s)
        ensureSemicolon(n)
          reportRecoverableError(n, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], n, n)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
  listener: endTopLevelDeclaration(s)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(s)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(s)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(s, typeReference)
        listener: handleNoTypeArguments(e)
        listener: handleType(s, null)
        ensureIdentifierPotentiallyRecovered(s, topLevelVariableDeclaration, false)
          listener: handleIdentifier(e, topLevelVariableDeclaration)
        parseFieldInitializerOpt(e, e, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(t)
        ensureSemicolon(e)
          reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], e, e)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, s, ;)
  listener: endTopLevelDeclaration(t)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(t)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(t)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', h, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(t, typeReference)
        listener: handleNoTypeArguments(h)
        listener: handleType(t, null)
        ensureIdentifierPotentiallyRecovered(t, topLevelVariableDeclaration, false)
          listener: handleIdentifier(h, topLevelVariableDeclaration)
        parseFieldInitializerOpt(h, h, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(a)
        ensureSemicolon(h)
          reportRecoverableError(h, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], h, h)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, t, ;)
  listener: endTopLevelDeclaration(a)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(a)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(a)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', t, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(a, typeReference)
        listener: handleNoTypeArguments(t)
        listener: handleType(a, null)
        ensureIdentifierPotentiallyRecovered(a, topLevelVariableDeclaration, false)
          listener: handleIdentifier(t, topLevelVariableDeclaration)
        parseFieldInitializerOpt(t, t, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(c)
        ensureSemicolon(t)
          reportRecoverableError(t, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], t, t)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, a, ;)
  listener: endTopLevelDeclaration(c)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(c)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(c)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', a, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(c, typeReference)
        listener: handleNoTypeArguments(a)
        listener: handleType(c, null)
        ensureIdentifierPotentiallyRecovered(c, topLevelVariableDeclaration, false)
          listener: handleIdentifier(a, topLevelVariableDeclaration)
        parseFieldInitializerOpt(a, a, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(n)
        ensureSemicolon(a)
          reportRecoverableError(a, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], a, a)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, c, ;)
  listener: endTopLevelDeclaration(n)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(n)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(n)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', b, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(n, typeReference)
        listener: handleNoTypeArguments(b)
        listener: handleType(n, null)
        ensureIdentifierPotentiallyRecovered(n, topLevelVariableDeclaration, false)
          listener: handleIdentifier(b, topLevelVariableDeclaration)
        parseFieldInitializerOpt(b, b, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(e)
        ensureSemicolon(b)
          reportRecoverableError(b, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], b, b)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, n, ;)
  listener: endTopLevelDeclaration(e)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(e)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(e)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', f, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(e, typeReference)
        listener: handleNoTypeArguments(f)
        listener: handleType(e, null)
        ensureIdentifierPotentiallyRecovered(e, topLevelVariableDeclaration, false)
          listener: handleIdentifier(f, topLevelVariableDeclaration)
        parseFieldInitializerOpt(f, f, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(o)
        ensureSemicolon(f)
          reportRecoverableError(f, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], f, f)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
  listener: endTopLevelDeclaration(o)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(o)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(o)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', u, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(o, typeReference)
        listener: handleNoTypeArguments(u)
        listener: handleType(o, null)
        ensureIdentifierPotentiallyRecovered(o, topLevelVariableDeclaration, false)
          listener: handleIdentifier(u, topLevelVariableDeclaration)
        parseFieldInitializerOpt(u, u, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(n)
        ensureSemicolon(u)
          reportRecoverableError(u, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], u, u)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, o, ;)
  listener: endTopLevelDeclaration(n)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(n)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(n)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', d, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(n, typeReference)
        listener: handleNoTypeArguments(d)
        listener: handleType(n, null)
        ensureIdentifierPotentiallyRecovered(n, topLevelVariableDeclaration, false)
          listener: handleIdentifier(d, topLevelVariableDeclaration)
        parseFieldInitializerOpt(d, d, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(i)
        ensureSemicolon(d)
          reportRecoverableError(d, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], d, d)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, n, ;)
  listener: endTopLevelDeclaration(i)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(i)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(i)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', n, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(i, typeReference)
        listener: handleNoTypeArguments(n)
        listener: handleType(i, null)
        ensureIdentifierPotentiallyRecovered(i, topLevelVariableDeclaration, false)
          listener: handleIdentifier(n, topLevelVariableDeclaration)
        parseFieldInitializerOpt(n, n, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(t)
        ensureSemicolon(n)
          reportRecoverableError(n, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], n, n)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, i, ;)
  listener: endTopLevelDeclaration(t)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(t)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(t)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', h, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(t, typeReference)
        listener: handleNoTypeArguments(h)
        listener: handleType(t, null)
        ensureIdentifierPotentiallyRecovered(t, topLevelVariableDeclaration, false)
          listener: handleIdentifier(h, topLevelVariableDeclaration)
        parseFieldInitializerOpt(h, h, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(e)
        ensureSemicolon(h)
          reportRecoverableError(h, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], h, h)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, t, ;)
  listener: endTopLevelDeclaration(e)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(e)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(e)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', L, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(e, typeReference)
        listener: handleNoTypeArguments(L)
        listener: handleType(e, null)
        ensureIdentifierPotentiallyRecovered(e, topLevelVariableDeclaration, false)
          listener: handleIdentifier(L, topLevelVariableDeclaration)
        parseFieldInitializerOpt(L, L, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(I)
        ensureSemicolon(L)
          reportRecoverableError(L, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], L, L)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, e, ;)
  listener: endTopLevelDeclaration(I)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(I)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(I)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', C, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(I, typeReference)
        listener: handleNoTypeArguments(C)
        listener: handleType(I, null)
        ensureIdentifierPotentiallyRecovered(I, topLevelVariableDeclaration, false)
          listener: handleIdentifier(C, topLevelVariableDeclaration)
        parseFieldInitializerOpt(C, C, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(E)
        ensureSemicolon(C)
          reportRecoverableError(C, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], C, C)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, I, ;)
  listener: endTopLevelDeclaration(E)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(E)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(E)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', N, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(E, typeReference)
        listener: handleNoTypeArguments(N)
        listener: handleType(E, null)
        ensureIdentifierPotentiallyRecovered(E, topLevelVariableDeclaration, false)
          listener: handleIdentifier(N, topLevelVariableDeclaration)
        parseFieldInitializerOpt(N, N, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(S)
        ensureSemicolon(N)
          reportRecoverableError(N, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], N, N)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, E, ;)
  listener: endTopLevelDeclaration(S)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(S)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(S)
      parseTopLevelMethod(;, null, ;, Instance of 'SimpleType', null, E, false)
        listener: beginTopLevelMethod(;, null)
        listener: handleIdentifier(S, typeReference)
        listener: handleNoTypeArguments(E)
        listener: handleType(S, null)
        ensureIdentifierPotentiallyRecovered(S, topLevelFunctionDeclaration, false)
          listener: handleIdentifier(E, topLevelFunctionDeclaration)
        parseMethodTypeVar(E)
          listener: handleNoTypeVariables(.)
        parseGetterOrFormalParameters(E, E, false, MemberKind.TopLevelMethod)
          missingParameterMessage(MemberKind.TopLevelMethod)
          reportRecoverableError(E, MissingFunctionParameters)
            listener: handleRecoverableError(MissingFunctionParameters, E, E)
          rewriter()
          parseFormalParametersRest((, MemberKind.TopLevelMethod)
            listener: beginFormalParameters((, MemberKind.TopLevelMethod)
            listener: endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
        parseAsyncModifierOpt())
          listener: handleAsyncModifier(null, null)
          inPlainSync()
        parseFunctionBody(), false, false)
          ensureBlock(), Instance of 'Template<(Token) => Message>', null)
            reportRecoverableError(., Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {lexeme: .}])
              listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {lexeme: .}], ., .)
            insertBlock())
              rewriter()
              rewriter()
          listener: handleInvalidFunctionBody({)
        listener: endTopLevelMethod(S, null, })
  listener: endTopLevelDeclaration(.)
  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
    parseMetadataStar(})
      listener: beginMetadataStar(.)
      listener: endMetadataStar(0)
    listener: beginTopLevelMember(.)
    parseInvalidTopLevelDeclaration(})
      reportRecoverableErrorWithToken(., Instance of 'Template<(Token) => Message>')
        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '.'., null, {lexeme: .}], ., .)
      listener: handleInvalidTopLevelDeclaration(.)
  listener: endTopLevelDeclaration(m)
  parseTopLevelDeclarationImpl(., Instance of 'DirectiveContext')
    parseMetadataStar(.)
      listener: beginMetadataStar(m)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(.)
      listener: beginTopLevelMember(m)
      parseFields(., null, null, null, null, null, null, ., Instance of 'SimpleType', d, DeclarationKind.TopLevel, null, false)
        listener: beginFields(.)
        listener: handleIdentifier(m, typeReference)
        listener: handleNoTypeArguments(d)
        listener: handleType(m, null)
        ensureIdentifierPotentiallyRecovered(m, topLevelVariableDeclaration, false)
          listener: handleIdentifier(d, topLevelVariableDeclaration)
        parseFieldInitializerOpt(d, d, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(f)
        ensureSemicolon(d)
          reportRecoverableError(d, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], d, d)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, m, ;)
  listener: endTopLevelDeclaration(f)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(f)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(f)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', i, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(f, typeReference)
        listener: handleNoTypeArguments(i)
        listener: handleType(f, null)
        ensureIdentifierPotentiallyRecovered(f, topLevelVariableDeclaration, false)
          listener: handleIdentifier(i, topLevelVariableDeclaration)
        parseFieldInitializerOpt(i, i, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(l)
        ensureSemicolon(i)
          reportRecoverableError(i, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], i, i)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, f, ;)
  listener: endTopLevelDeclaration(l)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(l)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(l)
      parseTopLevelMethod(;, null, ;, Instance of 'SimpleType', null, e, false)
        listener: beginTopLevelMethod(;, null)
        listener: handleIdentifier(l, typeReference)
        listener: handleNoTypeArguments(e)
        listener: handleType(l, null)
        ensureIdentifierPotentiallyRecovered(l, topLevelFunctionDeclaration, false)
          listener: handleIdentifier(e, topLevelFunctionDeclaration)
        parseMethodTypeVar(e)
          listener: handleNoTypeVariables(.)
        parseGetterOrFormalParameters(e, e, false, MemberKind.TopLevelMethod)
          missingParameterMessage(MemberKind.TopLevelMethod)
          reportRecoverableError(e, MissingFunctionParameters)
            listener: handleRecoverableError(MissingFunctionParameters, e, e)
          rewriter()
          parseFormalParametersRest((, MemberKind.TopLevelMethod)
            listener: beginFormalParameters((, MemberKind.TopLevelMethod)
            listener: endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
        parseAsyncModifierOpt())
          listener: handleAsyncModifier(null, null)
          inPlainSync()
        parseFunctionBody(), false, false)
          ensureBlock(), Instance of 'Template<(Token) => Message>', null)
            reportRecoverableError(., Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {lexeme: .}])
              listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {lexeme: .}], ., .)
            insertBlock())
              rewriter()
              rewriter()
          listener: handleInvalidFunctionBody({)
        listener: endTopLevelMethod(l, null, })
  listener: endTopLevelDeclaration(.)
  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
    parseMetadataStar(})
      listener: beginMetadataStar(.)
      listener: endMetadataStar(0)
    listener: beginTopLevelMember(.)
    parseInvalidTopLevelDeclaration(})
      reportRecoverableErrorWithToken(., Instance of 'Template<(Token) => Message>')
        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '.'., null, {lexeme: .}], ., .)
      listener: handleInvalidTopLevelDeclaration(.)
  listener: endTopLevelDeclaration(/)
  parseTopLevelDeclarationImpl(., Instance of 'DirectiveContext')
    parseMetadataStar(.)
      listener: beginMetadataStar(/)
      listener: endMetadataStar(0)
    listener: beginTopLevelMember(/)
    parseInvalidTopLevelDeclaration(.)
      reportRecoverableErrorWithToken(/, Instance of 'Template<(Token) => Message>')
        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '/'., null, {lexeme: /}], /, /)
      listener: handleInvalidTopLevelDeclaration(/)
  listener: endTopLevelDeclaration(/)
  parseTopLevelDeclarationImpl(/, Instance of 'DirectiveContext')
    parseMetadataStar(/)
      listener: beginMetadataStar(/)
      listener: endMetadataStar(0)
    listener: beginTopLevelMember(/)
    parseInvalidTopLevelDeclaration(/)
      reportRecoverableErrorWithToken(/, Instance of 'Template<(Token) => Message>')
        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '/'., null, {lexeme: /}], /, /)
      listener: handleInvalidTopLevelDeclaration(/)
  listener: endTopLevelDeclaration(T)
  parseTopLevelDeclarationImpl(/, Instance of 'DirectiveContext')
    parseMetadataStar(/)
      listener: beginMetadataStar(T)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(/)
      listener: beginTopLevelMember(T)
      parseFields(/, null, null, null, null, null, null, /, Instance of 'SimpleType', h, DeclarationKind.TopLevel, null, false)
        listener: beginFields(/)
        listener: handleIdentifier(T, typeReference)
        listener: handleNoTypeArguments(h)
        listener: handleType(T, null)
        ensureIdentifierPotentiallyRecovered(T, topLevelVariableDeclaration, false)
          listener: handleIdentifier(h, topLevelVariableDeclaration)
        parseFieldInitializerOpt(h, h, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(i)
        ensureSemicolon(h)
          reportRecoverableError(h, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], h, h)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, T, ;)
  listener: endTopLevelDeclaration(i)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(i)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(i)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', s, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(i, typeReference)
        listener: handleNoTypeArguments(s)
        listener: handleType(i, null)
        ensureIdentifierPotentiallyRecovered(i, topLevelVariableDeclaration, false)
          listener: handleIdentifier(s, topLevelVariableDeclaration)
        parseFieldInitializerOpt(s, s, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(f)
        ensureSemicolon(s)
          reportRecoverableError(s, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], s, s)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, i, ;)
  listener: endTopLevelDeclaration(f)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(f)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(f)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', i, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(f, typeReference)
        listener: handleNoTypeArguments(i)
        listener: handleType(f, null)
        ensureIdentifierPotentiallyRecovered(f, topLevelVariableDeclaration, false)
          listener: handleIdentifier(i, topLevelVariableDeclaration)
        parseFieldInitializerOpt(i, i, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(l)
        ensureSemicolon(i)
          reportRecoverableError(i, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], i, i)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, f, ;)
  listener: endTopLevelDeclaration(l)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(l)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(l)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(l, typeReference)
        listener: handleNoTypeArguments(e)
        listener: handleType(l, null)
        ensureIdentifierPotentiallyRecovered(l, topLevelVariableDeclaration, false)
          listener: handleIdentifier(e, topLevelVariableDeclaration)
        parseFieldInitializerOpt(e, e, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(i)
        ensureSemicolon(e)
          reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], e, e)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, l, ;)
  listener: endTopLevelDeclaration(i)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(i)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(i)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', s, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(i, typeReference)
        listener: handleNoTypeArguments(s)
        listener: handleType(i, null)
        ensureIdentifierPotentiallyRecovered(i, topLevelVariableDeclaration, false)
          listener: handleIdentifier(s, topLevelVariableDeclaration)
        parseFieldInitializerOpt(s, s, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(s)
        ensureSemicolon(s)
          reportRecoverableError(s, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], s, s)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, i, ;)
  listener: endTopLevelDeclaration(s)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(s)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(s)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', a, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(s, typeReference)
        listener: handleNoTypeArguments(a)
        listener: handleType(s, null)
        ensureIdentifierPotentiallyRecovered(s, topLevelVariableDeclaration, false)
          listener: handleIdentifier(a, topLevelVariableDeclaration)
        parseFieldInitializerOpt(a, a, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(v)
        ensureSemicolon(a)
          reportRecoverableError(a, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], a, a)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, s, ;)
  listener: endTopLevelDeclaration(v)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(v)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(v)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(v, typeReference)
        listener: handleNoTypeArguments(e)
        listener: handleType(v, null)
        ensureIdentifierPotentiallyRecovered(v, topLevelVariableDeclaration, false)
          listener: handleIdentifier(e, topLevelVariableDeclaration)
        parseFieldInitializerOpt(e, e, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(d)
        ensureSemicolon(e)
          reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], e, e)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, v, ;)
  listener: endTopLevelDeclaration(d)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(d)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(d)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', a, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(d, typeReference)
        listener: handleNoTypeArguments(a)
        listener: handleType(d, null)
        ensureIdentifierPotentiallyRecovered(d, topLevelVariableDeclaration, false)
          listener: handleIdentifier(a, topLevelVariableDeclaration)
        parseFieldInitializerOpt(a, a, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(s)
        ensureSemicolon(a)
          reportRecoverableError(a, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], a, a)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, d, ;)
  listener: endTopLevelDeclaration(s)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(s)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(s)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', U, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(s, typeReference)
        listener: handleNoTypeArguments(U)
        listener: handleType(s, null)
        ensureIdentifierPotentiallyRecovered(s, topLevelVariableDeclaration, false)
          listener: handleIdentifier(U, topLevelVariableDeclaration)
        parseFieldInitializerOpt(U, U, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(T)
        ensureSemicolon(U)
          reportRecoverableError(U, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], U, U)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, s, ;)
  listener: endTopLevelDeclaration(T)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(T)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(T)
      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', F, DeclarationKind.TopLevel, null, false)
        listener: beginFields(;)
        listener: handleIdentifier(T, typeReference)
        listener: handleNoTypeArguments(F)
        listener: handleType(T, null)
        ensureIdentifierPotentiallyRecovered(T, topLevelVariableDeclaration, false)
          listener: handleIdentifier(F, topLevelVariableDeclaration)
        parseFieldInitializerOpt(F, F, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(-)
        ensureSemicolon(F)
          reportRecoverableError(F, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], F, F)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, T, ;)
  listener: endTopLevelDeclaration(-)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(-)
      listener: endMetadataStar(0)
    listener: beginTopLevelMember(-)
    parseInvalidTopLevelDeclaration(;)
      reportRecoverableErrorWithToken(-, Instance of 'Template<(Token) => Message>')
        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '-'., null, {lexeme: -}], -, -)
      listener: handleInvalidTopLevelDeclaration(-)
  listener: endTopLevelDeclaration(1)
  parseTopLevelDeclarationImpl(-, Instance of 'DirectiveContext')
    parseMetadataStar(-)
      listener: beginMetadataStar(1)
      listener: endMetadataStar(0)
    listener: beginTopLevelMember(1)
    parseInvalidTopLevelDeclaration(-)
      reportRecoverableErrorWithToken(1, Instance of 'Template<(Token) => Message>')
        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '1'., null, {lexeme: 1}], 1, 1)
      listener: handleInvalidTopLevelDeclaration(1)
  listener: endTopLevelDeclaration(6)
  parseTopLevelDeclarationImpl(1, Instance of 'DirectiveContext')
    parseMetadataStar(1)
      listener: beginMetadataStar(6)
      listener: endMetadataStar(0)
    listener: beginTopLevelMember(6)
    parseInvalidTopLevelDeclaration(1)
      reportRecoverableErrorWithToken(6, Instance of 'Template<(Token) => Message>')
        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '6'., null, {lexeme: 6}], 6, 6)
      listener: handleInvalidTopLevelDeclaration(6)
  listener: endTopLevelDeclaration(L)
  parseTopLevelDeclarationImpl(6, Instance of 'DirectiveContext')
    parseMetadataStar(6)
      listener: beginMetadataStar(L)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(6)
      listener: beginTopLevelMember(L)
      parseTopLevelMethod(6, null, 6, Instance of 'SimpleType', null, E, false)
        listener: beginTopLevelMethod(6, null)
        listener: handleIdentifier(L, typeReference)
        listener: handleNoTypeArguments(E)
        listener: handleType(L, null)
        ensureIdentifierPotentiallyRecovered(L, topLevelFunctionDeclaration, false)
          listener: handleIdentifier(E, topLevelFunctionDeclaration)
        parseMethodTypeVar(E)
          listener: handleNoTypeVariables(.)
        parseGetterOrFormalParameters(E, E, false, MemberKind.TopLevelMethod)
          missingParameterMessage(MemberKind.TopLevelMethod)
          reportRecoverableError(E, MissingFunctionParameters)
            listener: handleRecoverableError(MissingFunctionParameters, E, E)
          rewriter()
          parseFormalParametersRest((, MemberKind.TopLevelMethod)
            listener: beginFormalParameters((, MemberKind.TopLevelMethod)
            listener: endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
        parseAsyncModifierOpt())
          listener: handleAsyncModifier(null, null)
          inPlainSync()
        parseFunctionBody(), false, false)
          ensureBlock(), Instance of 'Template<(Token) => Message>', null)
            reportRecoverableError(., Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {lexeme: .}])
              listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {lexeme: .}], ., .)
            insertBlock())
              rewriter()
              rewriter()
          listener: handleInvalidFunctionBody({)
        listener: endTopLevelMethod(L, null, })
  listener: endTopLevelDeclaration(.)
  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
    parseMetadataStar(})
      listener: beginMetadataStar(.)
      listener: endMetadataStar(0)
    listener: beginTopLevelMember(.)
    parseInvalidTopLevelDeclaration(})
      reportRecoverableErrorWithToken(., Instance of 'Template<(Token) => Message>')
        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '.'., null, {lexeme: .}], ., .)
      listener: handleInvalidTopLevelDeclaration(.)
  listener: endTopLevelDeclaration(m)
  parseTopLevelDeclarationImpl(., Instance of 'DirectiveContext')
    parseMetadataStar(.)
      listener: beginMetadataStar(m)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(.)
      listener: beginTopLevelMember(m)
      parseFields(., null, null, null, null, null, null, ., Instance of 'SimpleType', a, DeclarationKind.TopLevel, null, false)
        listener: beginFields(.)
        listener: handleIdentifier(m, typeReference)
        listener: handleNoTypeArguments(a)
        listener: handleType(m, null)
        ensureIdentifierPotentiallyRecovered(m, topLevelVariableDeclaration, false)
          listener: handleIdentifier(a, topLevelVariableDeclaration)
        parseFieldInitializerOpt(a, a, null, null, null, null, DeclarationKind.TopLevel, null)
          listener: handleNoFieldInitializer(i)
        ensureSemicolon(a)
          reportRecoverableError(a, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], a, a)
          rewriter()
        listener: endTopLevelFields(null, null, null, null, null, 1, m, ;)
  listener: endTopLevelDeclaration(i)
  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
    parseMetadataStar(;)
      listener: beginMetadataStar(i)
      listener: endMetadataStar(0)
    parseTopLevelMemberImpl(;)
      listener: beginTopLevelMember(i)
      parseTopLevelMethod(;, null, ;, Instance of 'SimpleType', null, n, false)
        listener: beginTopLevelMethod(;, null)
        listener: handleIdentifier(i, typeReference)
        listener: handleNoTypeArguments(n)
        listener: handleType(i, null)
        ensureIdentifierPotentiallyRecovered(i, topLevelFunctionDeclaration, false)
          listener: handleIdentifier(n, topLevelFunctionDeclaration)
        parseMethodTypeVar(n)
          listener: handleNoTypeVariables(()
        parseGetterOrFormalParameters(n, n, false, MemberKind.TopLevelMethod)
          parseFormalParameters(n, 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(}, p)
          parseStatement({)
            parseStatementX({)
              parseExpressionStatementOrDeclarationAfterModifiers({, {, null, null, null, false)
                looksLikeLocalFunction(r)
                listener: beginMetadataStar(p)
                listener: endMetadataStar(0)
                listener: handleIdentifier(p, typeReference)
                listener: handleNoTypeArguments(r)
                listener: handleType(p, null)
                listener: beginVariablesDeclaration(r, null, null)
                parseVariablesDeclarationRest(p, true)
                  parseOptionallyInitializedIdentifier(p)
                    ensureIdentifier(p, localVariableDeclaration)
                      listener: handleIdentifier(r, localVariableDeclaration)
                    listener: beginInitializedIdentifier(r)
                    parseVariableInitializerOpt(r)
                      listener: handleNoVariableInitializer(r)
                    listener: endInitializedIdentifier(r)
                  ensureSemicolon(r)
                    reportRecoverableError(r, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
                      listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], r, r)
                    rewriter()
                  listener: endVariablesDeclaration(1, ;)
          notEofOrValue(}, i)
          parseStatement(;)
            parseStatementX(;)
              parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
                looksLikeLocalFunction(n)
                listener: beginMetadataStar(i)
                listener: endMetadataStar(0)
                listener: handleIdentifier(i, typeReference)
                listener: handleNoTypeArguments(n)
                listener: handleType(i, null)
                listener: beginVariablesDeclaration(n, null, null)
                parseVariablesDeclarationRest(i, true)
                  parseOptionallyInitializedIdentifier(i)
                    ensureIdentifier(i, localVariableDeclaration)
                      listener: handleIdentifier(n, localVariableDeclaration)
                    listener: beginInitializedIdentifier(n)
                    parseVariableInitializerOpt(n)
                      listener: handleNoVariableInitializer(n)
                    listener: endInitializedIdentifier(n)
                  ensureSemicolon(n)
                    reportRecoverableError(n, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
                      listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], n, n)
                    rewriter()
                  listener: endVariablesDeclaration(1, ;)
          notEofOrValue(}, t)
          parseStatement(;)
            parseStatementX(;)
              parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
                looksLikeLocalFunction(t)
                parseExpressionStatement(;)
                  parseExpression(;)
                    parsePrecedenceExpression(;, 1, true)
                      parseUnaryExpression(;, true)
                        parsePrimary(;, expression)
                          parseSendOrFunctionLiteral(;, expression)
                            looksLikeFunctionBody(;)
                            parseSend(;, expression)
                              isNextIdentifier(;)
                              ensureIdentifier(;, expression)
                                listener: handleIdentifier(t, expression)
                              listener: handleNoTypeArguments(()
                              parseArgumentsOpt(t)
                                parseArguments(t)
                                  parseArgumentsRest(()
                                    listener: beginArguments(()
                                    parseExpression(()
                                      parsePrecedenceExpression((, 1, true)
                                        parseUnaryExpression((, true)
                                          parsePrimary((, expression)
                                            parseLiteralString(()
                                              parseSingleLiteralString(()
                                                listener: beginLiteralString("")
                                                listener: endLiteralString(0, H)
                                    rewriteAndRecover("", Message[ExpectedButGot, Expected ',' before this., null, {string: ,}], ,)
                                      reportRecoverableError(H, Message[ExpectedButGot, Expected ',' before this., null, {string: ,}])
                                        listener: handleRecoverableError(Message[ExpectedButGot, Expected ',' before this., null, {string: ,}], H, H)
                                      rewriter()
                                    parseExpression(,)
                                      parsePrecedenceExpression(,, 1, true)
                                        parseUnaryExpression(,, true)
                                          parsePrimary(,, expression)
                                            parseSendOrFunctionLiteral(,, expression)
                                              parseSend(,, expression)
                                                isNextIdentifier(,)
                                                ensureIdentifier(,, expression)
                                                  listener: handleIdentifier(H, expression)
                                                listener: handleNoTypeArguments(e)
                                                parseArgumentsOpt(H)
                                                  listener: handleNoArguments(e)
                                                listener: handleSend(H, e)
                                    rewriteAndRecover(H, Message[ExpectedButGot, Expected ',' before this., null, {string: ,}], ,)
                                      reportRecoverableError(e, Message[ExpectedButGot, Expected ',' before this., null, {string: ,}])
                                        listener: handleRecoverableError(Message[ExpectedButGot, Expected ',' before this., null, {string: ,}], e, e)
                                      rewriter()
                                    parseExpression(,)
                                      parsePrecedenceExpression(,, 1, true)
                                        parseUnaryExpression(,, true)
                                          parsePrimary(,, expression)
                                            parseSendOrFunctionLiteral(,, expression)
                                              parseSend(,, expression)
                                                isNextIdentifier(,)
                                                ensureIdentifier(,, expression)
                                                  listener: handleIdentifier(e, expression)
                                                listener: handleNoTypeArguments(l)
                                                parseArgumentsOpt(e)
                                                  listener: handleNoArguments(l)
                                                listener: handleSend(e, l)
                                    rewriteAndRecover(e, Message[ExpectedButGot, Expected ',' before this., null, {string: ,}], ,)
                                      reportRecoverableError(l, Message[ExpectedButGot, Expected ',' before this., null, {string: ,}])
                                        listener: handleRecoverableError(Message[ExpectedButGot, Expected ',' before this., null, {string: ,}], l, l)
                                      rewriter()
                                    parseExpression(,)
                                      parsePrecedenceExpression(,, 1, true)
                                        parseUnaryExpression(,, true)
                                          parsePrimary(,, expression)
                                            parseSendOrFunctionLiteral(,, expression)
                                              parseSend(,, expression)
                                                isNextIdentifier(,)
                                                ensureIdentifier(,, expression)
                                                  listener: handleIdentifier(l, expression)
                                                listener: handleNoTypeArguments(l)
                                                parseArgumentsOpt(l)
                                                  listener: handleNoArguments(l)
                                                listener: handleSend(l, l)
                                    rewriteAndRecover(l, Message[ExpectedButGot, Expected ',' before this., null, {string: ,}], ,)
                                      reportRecoverableError(l, Message[ExpectedButGot, Expected ',' before this., null, {string: ,}])
                                        listener: handleRecoverableError(Message[ExpectedButGot, Expected ',' before this., null, {string: ,}], l, l)
                                      rewriter()
                                    parseExpression(,)
                                      parsePrecedenceExpression(,, 1, true)
                                        parseUnaryExpression(,, true)
                                          parsePrimary(,, expression)
                                            parseSendOrFunctionLiteral(,, expression)
                                              parseSend(,, expression)
                                                isNextIdentifier(,)
                                                ensureIdentifier(,, expression)
                                                  listener: handleIdentifier(l, expression)
                                                listener: handleNoTypeArguments(o)
                                                parseArgumentsOpt(l)
                                                  listener: handleNoArguments(o)
                                                listener: handleSend(l, o)
                                    rewriteAndRecover(l, Message[ExpectedButGot, Expected ',' before this., null, {string: ,}], ,)
                                      reportRecoverableError(o, Message[ExpectedButGot, Expected ',' before this., null, {string: ,}])
                                        listener: handleRecoverableError(Message[ExpectedButGot, Expected ',' before this., null, {string: ,}], o, o)
                                      rewriter()
                                    parseExpression(,)
                                      parsePrecedenceExpression(,, 1, true)
                                        parseUnaryExpression(,, true)
                                          parsePrimary(,, expression)
                                            parseSendOrFunctionLiteral(,, expression)
                                              parseSend(,, expression)
                                                isNextIdentifier(,)
                                                ensureIdentifier(,, expression)
                                                  listener: handleIdentifier(o, expression)
                                                listener: handleNoTypeArguments(,)
                                                parseArgumentsOpt(o)
                                                  listener: handleNoArguments(,)
                                                listener: handleSend(o, ,)
                                    parseExpression(,)
                                      parsePrecedenceExpression(,, 1, true)
                                        parseUnaryExpression(,, true)
                                          parsePrimary(,, expression)
                                            parseSendOrFunctionLiteral(,, expression)
                                              parseSend(,, expression)
                                                isNextIdentifier(,)
                                                ensureIdentifier(,, expression)
                                                  listener: handleIdentifier(w, expression)
                                                listener: handleNoTypeArguments(o)
                                                parseArgumentsOpt(w)
                                                  listener: handleNoArguments(o)
                                                listener: handleSend(w, o)
                                    rewriteAndRecover(w, Message[ExpectedButGot, Expected ',' before this., null, {string: ,}], ,)
                                      reportRecoverableError(o, Message[ExpectedButGot, Expected ',' before this., null, {string: ,}])
                                        listener: handleRecoverableError(Message[ExpectedButGot, Expected ',' before this., null, {string: ,}], o, o)
                                      rewriter()
                                    parseExpression(,)
                                      parsePrecedenceExpression(,, 1, true)
                                        parseUnaryExpression(,, true)
                                          parsePrimary(,, expression)
                                            parseSendOrFunctionLiteral(,, expression)
                                              parseSend(,, expression)
                                                isNextIdentifier(,)
                                                ensureIdentifier(,, expression)
                                                  listener: handleIdentifier(o, expression)
                                                listener: handleNoTypeArguments(r)
                                                parseArgumentsOpt(o)
                                                  listener: handleNoArguments(r)
                                                listener: handleSend(o, r)
                                    rewriteAndRecover(o, Message[ExpectedButGot, Expected ',' before this., null, {string: ,}], ,)
                                      reportRecoverableError(r, Message[ExpectedButGot, Expected ',' before this., null, {string: ,}])
                                        listener: handleRecoverableError(Message[ExpectedButGot, Expected ',' before this., null, {string: ,}], r, r)
                                      rewriter()
                                    parseExpression(,)
                                      parsePrecedenceExpression(,, 1, true)
                                        parseUnaryExpression(,, true)
                                          parsePrimary(,, expression)
                                            parseSendOrFunctionLiteral(,, expression)
                                              parseSend(,, expression)
                                                isNextIdentifier(,)
                                                ensureIdentifier(,, expression)
                                                  listener: handleIdentifier(r, expression)
                                                listener: handleNoTypeArguments(l)
                                                parseArgumentsOpt(r)
                                                  listener: handleNoArguments(l)
                                                listener: handleSend(r, l)
                                    rewriteAndRecover(r, Message[ExpectedButGot, Expected ',' before this., null, {string: ,}], ,)
                                      reportRecoverableError(l, Message[ExpectedButGot, Expected ',' before this., null, {string: ,}])
                                        listener: handleRecoverableError(Message[ExpectedButGot, Expected ',' before this., null, {string: ,}], l, l)
                                      rewriter()
                                    parseExpression(,)
                                      parsePrecedenceExpression(,, 1, true)
                                        parseUnaryExpression(,, true)
                                          parsePrimary(,, expression)
                                            parseSendOrFunctionLiteral(,, expression)
                                              parseSend(,, expression)
                                                isNextIdentifier(,)
                                                ensureIdentifier(,, expression)
                                                  listener: handleIdentifier(l, expression)
                                                listener: handleNoTypeArguments(d)
                                                parseArgumentsOpt(l)
                                                  listener: handleNoArguments(d)
                                                listener: handleSend(l, d)
                                    rewriteAndRecover(l, Message[ExpectedButGot, Expected ',' before this., null, {string: ,}], ,)
                                      reportRecoverableError(d, Message[ExpectedButGot, Expected ',' before this., null, {string: ,}])
                                        listener: handleRecoverableError(Message[ExpectedButGot, Expected ',' before this., null, {string: ,}], d, d)
                                      rewriter()
                                    parseExpression(,)
                                      parsePrecedenceExpression(,, 1, true)
                                        parseUnaryExpression(,, true)
                                          parsePrimary(,, expression)
                                            parseSendOrFunctionLiteral(,, expression)
                                              parseSend(,, expression)
                                                isNextIdentifier(,)
                                                ensureIdentifier(,, expression)
                                                  listener: handleIdentifier(d, expression)
                                                listener: handleNoTypeArguments(!)
                                                parseArgumentsOpt(d)
                                                  listener: handleNoArguments(!)
                                                listener: handleSend(d, !)
                                        listener: handleNonNullAssertExpression(!)
                                    rewriteAndRecover(!, Message[ExpectedButGot, Expected ',' before this., null, {string: ,}], ,)
                                      reportRecoverableError("", Message[ExpectedButGot, Expected ',' before this., null, {string: ,}])
                                        listener: handleRecoverableError(Message[ExpectedButGot, Expected ',' before this., null, {string: ,}], "", "")
                                      rewriter()
                                    parseExpression(,)
                                      parsePrecedenceExpression(,, 1, true)
                                        parseUnaryExpression(,, true)
                                          parsePrimary(,, expression)
                                            parseLiteralString(,)
                                              parseSingleLiteralString(,)
                                                listener: beginLiteralString("")
                                                listener: endLiteralString(0, ))
                                    listener: endArguments(12, (, ))
                              listener: handleSend(t, ;)
                  ensureSemicolon())
                  listener: handleExpressionStatement(;)
          notEofOrValue(}, })
          listener: endBlockFunctionBody(3, {, })
        listener: endTopLevelMethod(i, null, })
  listener: endTopLevelDeclaration()
  reportAllErrorTokens(EncodingErrorToken())
    listener: handleErrorToken(EncodingErrorToken())
    listener: handleRecoverableError(Encoding, EncodingErrorToken(), EncodingErrorToken())
    listener: handleErrorToken(EncodingErrorToken())
    listener: handleRecoverableError(Encoding, EncodingErrorToken(), EncodingErrorToken())
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(UnterminatedString("))
    listener: handleRecoverableError(Message[UnterminatedString, String starting with " must end with "., null, {string: ", string2: "}], UnterminatedString("), UnterminatedString("))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(UnterminatedString("))
    listener: handleRecoverableError(Message[UnterminatedString, String starting with " must end with "., null, {string: ", string2: "}], UnterminatedString("), UnterminatedString("))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
    listener: handleErrorToken(AsciiControlCharacterToken(0))
    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
  listener: endCompilationUnit(114, )
