# File raggle, line 1073
      def self.each_token(source)
        if source 
          source.scan(PARSER_RE) do |tag, text|
            #p tag, text
            if tag
              if tag[0] == ?/
                yield :END_TAG, tag[1..-1], NO_ATTRIBUTES
              else
                if tag =~ /\A(\w+)\s*(.*)\z/m
                  attributes = NO_ATTRIBUTES
                  attributes = parse_attributes($2) if $2
                  yield :START_TAG, $1, attributes
                end
              end
            else
              yield :TEXT, text, NO_ATTRIBUTES unless text == ""
            end
          end
        end
      end