YBFj=dZddlZddlmZmZmZmZmZmZddl m Z m Z m Z m Z mZmZmZmZmZdgZgdZGddeZdS)z pygments.lexers.crystal ~~~~~~~~~~~~~~~~~~~~~~~ Lexer for Crystal. :copyright: Copyright 2006-present by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. N)ExtendedRegexLexerincludebygroupsdefaultwordsline_re) CommentOperatorKeywordNameStringNumber PunctuationError Whitespace CrystalLexer)z!=z!~!%z&&&z***+-/z<=>z<=z>>>z[]=z[]?z[]^z|||~ceZdZdZdZdZddgZdgZdgZdZ e j e j zZ d Zd Zgd ejfed d efeddd ejfdejfegdd ejfdeeeejfdeeeejdfdedfdeeeejdfeddd ejfdejjfeddd ejfdejjfdefdefd ejd!fd"eeejd#fd$ejd#fd%eeejd#fd&eej ee!fd'eej"ee!fd(eej#ee!fd)eej$ee!fd*eej$ee!fd+eej$ee!fd,eej%ee!fd-ej&j'fd.ej&j(fd/ej&j)fd0ej&j)fd1ej&j)fd2e!fe*d3d4ej+fd5ejfd6ej,d7fd8ej,d9fd:ee!eej-d;fee.d<=ee!ej!fd>ee!efd?efd@e!fdAe!fdBe/fdCefdDeej'e!ej0dEfe1dEgdFej'fdGee/eej'ee/fe1dEgdHej,dIfdJej,dEfe*dKgdLej,dMfgdNej2fge*dOe*dPge*dOdQejfdRejfge*dOdQej3fdRej3fge*dOdSejfdTejfdQejfdUejfdVejdEfgdWejdEfgd6ej,dIfdXej,dEfdYefe*dKgd8ej,dIfdZej,dEfe*dKgd[e!dIfd\e!dEfe*dKgd]Z4e45ed^S)_rz" For Crystal source code. Crystalzhttps://crystal-lang.orgcrcrystalz*.crztext/x-crystalz2.2c#K|d}|t|dfV|dtj|dfV|dtj|dfV|dtj|dfV|jdg}t| }| |ddk|df|d|_ | d|_ t|dkr| | Ed{Vn)|j tj|dfV| |_ |rw|D]S\}}g}tj|j|j D]}|r'|} n&|} | |kr|D]7} | tj| fV8|tj|fV| |_ nK| ||D]2} | t&| fV3Ut|j|_ |dd=dSdS) N heredocstackz<<-d)context)startr groupr Heredoc Delimiter__dict__ setdefaultboolappendposendlenget_tokens_unprocessedrfinditertextstriprstripr) selfmatchctxr-r) outermosttoleranthdnamelinescheckamatchs EC:\PYTHON\_runtimes\venv\Lib\site-packages\pygments/lexers/crystal.pyheredoc_callbackzCrystalLexer.heredoc_callback)s AXu{{1~~----kk!nnfnekk!nn<<<<kk!nnf. A>>>>kk!nnfnekk!nn<<<<|..~rBB \*** U[[^^u4ekk!nnEFFF++a..))A,, |  s " "2232?? ? ? ? ? ? ? ? ?'6>5;;q>>9 9 9 9))++  $0 D D &$-ch@@DDE7 % 3 3 5 5 % 4 4 6 6&+QQF"(,,..&.&,,.."PPPPP#kkmmV-=u{{}}LLLL"'))++ U++++#(DD$llnneV\\^^CCCCC#(mmCGQQQ-  c i}dtjfttdtjfdtjfdtjfdtjdfdt tjt fd tjd fd tjd fg|d <dtjd fdtjd fdtjdffD]2\}}}t|dkrdndd|d|fd|f||dfg|d|z<3dD]\}}}}d|ztj fg||k|tj dfgzz|tj dftdd|zdztj fd|zdztj fgz||d z<|d  d!|ztj |d zfd"|zdztj fg||k|tj dfgzz|tj dfd|zdztj fd|zdztj fgz||d#z<|d  d$|ztj |d#zfd"|zdztj fg||k|tj dfgzz|d%ztj dftd&d|zdztj fd|zdztj fgz||d'z<|d  d(|ztj |d'zf|S))Nz \:\w+[!?]?z\:prefixz:'(\\\\|\\[^\\]|[^'\\])*'z'(\\\\|\\'|[^']|\\[^'\\]+)'z:"z simple-symz([a-zA-Z_]\w*)(:)(?!:)"z simple-stringz(?ab)\|r^r^piz\\#pushz[\\#]z[^\\#z]+z -intp-stringz%Q?z\\[\\z-stringz%[qwi]z[imsx]* string-intpz-regexz%r) r SymbolrCRYSTAL_OPERATORSCharrrDoubleBacktickrOtherr4Regex)statesnamettyper6lbracerbracebraceccs rFgen_crystalstrings_rulesz%CrystalLexer.gen_crystalstrings_rulesXs FM * $U 3 3 3V] C )6= 9 +V[ 9 FM< 0 & (L(L M 6=/ 2 &/+< =  y"*6=# >!& s ;!+V_c B!C   D%DEMM((?TUU!!!!5)5!eV$ &F9T> " ",) 6) 6 )FFGT.+6!w/&+ v.-..7"S(&,7G#d*FL9  +F4& ' 9  $ $fvov|&*>&9&; < < <G#c)6<8&6!w/&& v.7"S(&,7G#d*FL9 &F4 > " 9  $ $i&&8&,&*9n&6 7 7 7G#c)6<8%6!w/&% )#V\6: &&7"S(&,7G#d*FL9  %F4= ! 9  $ $efnfl&*8m&5 6 6 6 6 rHz#.*?$z abstract asm begin break case do else elsif end ensure extend if in include next of private protected require rescue return select self super then unless until when while with yield z\b)suffixzz previous_def forall out uninitialized __DIR__ __FILE__ __LINE__ __END_LINE__ z(?=])zI(annotation|class|struct|union|type|alias|enum)(\s+)((?:[a-zA-Z_]\w*::)*) classnamezN instance_sizeof offsetof pointerof sizeof typeof z+(?~!:])|(?<=(?:\s|;)when\s)|(?<=(?:\s|;)or\s)|(?<=(?:\s|;)and\s)|(?<=\.index\s)|(?<=\.scan\s)|(?<=\.sub\s)|(?<=\.sub!\s)|(?<=\.gsub\s)|(?<=\.gsub!\s)|(?<=\.match\s)|(?<=(?:\s|;)if\s)|(?<=(?:\s|;)elsif\s)|(?<=^when\s)|(?<=^index\s)|(?<=^scan\s)|(?<=^sub\s)|(?<=^gsub\s)|(?<=^sub!\s)|(?<=^gsub!\s)|(?<=^match\s)|(?<=^if\s)|(?<=^elsif\s))(\s*)(/)multiline-regexz (?<=\(|,|\[)/z(\s+)(/)(?![\s=])z5(0o[0-7]+(?:_[0-7]+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?zA(0x[0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?z3(0b[01]+(?:_[01]+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?zU((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)(?:e[+-]?[0-9]+)?(?:_?f[0-9]+)?)(\s*)([/?])?zU((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)?(?:e[+-]?[0-9]+)(?:_?f[0-9]+)?)(\s*)([/?])?zU((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)?(?:e[+-]?[0-9]+)?(?:_?f[0-9]+))(\s*)([/?])?z8(0\b|[1-9][\d]*(?:_\d+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?z@@[a-zA-Z_]\w*z @[a-zA-Z_]\w*z\$\w+z\$[!@&`\'+~=/\\,;.<>_*$?:"^-]z\$-[0adFiIlpvw]z::rMzi\?(\\[MC]-)*(\\([\\abefnrtv#"\']|[0-7]{1,3}|x[a-fA-F0-9]{2}|u[a-fA-F0-9]{4}|u\{[a-fA-F0-9 ]+\})|\S)(?!\w)z[A-Z][A-Z_]+\b(?!::|\.)z\{%in-macro-controlz\{\{ in-macro-exprz!(@\[)(\s*)([A-Z]\w*(::[A-Z]\w*)*)in-annotz(\.|::)rJz,(\.|::)([a-zA-Z_]\w*[!?]?|[*%&^`~+\-/\[<>=])z[a-zA-Z_]\w*(?:[!?](?!=))?z:(\[|\]\??|\*\*|<=>?|>=|<>?|=~|===|!~|&&?|\|\||\.{1,3})z[-+/*%=<>&!^|~]=?z [(){};,/?:\\]z\s+z\(?:([a-zA-Z_]\w*)(\.))?([a-zA-Z_]\w*[!?]?|\*\*?|[-+]@?|[/%&|^`~]|\[\]=?|<<|>>|<=?>|>=?|===?)rUz [A-Z_]\w*z(\()(\s*)([A-Z_]\w*)(\s*)(\))rVr`rWrootz#\{in-intpzR\\([\\abefnrtv#"\']|[0-7]{1,3}|x[a-fA-F0-9]{2}|u[a-fA-F0-9]{4}|u\{[a-fA-F0-9 ]+\})rbrRrTz[^\\#]+z\\\\z\\/z[^\\/#]+z/[imsx]*z.+z%\}z(for|verbatim)\bz\}\}rYrZ)r}rurvr~rbrRrSzinterpolated-regexzinterpolated-stringryrxrzr{r|N)6__name__ __module__ __qualname____doc__rkurlaliases filenames mimetypes version_addedreDOTALL MULTILINEflagsrGrpr Singlersplitr PseudoConstantrrr NamespaceBuiltinPreprocr rirOctr HexBinFloatIntegerVariableClassInstanceGlobalrreInterpol DecoratorrdrFunctionrEscaperhtokensupdaterHrFrrs" D $CYGI!"IM I $E- - - ^FFFRF w~ &F U ''')0  1F U 5::: KF 9'. IF U+++E : : :G : : : :J H%F ((* =)F *Z Xgz4> : :K I+F 0U 5:::;B> K1F 8 ?MF P"88J #E#E  QF dF Xfj*h 7 7 9eF hR Xfj*h 7 7 9iF lD Xfj*h 7 7 9mF t, XflJ 9 9 ;uF z, XflJ 9 9 ;{F @+ XflJ 9 9 ;AF FI Xfnj( ; ; =GF L 3 4MF Nt}5 6OF Pt}+ ,QF R.t}/C DSF T !5 6UF VH WF X GI  YF \[ ]F d( 7eF hV_&8 9iF jfo 7kF n2 Xh DN ; ;Z IoF vU$Z 8 8 8 Xh . . 0wF z= Xh % % '{F @+D 1AF B%&. 0CF F"8 ,GF H{ +IF JZ KF P6Xdj(DM : :F D GFOO  4: & - Xk:tz:{ S S U GFOO  FOW - FOV , GFOO V_i 0 c ]  GM " " G$ % % GM " " v| $  & GM " " v| $  & GM " " fl # V\ " v| $ &, ' &, /  GOV , V_g . V_f - ' * GFOO  fow / fov . GFOO Hg & Hf % GFOO MKKFX MM**,,-----rH)rrpygments.lexerrrrrrrpygments.tokenr r r r r rrrr__all__rdrrrHrFrs3 ######################   Q.Q.Q.Q.Q.%Q.Q.Q.Q.Q.rH