class SimplePoParser::Parser

def previous_comments

* #| msgid_plural
* #| msgid
* #| msgctxt
previous comments are:

parses previous comments, which provide additional information on fuzzy matching
def previous_comments
  begin
    # next part must be msgctxt, msgid or msgid_plural
    if @scanner.scan(/msg/)
      if @scanner.scan(/id/)
        if @scanner.scan(/_plural/)
          key = :previous_msgid_plural
        else
          key = :previous_msgid
        end
      elsif @scanner.scan(/ctxt/)
        key = :previous_msgctxt
      else
        raise PoSyntaxError, "Previous comment type #{("msg" + @scanner.peek(10)).inspect} unknown."
      end
      skip_whitespace
      text = message_line
      add_result(key, text)
      previous_multiline(key) if @scanner.match?(/#\|\p{Blank}*"/)
    else
      raise PoSyntaxError, "Previous comments must start with '#| msg'. #{@scanner.peek(10).inspect} unknown."
    end
  rescue PoSyntaxError => pe
    raise PoSyntaxError, "Syntax error in previous_comments\n" + pe.message, pe.backtrace
  end
end