Skip to content

Commit 96d8971

Browse files
committed
Add peek_n to package text/scanner
1 parent 98c8fde commit 96d8971

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

core/text/scanner/scanner.odin

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,21 @@ peek :: proc(s: ^Scanner) -> rune {
160160
return s.ch;
161161
}
162162

163+
peek_n :: proc(s: ^Scanner, n: int) -> rune {
164+
assert(n >= 0);
165+
if n == 0 {
166+
return peek(s);
167+
}
168+
169+
prev_s := s^;
170+
for in 0..<n {
171+
next(s);
172+
}
173+
ch := peek(s);
174+
s^ = prev_s;
175+
return ch;
176+
}
177+
163178

164179
error :: proc(s: ^Scanner, msg: string) {
165180
s.error_count += 1;

0 commit comments

Comments
 (0)