Problems reported:

parser/coverage/string1:6:10: Expected ';' after this.
  return "æble
         ^^^^^

parser/coverage/string1:10:12: Expected ';' after this.
  return "$1"
           ^^

parser/coverage/string1:14:10: Expected ';' after this.
  return r"æble$"
         ^^^^^^^^

parser/coverage/string1:18:10: Expected ';' after this.
  return r"æble$
         ^^^^^^^

parser/coverage/string1:23:10: Expected ';' after this.
  return r"æble
         ^^^^^^

parser/coverage/string1:6:10: String starting with " must end with ".
  return "æble
         ^^^^^

parser/coverage/string1:10:12: A '$' has special meaning inside a string, and must be followed by an identifier or an expression in curly braces ({}).
  return "$1"
           ^

parser/coverage/string1:18:10: String starting with r" must end with ".
  return r"æble$
         ^^^^^^^

parser/coverage/string1:23:10: String starting with r" must end with ".
  return r"æble
         ^^^^^^

parser/coverage/string1:21:16: Can't find '}' to match '{'.
String corge() {
               ^

beginCompilationUnit(String)
  beginMetadataStar(String)
  endMetadataStar(0)
  beginTopLevelMember(String)
    beginTopLevelMethod(UnmatchedToken({), null, null)
      handleIdentifier(String, typeReference)
      handleNoTypeArguments(foo)
      handleType(String, null)
      handleIdentifier(foo, topLevelFunctionDeclaration)
      handleNoTypeVariables(()
      beginFormalParameters((, MemberKind.TopLevelMethod)
        beginMetadataStar(dynamic)
        endMetadataStar(0)
        beginFormalParameter(dynamic, MemberKind.TopLevelMethod, null, null, null)
          handleIdentifier(dynamic, typeReference)
          handleNoTypeArguments(bar)
          handleType(dynamic, null)
          handleIdentifier(bar, formalParameterDeclaration)
          handleFormalParameterWithoutValue())
        endFormalParameter(null, null, null, null, bar, null, null, FormalParameterKind.requiredPositional, MemberKind.TopLevelMethod)
      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
      handleAsyncModifier(null, null)
      beginBlockFunctionBody({)
        beginReturnStatement(return)
          beginLiteralString("æble )
            handleIdentifier(bar, expression)
            handleNoTypeArguments(")
            handleNoArguments(")
            handleSend(bar, bar)
            handleInterpolationExpression($, null)
            handleStringPart(")
          endLiteralString(1, ")
        endReturnStatement(true, return, ;)
      endBlockFunctionBody(1, {, })
    endTopLevelMethod(String, null, })
  endTopLevelDeclaration(})
  beginMetadataStar(String)
  endMetadataStar(0)
  beginTopLevelMember(String)
    beginTopLevelMethod(}, null, null)
      handleIdentifier(String, typeReference)
      handleNoTypeArguments(bar)
      handleType(String, null)
      handleIdentifier(bar, topLevelFunctionDeclaration)
      handleNoTypeVariables(()
      beginFormalParameters((, MemberKind.TopLevelMethod)
      endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
      handleAsyncModifier(null, null)
      beginBlockFunctionBody({)
        beginReturnStatement(return)
          beginLiteralString("æble")
          endLiteralString(0, "æble")
          handleRecoverableError(Message[Template(ExpectedAfterButGot), Expected ';' after this., null, {expected: ;}], "æble", "æble")
        endReturnStatement(true, return, ;)
      endBlockFunctionBody(1, {, })
    endTopLevelMethod(String, null, })
  endTopLevelDeclaration(})
  beginMetadataStar(String)
  endMetadataStar(0)
  beginTopLevelMember(String)
    beginTopLevelMethod(}, null, null)
      handleIdentifier(String, typeReference)
      handleNoTypeArguments(baz)
      handleType(String, null)
      handleIdentifier(baz, topLevelFunctionDeclaration)
      handleNoTypeVariables(()
      beginFormalParameters((, MemberKind.TopLevelMethod)
      endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
      handleAsyncModifier(null, null)
      beginBlockFunctionBody({)
        beginReturnStatement(return)
          beginLiteralString(")
            handleIdentifier(, expression)
            handleNoTypeArguments(1")
            handleNoArguments(1")
            handleSend(, )
            handleInterpolationExpression($, null)
            handleStringPart(1")
          endLiteralString(1, 1")
          handleRecoverableError(Message[Template(ExpectedAfterButGot), Expected ';' after this., null, {expected: ;}], 1", 1")
        endReturnStatement(true, return, ;)
      endBlockFunctionBody(1, {, })
    endTopLevelMethod(String, null, })
  endTopLevelDeclaration(})
  beginMetadataStar(String)
  endMetadataStar(0)
  beginTopLevelMember(String)
    beginTopLevelMethod(}, null, null)
      handleIdentifier(String, typeReference)
      handleNoTypeArguments(qux)
      handleType(String, null)
      handleIdentifier(qux, topLevelFunctionDeclaration)
      handleNoTypeVariables(()
      beginFormalParameters((, MemberKind.TopLevelMethod)
      endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
      handleAsyncModifier(null, null)
      beginBlockFunctionBody({)
        beginReturnStatement(return)
          beginLiteralString(r"æble$")
          endLiteralString(0, r"æble$")
          handleRecoverableError(Message[Template(ExpectedAfterButGot), Expected ';' after this., null, {expected: ;}], r"æble$", r"æble$")
        endReturnStatement(true, return, ;)
      endBlockFunctionBody(1, {, })
    endTopLevelMethod(String, null, })
  endTopLevelDeclaration(})
  beginMetadataStar(String)
  endMetadataStar(0)
  beginTopLevelMember(String)
    beginTopLevelMethod(}, null, null)
      handleIdentifier(String, typeReference)
      handleNoTypeArguments(quux)
      handleType(String, null)
      handleIdentifier(quux, topLevelFunctionDeclaration)
      handleNoTypeVariables(()
      beginFormalParameters((, MemberKind.TopLevelMethod)
      endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
      handleAsyncModifier(null, null)
      beginBlockFunctionBody({)
        beginReturnStatement(return)
          beginLiteralString(r"æble$")
          endLiteralString(0, r"æble$")
          handleRecoverableError(Message[Template(ExpectedAfterButGot), Expected ';' after this., null, {expected: ;}], r"æble$", r"æble$")
        endReturnStatement(true, return, ;)
      endBlockFunctionBody(1, {, })
    endTopLevelMethod(String, null, })
  endTopLevelDeclaration(})
  beginMetadataStar(String)
  endMetadataStar(0)
  beginTopLevelMember(String)
    beginTopLevelMethod(}, null, null)
      handleIdentifier(String, typeReference)
      handleNoTypeArguments(corge)
      handleType(String, null)
      handleIdentifier(corge, topLevelFunctionDeclaration)
      handleNoTypeVariables(()
      beginFormalParameters((, MemberKind.TopLevelMethod)
      endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
      handleAsyncModifier(null, null)
      beginBlockFunctionBody({)
        beginReturnStatement(return)
          beginLiteralString(r"æble")
          endLiteralString(0, r"æble")
          handleRecoverableError(Message[Template(ExpectedAfterButGot), Expected ';' after this., null, {expected: ;}], r"æble", r"æble")
        endReturnStatement(true, return, ;)
      endBlockFunctionBody(1, {, })
    endTopLevelMethod(String, null, })
  endTopLevelDeclaration(})
  handleErrorToken(UnterminatedString("))
  handleRecoverableError(Message[Template(UnterminatedString), String starting with " must end with "., null, {openQuote: ", expectedCloseQuote: "}], UnterminatedString("), UnterminatedString("))
  handleErrorToken(UnterminatedToken(UnexpectedDollarInString))
  handleRecoverableError(UnexpectedDollarInString, UnterminatedToken(UnexpectedDollarInString), UnterminatedToken(UnexpectedDollarInString))
  handleErrorToken(UnterminatedString(r"))
  handleRecoverableError(Message[Template(UnterminatedString), String starting with r" must end with "., null, {openQuote: r", expectedCloseQuote: "}], UnterminatedString(r"), UnterminatedString(r"))
  handleErrorToken(UnterminatedString(r"))
  handleRecoverableError(Message[Template(UnterminatedString), String starting with r" must end with "., null, {openQuote: r", expectedCloseQuote: "}], UnterminatedString(r"), UnterminatedString(r"))
  handleErrorToken(UnmatchedToken({))
  handleRecoverableError(Message[Template(UnmatchedToken), Can't find '}' to match '{'., null, {expected: }, lexeme: {}], UnmatchedToken({), UnmatchedToken({))
endCompilationUnit(6, )
