
xi\c           @   s   d  Z  d d l m Z m Z m Z m Z m Z m Z d d l m	 Z	 m
 Z
 m Z m Z m Z m Z m Z m Z d g Z d e f d     YZ d S(   s   
    pygments.lexers.qvt
    ~~~~~~~~~~~~~~~~~~~

    Lexer for QVT Operational language.

    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
i(   t
   RegexLexert   bygroupst   includet   combinedt   defaultt   words(   t   Textt   Commentt   Operatort   Keywordt   Punctuationt   Namet   Stringt   Numbert	   QVToLexerc        [   B   s  e  Z d  Z d Z d d g Z d g Z i d e f d e f d e e e e j	 e  f d e j
 f d	 e f d
 e j f d e j f d e f d e f d e f d e j f d e j j f d e j f d e j d f d e e j e e j  f d e e j e e j  f d e j f d e e j e  d f d e e e  d f d e j f e d  d e e d d  f d  e e d d!  f e d"  e d#  g d$ 6d% e f d& e j f e d'  g d 6d( e f d) e e e j e e  d' f g d 6d* e d' f e d'  g d 6e d d d e f g d 6d e f d e f g d 6d e j f g d 6d e d' f d e j f e d  g d 6d  e d' f d e j f e d  g d! 6d e f g d" 6d e j  f d e j  f d e j! f g d# 6Z" RS(   u  
    For the `QVT Operational Mapping language <http://www.omg.org/spec/QVT/1.1/>`_.

    Reference for implementing this: «Meta Object Facility (MOF) 2.0
    Query/View/Transformation Specification», Version 1.1 - January 2011
    (http://www.omg.org/spec/QVT/1.1/), see §8.4, «Concrete Syntax» in
    particular.

    Notable tokens assignments:

    - Name.Class is assigned to the identifier following any of the following
      keywords: metamodel, class, exception, primitive, enum, transformation
      or library

    - Name.Function is assigned to the names of mappings and queries

    - Name.Builtin.Pseudo is assigned to the pre-defined variables 'this',
      'self' and 'result'.
    t   QVTOt   qvtot   qvts   *.qvtos   \ns   [^\S\n]+s   (--|//)(\s*)(directive:)?(.*)$s   /[*](.|\n)*?[*]/s   \\\ns   (and|not|or|xor|##?)\bs   (:{1,2}=|[-+]=)\bs   (@|<<|>>)\bs,   !=|<>|==|=|!->|->|>=|<=|[.]{3}|[+/*%=<>&|.~]s   []{}:(),;[]s   (true|false|unlimited|null)\bs   (this|self|result)\bs   (var)\bs   (from|import)\bt
   fromimportsK   (metamodel|class|exception|primitive|enum|transformation|library)(\s+)(\w+)s   (exception)(\s+)(\w+)s   (main)\bs   (mapping|helper|query)(\s+)t	   operations   (assert)(\s+)\bt   asserts:   (Bag|Collection|Dict|OrderedSet|Sequence|Set|Tuple|List)\bt   keywordst   "t   stringescapet   dqst   't   sqst   namet   numberst   roots   (?:[ \t]|\\\n)+s   [a-zA-Z_][\w.]*s   #pops   ::s    (.*::)([a-zA-Z_]\w*)([ \t]*)(\()s   (warning|error|fatal)\bt   abstractt   accesst   anyt   blackboxt   breakt   caset   collectt   collectNestedt
   collectOnet   collectselectt   collectselectOnet   composest   computet   configurationt   constructort   continuet   datatypeR   t   derivedt	   disjunctst   dot   elift   elset   endt   endift   exceptt   existst   extendst   forAllt   forEacht   forOnet   fromt   ift   impliest   int   inheritst   initt   inoutt   intermediatet
   invresolvet   invresolveInt   invresolveonet   invresolveoneInt   isUniquet   iteratet   latet   lett   literalt   logt   mapt   mergest	   modeltypet   newt   objectt   onet   orderedt   outt   packaget
   populationt   propertyt   raiset   readonlyt
   referencest   refinest   rejectt   resolvet	   resolveInt
   resolveonet   resolveoneInt   returnt   selectt	   selectOnet   sortedByt   statict   switcht   tagt   thent   tryt   typedeft	   unlimitedt   usest   whent   wheret   whilet   witht   xcollectt   xmapt   xselectt   suffixs   \bs   [^\\\'"\n]+s   [\'"\\]t   stringss+   \\([\\btnfr"\']|u[0-3][0-7]{2}|u[0-7]{1,2})s   \\\\|\\"s   \\\\|\\'s   [a-zA-Z_]\w*s%   (\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?s   \d+[eE][+-]?[0-9]+s   \d+(Y   R   R   R    R   R!   R"   R#   R$   R%   R&   R'   R(   R)   R*   R+   R,   R-   R.   R   R/   R0   R1   R2   R3   R4   R5   R6   R7   R8   R9   R:   R;   R<   R=   R>   R?   R@   RA   RB   RC   RD   RE   RF   RG   RH   RI   RJ   RK   RL   RM   RN   RO   RP   RQ   RR   RS   RT   RU   RV   RW   RX   RY   RZ   R[   R\   R]   R^   R_   R`   Ra   Rb   Rc   Rd   Re   Rf   Rg   Rh   Ri   Rj   Rk   Rl   Rm   Rn   Ro   Rp   Rq   Rr   Rs   Rt   (#   t   __name__t
   __module__t   __doc__R   t   aliasest	   filenamesR   R   R   t   Preproct	   MultilineR   t   WordR	   R
   t   ConstantR   t   Builtint   Pseudot   Declarationt	   Namespacet   Classt	   Exceptiont   Functiont   TypeR   R   R   R   R   t   EscapeR   t   Floatt   Integert   tokens(    (    (    s2   lib/python2.7/site-packages/pygments/lexers/qvt.pyR      s   												"               	N(   Ry   t   pygments.lexerR    R   R   R   R   R   t   pygments.tokenR   R   R   R	   R
   R   R   R   t   __all__R   (    (    (    s2   lib/python2.7/site-packages/pygments/lexers/qvt.pyt   <module>
   s   .:	