diff --git a/src/new_scanner.zig b/src/new_scanner.zig index 2b48f48..340523b 100644 --- a/src/new_scanner.zig +++ b/src/new_scanner.zig @@ -150,12 +150,21 @@ pub const Scanner = struct { return self.makeToken(.NUMBER); } + fn doIdentifier(self: *Scanner) Token { + while (isAlphaNumeric(self.peek())) { + _ = self.advance(); + } + + return self.makeToken(.IDENTIFIER); + } + pub fn scanToken(self: *Scanner) !?Token { self.skipWhitespace(); self.start = self.current; if (self.isAtEnd()) return self.makeToken(TokenType.EOF); var c = self.advance(); + if (isAlpha(c)) return self.doIdentifier(); if (isDigit(c)) return self.doNumber(); var token = switch (c) {