o
    Ñ­jÚ  ã                   @   sf   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„ deƒZdS )zÑ
    pygments.lexers.qvt
    ~~~~~~~~~~~~~~~~~~~

    Lexer for QVT Operational language.

    :copyright: Copyright 2006-present 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                   @   sà  e Zd ZdZdZddgZdgZdZd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.d/�efgd0efd1efgd2ej!fgd ed)fd3ej!fed4ƒgd#ed)fd5ej!fed4ƒgd6efgd7e"j#fd8e"j#fd9e"j$fgd:œZ%d;S )<r   uš  
    For the QVT Operational Mapping language.

    Reference for implementing this: Â«Meta Object Facility (MOF) 2.0
    Query/View/Transformation SpecificationÂ», Version 1.1 - January 2011
    (https://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 https://www.omg.org/spec/QVT/1.1Ú z\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   rx   r   r   r   r   r   N)&Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚaliasesÚ	filenamesÚurlÚversion_addedr   r   r	   ÚPreprocÚ	Multiliner
   ÚWordr   r   ÚConstantr   ÚBuiltinÚPseudoÚDeclarationÚ	NamespaceÚClassÚ	ExceptionÚFunctionÚTyper   r   r   r   r   ÚEscaper   ÚFloatÚIntegerÚtokens© r’   r’   úP/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pygments/lexers/qvt.pyr      s¢    ÿ

þÿÿÿÞ(ýÿþþððÿýÿýýÿý
›N)r}   Úpygments.lexerr   r   r   r   r   r   Úpygments.tokenr   r	   r
   r   r   r   r   r   Ú__all__r   r’   r’   r’   r“   Ú<module>   s
     
(