mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 15:48:51 +00:00
Unify peek_n with peek and renamescan_peek_n to peek_token
This commit is contained in:
@@ -150,32 +150,26 @@ next :: proc(s: ^Scanner) -> rune {
|
|||||||
return ch;
|
return ch;
|
||||||
}
|
}
|
||||||
|
|
||||||
peek :: proc(s: ^Scanner) -> rune {
|
peek :: proc(s: ^Scanner, n := 0) -> (ch: rune) {
|
||||||
if s.ch == -2 {
|
if s.ch == -2 {
|
||||||
s.ch = advance(s);
|
s.ch = advance(s);
|
||||||
if s.ch == '\ufeff' { // Ignore BOM
|
if s.ch == '\ufeff' { // Ignore BOM
|
||||||
s.ch = advance(s);
|
s.ch = advance(s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return s.ch;
|
ch = s.ch;
|
||||||
}
|
if n > 0 {
|
||||||
|
prev_s := s^;
|
||||||
peek_n :: proc(s: ^Scanner, n: int) -> rune {
|
for in 0..<n {
|
||||||
assert(n >= 0);
|
next(s);
|
||||||
if n == 0 {
|
}
|
||||||
return peek(s);
|
ch = s.ch;
|
||||||
|
s^ = prev_s;
|
||||||
}
|
}
|
||||||
|
|
||||||
prev_s := s^;
|
|
||||||
for in 0..<n {
|
|
||||||
next(s);
|
|
||||||
}
|
|
||||||
ch := peek(s);
|
|
||||||
s^ = prev_s;
|
|
||||||
return ch;
|
return ch;
|
||||||
}
|
}
|
||||||
|
|
||||||
scan_peek_n :: proc(s: ^Scanner, n: int) -> (tok: rune) {
|
peek_token :: proc(s: ^Scanner, n := 0) -> (tok: rune) {
|
||||||
assert(n >= 0);
|
assert(n >= 0);
|
||||||
prev_s := s^;
|
prev_s := s^;
|
||||||
for in 0..<n {
|
for in 0..<n {
|
||||||
|
|||||||
Reference in New Issue
Block a user