o
a( @ s d Z ddlZddlmZmZmZmZmZ ddlm Z m
Z
mZmZm
Z
mZmZmZmZmZmZ g dZG dd deZG dd d eZG d
d deZdS )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)TextCommentOperatorKeywordNameStringNumberPunctuationGenericLiteral
Whitespace)
DylanLexerDylanConsoleLexer
DylanLidLexerc @ s e Zd ZdZdZdgZg dZdgZej Z
h dZh dZh dZ
h d Zd
Zdd Zd
efdejfdeejeeefedgd
efdeejefdejdfdedfdejfdejfdejfdejfdej fdej!fde d eej"eej#fdeej"eej#fde ej"fd e$fd!efd"e%fd#ej&d$fd%e'fed& e'fd'e d( ej(fd)e d) ej)j*fd*e ej+feefgd+ejfdejd,fd-ejd.fd/ejfgdej&d.fd0ej&fgded.fd1ej,fd2efd3efd4efgd5Z-d6S )7r z[
For the `Dylan `_ language.
.. versionadded:: 0.7
Dylandylan)z*.dylanz*.dylz*.intrztext/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-unionaref-setterdo-handlersfind-methodhead-setterlast-setternext-methodobject-hashremove-key!size-settertail-setteras-lowercaseas-uppercasefirst-setterkey-sequenceobject-classreturn-queryshallow-copythird-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-keywordsasdoabsaddashgcdlcmmapmaxminpoparefheadlastlistmakepairpushranksizesorttailabortapplybreakcurryerrorfirstfloorrangeroundthirdunionalwayscerrorchooselogandlogiorlognotlogxormodulorcurryreduceremovesecondrU valuesvectorceilingcomposeconjoindisjoinelementlimitedreduce1reverseidentitynegativetruncate dimension remainderr;
complement
dimensions
initializeconcatenateintersectionz\\?[\w!&*<>|^$%@\-+~?/=]+c c s t | |D ]E\}}}|tu rF| }|| jv r!|tj|fV q|| jv r-|t|fV q|| jv r:|tj|fV q|| j v rF|t
|fV q|||fV qd S )N)r get_tokens_unprocessedr lowerbuiltinsBuiltinkeywordsr
functions operatorsr )selftextindextokenvaluelowercase_value r 7/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-]+:rd rf z\*z\$z[^*/]+z#pushz\*/z#popz[*/]z[^\\"]+z,\\([\\abfnrtv"\']|x[a-f0-9]{2,4}|[0-7]{1,3})z [^\\"\n]+z\\\nz\\)rootr r r+ r N).__name__
__module____qualname____doc__namealiases filenames mimetypesre
IGNORECASEflagsr r
r r
valid_namer r r Singler r Attributer r r MultilineCharr
BinOctFloatIntegerHexTagr r r Symbolr
ClassVariableGlobalConstantEscapetokensr r r r r s~ $
E
r c @ s^ e Zd ZdZdZddgZddgZdgZej Z
dd efd
ee
jefdeejeeefgiZdS )
r zZ
For Dylan LID (Library Interchange Definition) files.
.. versionadded:: 1.6
DylanLIDz dylan-lidlidz*.lidz*.hdpztext/x-dylan-lidr r r z"(.*?)(:)([ \t]*)(.*(?:\n[ \t].+)*)N)r r r r r! r" r# r$ r% r& r' r r r r) r r* r r r9 r r r r r s r c @ sD e Zd ZdZdZddgZdgZdgZe dZ
e dZd d
ZdS )r z
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 c s t di | j}d}g }| j|D ]I}| }| j|}|d urB| }|t |dt
j|d | fgf |||d 7 }q|rSt||
|E d H d}g }| t
j|fV q|rlt||
|E d H d S d S )N r r )r options_line_refinditergroup
_prompt_rematchr@ appendlenr Promptr r startOutput) r
r dylexercurcode
insertionsrB linemr@ r r r r s2
z(DylanConsoleLexer.get_tokens_unprocessedN)
r r r r r! r" r# r$ r% compiler> rA r r r r r r s
r )r r% pygments.lexerr r r r r pygments.tokenr r r r
r r r
r r r r __all__r r r r r r r s
4 A