
                         l    S r SSKJrJrJrJrJrJr  SSKJ	r	J
r
JrJrJrJrJrJr  S/r " S S\5      rg)z
pygments.lexers.qvt
~~~~~~~~~~~~~~~~~~~

Lexer for QVT Operational language.

:copyright: Copyright 2006-2023 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                   
   \ rS rSrSrSrSS/rS/rS\4S\4S	\	" \
\
\
R                  \
5      4S
\
R                  4S\4S\R                  4S\R                  4S\4S\4S\4S\R"                  4S\R&                  R(                  4S\R*                  4S\R,                  S4S\	" \R                  \\R.                  5      4S\	" \R                  \\R0                  5      4S\R2                  4S\	" \R*                  \5      S4S\	" \\5      S4S\R4                  4\" S5      S\\" S S!5      4S"\\" S S#5      4\" S$5      \" S%5      /S&\4S'\R,                  4\" S(5      /S)\4S*\	" \\R2                  \\5      S(4/S+\S(4\" S(5      /\" S,S-S.9\4/S/\4S0\4/S1\R@                  4/S\S(4S2\R@                  4\" S35      /S"\S(4S4\R@                  4\" S35      /S5\4/S6\!RD                  4S7\!RD                  4S8\!RF                  4/S9.r$S:r%g;)<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   rz   r   r   r   r    r!    N)&__name__
__module____qualname____firstlineno____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__static_attributes__r|       &lib/third_party/pygments/lexers/qvt.pyr   r      s   * DuoG
I DM$.gwAC
 !'"3"34dO&6!8==1W%<hG[)-w/?/?@$dll&9&9:,,-!2!2LA#gllD$**57 &gllD$..9;$--(+g))40+?'4!8(CJ\\J&(>59:&(>59:FOIE%
P  &0FO
 DM0dDMM4=vG
 (&9FO
  #  ,1!2  4;!<
. V$ 
 <V]]K
 66"&--(I
 66"&--(I
 d#

 6v||D"FLL1V^^$
Kj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r   