o a(@sdZddlZddlmZmZmZmZmZddlm Z m Z m Z m Z m Z mZmZmZmZmZmZgdZGdddeZGdd d eZGd d d eZdS) z pygments.lexers.dylan ~~~~~~~~~~~~~~~~~~~~~ Lexers for the Dylan language. :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. N)Lexer RegexLexerbygroups do_insertionsdefault) TextCommentOperatorKeywordNameStringNumber PunctuationGenericLiteral Whitespace) DylanLexerDylanConsoleLexer DylanLidLexerc@seZdZdZdZdgZgdZdgZej Z hdZ hdZ hdZ hd Zd Zd d Zd efdejfdeejeeefedgd efdeejefdejdfdedfdejfdejfdejfdejfdej fdej!fdedeej"eej#fdeej"eej#fdeej"fd e$fd!efd"e%fd#ej&d$fd%e'fed&e'fd'ed(ej(fd)ed)ej)j*fd*eej+feefgd+ejfdejd,fd-ejd.fd/ejfgdej&d.fd0ej&fgded.fd1ej,fd2efd3efd4efgd5Z-d6S)7rz[ For the `Dylan `_ language. .. versionadded:: 0.7 Dylandylan)z*.dylanz*.dylz*.intrz text/x-dylan>% inline-only compiler-open each-subclasscompiler-sidewaysopenslotblockclassmacrodomainimportinlinemethodmodulesealedthreaddynamicexcludegenerichandlerkeywordlibraryprimaryvirtualabstractconcreteconstantfunctioninstancerequiredsidewayssubclassvariable exception inherited interface singleton>byifintoendforletusecaseelsefromthenwhenabovebeginbelowlocaluntilwhilecreatedefineelseifexportrenameselectsignalunlesscleanupfinally otherwise afterwards><===>=~=~==*&+-<=>^|~>add!any?odd?even?fill!sort!zero?empty?every?floor/map-asone-ofround/add-newlogbit?member?remove!add-new!ceiling/false-orfind-keykey-testmap-intopop-lastreverse!subtype? choose-by instance? integral? negative? positive? push-last truncate/ add-method check-type type-union aref-setter do-handlers find-method head-setter last-setter next-method object-hash remove-key! size-setter tail-setter as-lowercase as-uppercase first-setter key-sequence object-class return-query shallow-copy third-setter as-lowercase! as-uppercase! copy-sequence remove-method restart-query second-setter type-for-copyconcatenate-aselement-settertable-protocoldefault-handlerreturn-allowed?row-major-indexall-superclassesmerge-hash-codestype-error-valuedirect-subclassesremove-duplicatesreplace-elements!slot-initialized?applicable-method?function-argumentsremove-duplicates!return-descriptiondirect-superclassesreplace-subsequence!subsequence-positionfunction-specializersfunction-return-valuescondition-format-stringgeneric-function-methodstype-error-expected-typesorted-applicable-methodscondition-format-argumentsforward-iteration-protocolbackward-iteration-protocol#generic-function-mandatory-keywordsasdoabsaddashgcdlcmmapmaxminpoparefheadlastlistmakepairpushranksizesorttailabortapplybreakcurryerrorfirstfloorrangeroundthirdunionalwayscerrorchooselogandlogiorlognotlogxormodulorcurryreduceremovesecondrUvaluesvectorceilingcomposeconjoindisjoinelementlimitedreduce1reverseidentitynegativetruncate dimension remainderr; complement dimensions initialize concatenate intersectionz\\?[\w!&*<>|^$%@\-+~?/=]+ccst||D]E\}}}|turF|}||jvr!|tj|fVq||jvr-|t|fVq||jvr:|tj|fVq||j vrF|t |fVq|||fVqdS)N) rget_tokens_unprocessedr lowerbuiltinsBuiltinkeywordsr functions operatorsr )selftextindextokenvaluelowercase_valuer7/usr/lib/python3/dist-packages/pygments/lexers/dylan.pyr\s$      z!DylanLexer.get_tokens_unprocessed\s+z//.*?\nz)([a-z0-9-]+)(:)([ \t]*)(.*(?:\n[ \t].+)*)code (//.*?)(\n)z/\*comment"stringz/'(\\.|\\[0-7]{1,3}|\\x[a-f0-9]{1,2}|[^\\\'\n])'z#b[01]+z#o[0-7]+z0[-+]?(\d*\.\d+(e[-+]?\d+)?|\d+(\.\d*)?e[-+]?\d+)z[-+]?\d+z #x[0-9a-f]+z(\?z6)(:)(token|name|variable|expression|body|case-body|\*)z9(\?)(:)(token|name|variable|expression|body|case-body|\*)z\?z,(=>|::|#\(|#\[|##|\?\?|\?=|\?|[(){}\[\],.;])z:=z#[tf]z#"r+z #[a-z0-9-]+:rdrfz\*z\$z[^*/]+z#pushz\*/z#popz[*/]z[^\\"]+z,\\([\\abfnrtv"\']|x[a-f0-9]{2,4}|[0-7]{1,3})z [^\\"\n]+z\\\nz\\)rootrrr+rN).__name__ __module__ __qualname____doc__namealiases filenames mimetypesre IGNORECASEflagsrr r r  valid_namerrrSinglerr Attributer r r MultilineCharr BinOctFloatIntegerHexTagr rrSymbolr ClassVariableGlobalConstantEscapetokensrrrrrs~ $      E    rc @s^eZdZdZdZddgZddgZdgZej Z dd e fd e e je fd e ejee efgiZd S) rzZ For Dylan LID (Library Interchange Definition) files. .. versionadded:: 1.6 DylanLIDz dylan-lidlidz*.lidz*.hdpztext/x-dylan-lidrrrz"(.*?)(:)([ \t]*)(.*(?:\n[ \t].+)*)N)rrrr r!r"r#r$r%r&r'rrrr)r r*r r r9rrrrrsrc@sDeZdZdZdZddgZdgZdgZe dZ e dZ d d Z d S) rz For Dylan interactive console output like: .. sourcecode:: dylan-console ? let a = 1; => 1 ? a => 1 This is based on a copy of the RubyConsoleLexer. .. versionadded:: 1.6 z Dylan sessionz dylan-consolez dylan-replz*.dylan-consoleztext/x-dylan-consolez.*? z\?| c cstdi|j}d}g}|j|D]I}|}|j|}|durB|}|t |dt j |d|fgf|||d7}q|rSt || |EdHd}g}|t j|fVq|rlt || |EdHdSdS)Nrr)roptions_line_refinditergroup _prompt_rematchr@appendlenrPromptrrstartOutput) r rdylexercurcode insertionsrBlinemr@rrrrs2   z(DylanConsoleLexer.get_tokens_unprocessedN) rrrr r!r"r#r$r%compiler>rArrrrrrs   r)r r%pygments.lexerrrrrrpygments.tokenrrr r r r r rrrr__all__rrrrrrrs 4A