aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/text/scanner/scanner.odin10
1 files changed, 10 insertions, 0 deletions
diff --git a/core/text/scanner/scanner.odin b/core/text/scanner/scanner.odin
index a3c44e909..bd1b24fe2 100644
--- a/core/text/scanner/scanner.odin
+++ b/core/text/scanner/scanner.odin
@@ -175,6 +175,16 @@ peek_n :: proc(s: ^Scanner, n: int) -> rune {
return ch;
}
+scan_peek_n :: proc(s: ^Scanner, n: int) -> (tok: rune) {
+ assert(n >= 0);
+ prev_s := s^;
+ for in 0..<n {
+ tok = scan(s);
+ }
+ tok = scan(s);
+ s^ = prev_s;
+ return;
+}
error :: proc(s: ^Scanner, msg: string) {
s.error_count += 1;