3
V'íc÷X ã @ s¾ d Z ddlZddlmZmZmZmZmZmZm Z m
Z
mZmZ ddl
mZmZmZmZmZmZmZmZmZmZmZ ddlmZ dddgZd$ZG d!d deZG d"d deZG d#d deZdS )%zÓ
pygments.lexers.ruby
~~~~~~~~~~~~~~~~~~~~
Lexers for Ruby and related languages.
:copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
é N)
ÚLexerÚ
RegexLexerÚExtendedRegexLexerÚincludeÚbygroupsÚdefaultÚLexerContextÚ
do_insertionsÚwordsÚline_re)ÚTextÚCommentÚOperatorÚKeywordÚNameÚStringÚNumberÚPunctuationÚErrorÚGenericÚ
Whitespace)Úshebang_matchesÚ RubyLexerÚRubyConsoleLexerÚ
FancyLexerÚ*ú**ú-ú+ú-@ú+@ú/ú%ú&ú|ú^ú`ú~ú[]ú[]=ú<<ú>>ú<ú<>ú<=>ú>ú>=ú==ú===c r @ sJ e Zd ZdZdZdZdddgZddd d
ddd
ddg ZddgZe j
e jB Zdd Z
dd Zdejfdejfdejfedþd6d7efd8eeeejfd9eeed:fd;ed:fd<eeed=fedÿd6d7ejfdPejfed dad7ejfdbejfeddÂd6dÃejfdÄejjfdÅe
fdÆe
fdÇejdÈfdÉeeej dÊfdËej dÊfdÌeeej dÊfdÍee!j"eefdÎee!j#eefdÏee!j$eefdÐee!j%eefdÑej&j'fdÒej&j(fdÓej&j)fdÔej&j)fdÕej&j)fdÖefe*d×dØej+fdÙej,fee-dÚdÛeeejfdÜeeefdÝefdÞefdßefdàe.fdáefg(dâe.dãfdäeej'eej/dåfe0dågdâe.dãfdæedåfdçej'dåfe0dågdèee.edåfdâedéfe*dêgdëej1défdìej1dåfe*dêgdíej1dîfdïej1fdðej1fge*dñdòej2fge*dñdóej fdôej fge*dñdóej3fdôej3fge*dñdõej fdöej fdóej fd÷ej fdøej dåfgdùejdåfgdúZ4e4j5e dûdü Z6dýS ( r z
For Ruby source code.
ZRubyzhttp://www.ruby-lang.orgÚrubyÚrbZdubyz*.rbz*.rbwZRakefilez*.rakez *.gemspecz*.rbxz*.dubyZGemfileZVagrantfileztext/x-rubyzapplication/x-rubyc c sî |j d}|t|jdfV |j dtj|jdfV |j dtj|jdfV |j dtj|jdfV |jjdg }t| }|j |jddk|jdf |j d|_
|jd|_t|d k rØ| j
|d
E d H n|j
tj|jdfV |j |_
|rêxÔ|D ]Ì\}}g }x¼tj|j|j
D ]}|r:|j j } n|j j } | |krx$|D ]}
|
j tj|
j fV qVW |j tj|j fV |j |_
P n
|j | q"W x"|D ]}
|
j t|
j fV q°W qW t|j|_|d d
= d S )Né é é é Úheredocstackú<<-ú<<~é éd )Úcontext)r: r; )Ústartr Úgroupr ZHeredocZ DelimiterÚ__dict__Ú
setdefaultÚboolÚappendÚposÚendÚlenÚget_tokens_unprocessedr ÚfinditerÚtextÚstripÚrstripr )ÚselfÚmatchÚctxr? r9 Z outermostZtolerantZhdnameÚlinesÚcheckZamatch© rR ú8/tmp/pip-build-gk9425m9/Pygments/pygments/lexers/ruby.pyÚheredoc_callback* s@
zRubyLexer.heredoc_callbackc C s dd } dd }i }dt jfttddt jfdt jfd t jd
fdtt jtfdt jd
fdt jdfdt jdfg|d<