Fix incorrect string escaping by kaathewisegit · Pull Request #386 · boyter/scc

Previously, only one char got checked for escapes when parsing strings. This meant that strings such as "\" never got terminated, leading to incorrect parsing.

This commit adds a check which calculates the number of escapes pre-string ending to determine wherever the last escape is itself escaped or not.

This was prompted by issue #345, I also added a test case for it.

One important note is that I am unsure how much that impacts performance. The for loop is only accessed if the string has an escape before it, so it should be a fairly rare path.