#foreign printf :: (str: String, ...) Token :: struct kind: U8 str: *U8 len: S64 Kind :: enum Number kind_name :: (kind: U8): String if kind == Token.Kind.Number return "" else return "" is_numeric :: (c: U8): Bool result := c >= '0 && c <= '9 return result entry :: () string_to_lex := "Identifier 2425525 Not_Number" token_array: [32]Token token_count: S64 = 0 t: Token for i := 0, i < string_to_lex.len, i+=1 if is_numeric(string_to_lex.str[i]) t.kind = Token.Kind.Number t.str = &string_to_lex.str[i] t.len = i for is_numeric(string_to_lex.str[i]) i+=1 t.len = i - t.len token_array[token_count++] = t for i := 0, i < token_count, i++ tk := &token_array[i] printf("%.*s", cast(tk.len: S32), tk.str)