ó
l2RTc           @   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-2014 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-irclogsk  
        (
          # 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(    (    (    s<   /usr/lib/python2.7/dist-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   ^".*"$s(   ^(msgid|msgid_plural|msgstr)(\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$   (    (    (    s<   /usr/lib/python2.7/dist-packages/pygments/lexers/textfmts.pyR   U   s    	c           B   sé   e  Z d  Z d Z d g Z e j 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   httpc         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   findt   content_typet   startR   R#   R   R   R
   (   t   selft   matchR4   (    (    s<   /usr/lib/python2.7/dist-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   (   R5   R   R0   R
   (   R6   R7   (    (    s<   /usr/lib/python2.7/dist-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(   NR4   iÿÿÿÿ(   t   get_lexer_for_mimetypet   +s   ^(.*)/.*\+(.*)$s   \1/\2(   t   getattrt   NoneR0   R5   t   pygments.lexersR:   R   t   subt   appendR   t   get_tokens_unprocessedR   (   R6   R7   R4   t   contentt   offsetR:   t   possible_lexer_mimetypest   general_typet   it   lexert   idxt   tokent   value(    (    s<   /usr/lib/python2.7/dist-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)R   s(   ([^\s:]+)( *)(:)( *)([^\r\n]+)(\r?\n|\Z)s   ([\t ]+)([^\r\n]+)(\r?\n|\Z)s   \r?\nRB   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(   t   text(    (    s<   /usr/lib/python2.7/dist-packages/pygments/lexers/textfmts.pyt   analyse_text¾   s    (   R   R   R   R   R   R   t   DOTALLR   R8   R9   RK   R   R   t   FunctionR   t	   NamespaceR   t   ReservedR   R   t	   ExceptionR$   RO   (    (    (    s<   /usr/lib/python2.7/dist-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$   (    (    (    s<   /usr/lib/python2.7/dist-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   (    (    (    s<   /usr/lib/python2.7/dist-packages/pygments/lexers/textfmts.pyt   <module>
   s   @?R