diff options
| author | Marc Vertes <mvertes@free.fr> | 2023-09-04 09:01:24 +0200 |
|---|---|---|
| committer | Marc Vertes <mvertes@free.fr> | 2023-09-04 09:01:24 +0200 |
| commit | 8feddd9b3eefb920c4a0c7a5b4c3b8ae160f3c71 (patch) | |
| tree | fe768d0321ed54dbf0e555d2b9aec7ded69b577b | |
| parent | 459eca16816023fb0afdd6e0948e5406d84e5bc5 (diff) | |
scan: fix scanning blocks with inner strings
| -rw-r--r-- | scanner/scan.go | 4 | ||||
| -rw-r--r-- | scanner/scan_test.go | 3 |
2 files changed, 5 insertions, 2 deletions
diff --git a/scanner/scan.go b/scanner/scan.go index ac2aa17..914f4bc 100644 --- a/scanner/scan.go +++ b/scanner/scan.go @@ -320,11 +320,11 @@ func (sc *Scanner) getBlock(src string, nstart int) (s string, ok bool) { } else if strings.HasSuffix(s, start) { n++ } else if m := sc.sdre.FindStringSubmatch(s); len(m) > 1 { - str, ok := sc.getStr(src[i:], len(m[1])) + str, ok := sc.getStr(src[nstart+i:], len(m[1])) if !ok { return s, false } - skip = i + len(str) - 1 + skip = nstart + i + len(str) - 1 } if n == 0 { if prop&ExcludeEnd != 0 { diff --git a/scanner/scan_test.go b/scanner/scan_test.go index 9450f62..bdd3176 100644 --- a/scanner/scan_test.go +++ b/scanner/scan_test.go @@ -152,4 +152,7 @@ def"`, }, { // #20 src: "println(3 /* argh ) */)", tok: `"println" "(3 /* argh ) */)" `, +}, { // #21 + src: `println("in f")`, + tok: `"println" "(\"in f\")" `, }} |
