class SimplePoParser::Parser

def comment

Recalls line when the comment line was parsed
match a comment line. called on lines starting with '#'.
def comment
  begin
    case @scanner.getch
    when ' '
      skip_whitespace
      add_result(:translator_comment, comment_text)
      lines
    when '.'
      skip_whitespace
      add_result(:extracted_comment, comment_text)
      lines
    when ':'
      skip_whitespace
      add_result(:reference, comment_text)
      lines
    when ','
      skip_whitespace
      add_result(:flag, comment_text)
      lines
    when '|'
      skip_whitespace
      previous_comments
      lines
    when "\n"
      add_result(:translator_comment, "") # empty comment line
      lines
    when '~'
      if @result[:previous_msgctxt] || @result[:previous_msgid] || @result[:previous_msgid_plural]
        raise PoSyntaxError, "Previous comment entries need to be marked obsolete too in obsolete message entries. But already got: #{@result}"
      end
      skip_whitespace
      add_result(:obsolete, comment_text)
      obsoletes
    else
      @scanner.pos = @scanner.pos - 2
      raise PoSyntaxError, "Unknown comment type #{@scanner.peek(10).inspect}"
    end
  rescue PoSyntaxError => pe
    raise PoSyntaxError, "Syntax error in comment\n" + pe.message, pe.backtrace
  end
end