# File lib/kwartz/parser.rb, line 658
    def scan_hook
      ## comment
      c = @ch
      if c == ?/
        c = getch()
        if c == ?/      # line comment
          scan_line()
          getch()
          return scan()
        elsif c == ?*   # region comment
          start_linenum = @linenum
          while true
            c = getch() while c != ?*
            break if c == nil
            c = getch()
            break if c == ?/
          end
          if c == nil
            @error = :comment_unclosed
            @value = start_linenum
            return @token == :error
          end
          getch()
          return scan()
        else
          @value = '/'
          return @token = ?/
        end #if
      end #if

      ##
      if @mode == :selector
        # '#name' or '.name'
        if c == ?# || c == ?.
          start_char = c
          name = ''
          while is_identchar(c = getch()) || c == ?-
            name << c
          end
          if name.empty?
            @error = :invalid_char
            @value = start_char.chr
            return @token = :error
          end
          @value = start_char.chr + name
          return @token = :selector
        end
        # 'tagname'
        if is_identchar(c) || c == ?-
          name = c.chr
          while is_identchar(c = getch()) || c == ?- || c == ?:
            name << c
          end
          @value = name
          return @token = :selector
        end
        # '@import'
        if c == ?@
          name = ''
          while is_identchar(c = getch())
            name << c
          end
          if name.empty?
            @error = :invalid_char
            @value = '@'
            return @token = :error
          end
          @value = '@' + name
          return @token = :command
        end
      end

      return false

    end