§
    £E±c¸  ã                   ót   — 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 G d„ de¦  «        ZdS )zÎ
    pygments.lexers.qvt
    ~~~~~~~~~~~~~~~~~~~

    Lexer for QVT Operational language.

    :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    )Ú
RegexLexerÚbygroupsÚincludeÚcombinedÚdefaultÚwords)ÚTextÚCommentÚOperatorÚKeywordÚPunctuationÚNameÚStringÚNumberÚ	QVToLexerc                   óz  — e Zd ZdZdZddgZdgZ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%efd&ej        f ed'¦  «        gd(efd) eeej        ee¦  «        d'fgd*ed'f ed'¦  «        g ed+d,¬-¦  «        efgd.efd/efgd0ej        fgded'fd1ej        f ed2¦  «        gd!ed'fd3ej        f ed2¦  «        gd4efgd5e j!        fd6e j!        fd7e j"        fgd8œZ#d9S ):r   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'.
    ÚQVTOÚqvtoÚqvtz*.qvtoz\nz[^\S\n]+z(--|//)(\s*)(directive:)?(.*)$z/[*](.|\n)*?[*]/z\\\nz(and|not|or|xor|##?)\bz(:{1,2}=|[-+]=)\bz(@|<<|>>)\bz,!=|<>|==|=|!->|->|>=|<=|[.]{3}|[+/*%=<>&|.~]z[]{}:(),;[]z(true|false|unlimited|null)\bz(this|self|result)\bz(var)\bz(from|import)\bÚ
fromimportzK(metamodel|class|exception|primitive|enum|transformation|library)(\s+)(\w+)z(exception)(\s+)(\w+)z(main)\bz(mapping|helper|query)(\s+)Ú	operationz(assert)(\s+)\bÚassertz:(Bag|Collection|Dict|OrderedSet|Sequence|Set|Tuple|List)\bÚkeywordsú"ÚstringescapeÚdqsú'ÚsqsÚnameÚnumbersz(?:[ \t]|\\\n)+z[a-zA-Z_][\w.]*z#popz::z (.*::)([a-zA-Z_]\w*)([ \t]*)(\()z(warning|error|fatal)\b)YÚabstractÚaccessÚanyr   ÚblackboxÚbreakÚcaseÚcollectÚcollectNestedÚ
collectOneÚcollectselectÚcollectselectOneÚcomposesÚcomputeÚconfigurationÚconstructorÚcontinueÚdatatyper   ÚderivedÚ	disjunctsÚdoÚelifÚelseÚendÚendifÚexceptÚexistsÚextendsÚforAllÚforEachÚforOneÚfromÚifÚimpliesÚinÚinheritsÚinitÚinoutÚintermediateÚ
invresolveÚinvresolveInÚinvresolveoneÚinvresolveoneInÚisUniqueÚiterateÚlateÚletÚliteralÚlogÚmapÚmergesÚ	modeltypeÚnewÚobjectÚoneÚorderedÚoutÚpackageÚ
populationÚpropertyÚraiseÚreadonlyÚ
referencesÚrefinesÚrejectÚresolveÚ	resolveInÚ
resolveoneÚresolveoneInÚreturnÚselectÚ	selectOneÚsortedByÚstaticÚswitchÚtagÚthenÚtryÚtypedefÚ	unlimitedÚusesÚwhenÚwhereÚwhileÚwithÚxcollectÚxmapÚxselectz\b)Úsuffixz[^\\\'"\n]+z[\'"\\]z+\\([\\btnfr"\']|u[0-3][0-7]{2}|u[0-7]{1,2})z\\\\|\\"Ústringsz\\\\|\\'z[a-zA-Z_]\w*z%(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?z\d+[eE][+-]?[0-9]+z\d+)Úrootr   r   r   r   ry   r   r   r   r   r    N)$Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚaliasesÚ	filenamesr	   r   r
   ÚPreprocÚ	Multiliner   ÚWordr   r   ÚConstantr   ÚBuiltinÚPseudoÚDeclarationÚ	NamespaceÚClassÚ	ExceptionÚFunctionÚTyper   r   r   r   r   ÚEscaper   ÚFloatÚIntegerÚtokens© ó    ú5/usr/lib/python3/dist-packages/pygments/lexers/qvt.pyr   r      s  € € € € € ðð ð* €DØ�uˆo€GØ�
€Ið �DˆMØ˜$ÐØ.ØˆX�g˜w¨¬¸ÑAÔAðCð
 ! 'Ô"3Ð4Ø�dˆOØ&¨¬Ð6Ø! 8¤=Ð1Ø˜WÐ%Ø<¸hÐGØ˜[Ð)Ø-¨wÔ/?Ð@Ø$ d¤lÔ&9Ð:Ø˜Ô,Ð-Ø Ô!2°LÐAð#àˆX�g”l D¨$¬*Ñ5Ô5ð7ð &ØˆX�g”l D¨$¬.Ñ9Ô9ð;à˜$œ-Ð(Ø+ØˆX�gÔ)¨4Ñ0Ô0°+ð?à  ¨'°4Ñ!8Ô!8¸(ÐCØJØŒ\ðàˆG�JÑÔØ�&˜(˜( >°5Ñ9Ô9Ð:Ø�&˜(˜( >°5Ñ9Ô9Ð:ØˆG�F‰OŒOØˆG�IÑÔðE%
ðP   Ð&Ø ¤Ð0ØˆG�F‰OŒOð
ð �DˆMØ0ØˆX�d˜DœM¨4°Ñ=Ô=¸vðGð
ð (¨°&Ð9ØˆG�F‰OŒOð
ð ˆUð #ð  ,1ð!2ñ 2ô 2ð  4;ð!<ð
ð. ˜VÐ$à˜Ð ð
ð <¸V¼]ÐKð
ð �6˜6Ð"Ø˜&œ-Ð(ØˆG�IÑÔð
ð �6˜6Ð"Ø˜&œ-Ð(ØˆG�IÑÔð
ð ˜dÐ#ð
ð
 6°v´|ÐDØ" F¤LÐ1Ø�V”^Ð$ð
ðKjð j€F€F€Fr’   N)r~   Úpygments.lexerr   r   r   r   r   r   Úpygments.tokenr	   r
   r   r   r   r   r   r   Ú__all__r   r‘   r’   r“   ú<module>r—      s
  ððð ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ˆ-€ðDð Dð Dð Dð D�
ñ Dô Dð Dð Dð Dr’   