Repository: effekt-lang/effekt (scala)

Issue:
Parse '\'' correctly
Currently `'\''` doesn't ~~parse~~ _lex_, but it really should :)
See details below.

cc @b-studios

Pull request description:
Fixes #724.

Patch:
diff --git a/effekt/shared/src/main/scala/effekt/Lexer.scala b/effekt/shared/src/main/scala/effekt/Lexer.scala
index 32049d7c1..53f52c991 100644
--- a/effekt/shared/src/main/scala/effekt/Lexer.scala
+++ b/effekt/shared/src/main/scala/effekt/Lexer.scala
@@ -434,6 +434,7 @@ class Lexer(source: Source) {
           expect('\\')
           peek() match {
             case Some('"') => consume(); stringContent.addOne('"')
+            case Some('\'') => consume(); stringContent.addOne('\'')
             case Some('n') => consume(); stringContent.addOne('\n')
             case Some('t') => consume(); stringContent.addOne('\t')
             case Some('r') => consume(); stringContent.addOne('\r')


Test patch:
diff --git a/effekt/jvm/src/test/scala/effekt/LexerTests.scala b/effekt/jvm/src/test/scala/effekt/LexerTests.scala
index 53f013dae..f1049c3da 100644
--- a/effekt/jvm/src/test/scala/effekt/LexerTests.scala
+++ b/effekt/jvm/src/test/scala/effekt/LexerTests.scala
@@ -98,6 +98,10 @@ class LexerTests extends munit.FunSuite {
     assertFailure("\"\\k\"")
     assertTokensEq("\"\\u001b\"", Str("\u001b", false), EOF)
     assertTokensEq("\"\\u{001b}\"", Str("\u001b", false), EOF)
+    assertTokensEq("'\\\''", Chr(39), EOF)
+    assertTokensEq("\"'\"", Str("'", false), EOF)
+    assertTokensEq("'\\\"'", Chr(34), EOF)
+    assertTokensEq("\"\\\"\"", Str("\"", false), EOF)
   }
 
   test("characters") {