ó
xiů\c           @   sć   d  Z  d d l Z d d l m Z m Z d d l m Z m Z m Z m	 Z	 m
 Z
 m Z m Z m Z m Z d d l m Z d d d d	 g Z d e f d
     YZ d	 e f d     YZ d e f d     YZ d e f d     YZ d S(   sŐ   
    pygments.lexers.textfmts
    ~~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for various text formats.

    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
i˙˙˙˙N(   t
   RegexLexert   bygroups(	   t   Textt   Commentt   Operatort   Keywordt   Namet   Stringt   Numbert   Generict   Literal(   t   ClassNotFoundt   IrcLogsLexert   TodotxtLexert	   HttpLexert   GettextLexerc           B   s  e  Z d  Z d Z d g Z d g Z d g Z e j e j	 BZ
 d Z i d e f d e d e e j e j  f d e d	 e e j e j  d
 f d e d e e j e e j  f d e d e e j e e e  f d e f g d 6d e j f d e d f g d
 6Z RS(   sD   
    Lexer for IRC logs in *irssi*, *xchat* or *weechat* style.
    s   IRC logst   ircs   *.weechatlogs   text/x-irclogsf  
        (
          # irssi / xchat and others
          (?: \[|\()?                  # Opening bracket or paren for the timestamp
            (?:                        # Timestamp
                (?: (?:\d{1,4} [-/])*  # Date as - or /-separated groups of digits
                    (?:\d{1,4})
                 [T ])?                # Date/time separator: T or space
                (?: \d?\d [:.])*       # Time as :/.-separated groups of 1 or 2 digits
                    (?: \d?\d)
            )
          (?: \]|\))?\s+               # Closing bracket or paren for the timestamp
        |
          # weechat
          \d{4}\s\w{3}\s\d{2}\s        # Date
          \d{2}:\d{2}:\d{2}\s+         # Time + Whitespace
        |
          # xchat
          \w{3}\s\d{2}\s               # Date
          \d{2}:\d{2}:\d{2}\s+         # Time + Whitespace
        )?
    s   ^\*\*\*\*(.*)\*\*\*\*$t   ^s   (\s*<[^>]*>\s*)$s/   
                (\s*<.*?>\s*)          # Nick t   msgso   
                (\s*[*]\s+)            # Star
                (\S+\s+.*?\n)          # Nick + rest of message sĹ   
                (\s*(?:\*{3}|<?-[!@=P]?->?)\s*)  # Star(s) or symbols
                (\S+\s+)                     # Nick + Space
                (.*?\n)                         # Rest of message s   ^.*?\nt   roots
   \S+:(?!//)s   .*\ns   #pop(   t   __name__t
   __module__t   __doc__t   namet   aliasest	   filenamest	   mimetypest   ret   VERBOSEt	   MULTILINEt   flagst	   timestampR   R   t   PreprocR   t   TagR   R	   t   InsertedR   R   t	   Attributet   tokens(    (    (    s7   lib/python2.7/site-packages/pygments/lexers/textfmts.pyR      s,   				 c           B   sÉ   e  Z d  Z d Z d d g Z d d g Z d d d g Z i d	 e j f d
 e j	 f d e
 j f d e e e j e  f d e f d e e j e e  f d e e j e j e j e e  f g d 6Z RS(   sE   
    Lexer for Gettext catalog files.

    .. versionadded:: 0.9
    s   Gettext Catalogt   pott   pos   *.pots   *.pos   application/x-gettexts   text/x-gettexts   text/gettexts	   ^#,\s.*?$s	   ^#:\s.*?$s   ^(#|#\.\s|#\|\s|#~\s|#\s).*$s   ^(")([A-Za-z-]+:)(.*")$s   ^".*"$s0   ^(msgid|msgid_plural|msgstr|msgctxt)(\s+)(".*")$s   ^(msgstr\[)(\d)(\])(\s+)(".*")$R   (   R   R   R   R   R   R   R   R   t   Typet   DeclarationR   t   SingleR   R   R   t   Propertyt   VariableR   R   t   IntegerR$   (    (    (    s7   lib/python2.7/site-packages/pygments/lexers/textfmts.pyR   U   s    	c           B   ső   e  Z d  Z d Z d g Z e j Z d d  Z d   Z	 d   Z
 d   Z i d e e j e e j e e j e e e  d	 f d
 e e j e e e e e e j e  d	 f g d 6d e	 f d e
 f d e d f g d	 6d e f g d 6Z d   Z RS(   s=   
    Lexer for HTTP sessions.

    .. versionadded:: 1.5
    t   HTTPt   httpR   c         C   s   d |  _ t j |  | |  S(   s   Reset the content-type state.N(   t   Nonet   content_typeR    t   get_tokens_unprocessed(   t   selft   textt   stack(    (    s7   lib/python2.7/site-packages/pygments/lexers/textfmts.pyR1   }   s    	c         c   s+  | j  d  j   d k rd | j  d  j   } d | k rX | | j d   j   } n  | |  _ n  | j d  t j | j  d  f V| j d  t | j  d  f V| j d  t	 | j  d  f V| j d  t | j  d  f V| j d  t
 | j  d  f V| j d  t | j  d  f Vd  S(	   Ni   s   content-typei   t   ;i   i   i   i   (   t   groupt   lowert   stript   findR0   t   startR   R#   R   R   R
   (   R2   t   matchR0   (    (    s7   lib/python2.7/site-packages/pygments/lexers/textfmts.pyt   header_callback   s    #    c         c   sd   | j  d  t | j d  f V| j  d  t | j d  f V| j  d  t | j d  f Vd  S(   Ni   i   i   (   R:   R   R6   R
   (   R2   R;   (    (    s7   lib/python2.7/site-packages/pygments/lexers/textfmts.pyt   continuous_header_callback   s      c         c   sý   t  |  d d   } | j   } | j   } | rë d d l m } | g } d | k rz t j d d |  } | j |  n  xn | D]c } y | |  }	 Wn t	 k
 rŞ q Xx2 |	 j
 |  D]! \ }
 } } | |
 | | f Vqť Wd  Sq Wn  | t | f Vd  S(   NR0   i˙˙˙˙(   t   get_lexer_for_mimetypet   +s   ^(.*)/.*\+(.*)$s   \1/\2(   t   getattrR/   R6   R:   t   pygments.lexersR>   R   t   subt   appendR   R1   R   (   R2   R;   R0   t   contentt   offsetR>   t   possible_lexer_mimetypest   general_typet   it   lexert   idxt   tokent   value(    (    s7   lib/python2.7/site-packages/pygments/lexers/textfmts.pyt   content_callback   s&    		sY   (GET|POST|PUT|DELETE|HEAD|OPTIONS|TRACE|PATCH)( +)([^ ]+)( +)(HTTP)(/)(1\.[01])(\r?\n|\Z)t   headerss5   (HTTP)(/)(1\.[01])( +)(\d{3})( +)([^\r\n]+)(\r?\n|\Z)s(   ([^\s:]+)( *)(:)( *)([^\r\n]+)(\r?\n|\Z)s   ([\t ]+)([^\r\n]+)(\r?\n|\Z)s   \r?\nRD   s   .+c      	   C   s   |  j  d	  S(
   Ns   GET /s   POST /s   PUT /s   DELETE /s   HEAD /s	   OPTIONS /s   TRACE /s   PATCH /(   s   GET /s   POST /s   PUT /s   DELETE /s   HEAD /s	   OPTIONS /s   TRACE /s   PATCH /(   t
   startswith(   R3   (    (    s7   lib/python2.7/site-packages/pygments/lexers/textfmts.pyt   analyse_textĂ   s    (   R   (   R   R   R   R   R   R   t   DOTALLR   R1   R<   R=   RM   R   R   t   FunctionR   t	   NamespaceR   t   ReservedR   R   t	   ExceptionR$   RP   (    (    (    s7   lib/python2.7/site-packages/pygments/lexers/textfmts.pyR   q   s,   							c           B   sŹ  e  Z d  Z d Z d g Z d d g Z d g Z e Z e	 Z
 e j Z e j Z e j Z e Z d Z d Z d Z d	 Z d
 e d Z e d e d Z d e d e d Z i e e e e e e  d f e e e e  d f e e e e
 e  d f e e d f e e d f e e d f e e d f d e
 d f g d 6d e d f e e f e e f d e f d e f g d 6d e
 d f e e f e e f d e
 f d e
 f g d 6Z RS(   sb   
    Lexer for `Todo.txt <http://todotxt.com/>`_ todo list format.

    .. versionadded:: 2.0
    t   Todotxtt   todotxts   todo.txts	   *.todotxts   text/x-todos   \d{4,}-\d{2}-\d{2}s	   \([A-Z]\)s   \+\S+s   @\S+s   (x )(t   )s   ( )(t   (s   )( )(t   completet
   incompletes   \S+R   s   \s*\ns   #pops   \s+(   R   R   R   R   R   R   R   R   t   CompleteTaskTextR   t   IncompleteTaskTextR	   t   Headingt   Priorityt
   Subheadingt   Datet   Errort   ProjectR   t   Contextt
   date_regext   priority_regext   project_regext   context_regext   complete_one_date_regext   complete_two_date_regext   priority_date_regexR   R$   (    (    (    s7   lib/python2.7/site-packages/pygments/lexers/textfmts.pyR   Č   sR   												(   R   R   t   pygments.lexerR    R   t   pygments.tokenR   R   R   R   R   R   R   R	   R
   t   pygments.utilR   t   __all__R   R   R   R   (    (    (    s7   lib/python2.7/site-packages/pygments/lexers/textfmts.pyt   <module>
   s   @?W