From d62c58a1956989a5e001f981005b6590039a0fc0 Mon Sep 17 00:00:00 2001 From: Luna Date: Sat, 1 Jun 2019 17:15:27 -0300 Subject: [PATCH] scanner: add identifiers --- src/new_scanner.zig | 9 +++++++++ 1 file changed, 9 insertions(+) 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) {