3

V'íc¸ã@sfdZddlmZmZmZmZmZmZddlm	Z	m
Z
mZmZm
Z
mZmZmZdgZGdd„deƒZdS)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^@sØeZdZdZdZddgZdgZdefdefdee	e	e	j
e	ƒfd	e	jfd
efdej
fdej
fd
efdefdefdejfdejjfdejfdejdfdeej
eejƒfdeej
eejƒfdejfdeejeƒdfdeeeƒdfdejfedƒdeedd ƒfd!eedd"ƒfed#ƒed$ƒgd%efd&ejfed'ƒgd(efd)eeejeeƒd'fgd*ed'fed'ƒged‘dƒd„efgd…efd†efgd‡ejfgded'fdˆejfed‰ƒgd!ed'fdŠejfed‰ƒgd‹efgdŒe j!fde j!fdŽe j"fgdœZ#dS)’ru¿
    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'.
    ZQVTOZqvtoZqvtz*.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ÚabstractÚaccessÚanyÚ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+)ÚrootrrrrrtrrrrrN)Yrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,rr-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr[r\r]r^r_r`rarbrcrdrerfrgrhrirjrkrlrmrnrorprqrr)$Ú__name__Ú
__module__Ú__qualname__Ú__doc__rÚaliasesÚ	filenamesrrr	ZPreprocZ	Multiliner
ÚWordrrÚConstantr
ZBuiltinZPseudoZDeclarationÚ	NamespaceZClassÚ	ExceptionZFunctionÚTyperrrrrZEscaperZFloatZIntegerÚtokens©r‚r‚ú7/tmp/pip-build-gk9425m9/Pygments/pygments/lexers/qvt.pyrs


N)ryZpygments.lexerrrrrrrZpygments.tokenrr	r
rrr
rrÚ__all__rr‚r‚r‚rƒÚ<module>	s (