fJc @sdZddkZyeWn#ej oddklZnXddklZlZl Z l Z l Z ddk l Z lZlZlZlZlZlZlZlZlZdddd d d d gZdefd YZdefdYZdefdYZeidZeidZd efdYZd efdYZd efdYZ d efdYZ!dS(s pygments.lexers.functional ~~~~~~~~~~~~~~~~~~~~~~~~~~ Lexers for functional languages. :copyright: Copyright 2006-2009 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. iN(tSet(tLexert RegexLexertbygroupstincludet do_insertions( tTexttCommenttOperatortKeywordtNametStringtNumbert PunctuationtLiteraltGenerict SchemeLexertCommonLispLexert HaskellLexertLiterateHaskellLexert OcamlLexert ErlangLexertErlangShellLexercBs%eZdZdZddgZdgZddgZddd d d d d dddddddddddddddddgZdd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddgZdZ hde i fde fde ifde ifdefde eifdeifdeifdefddigZeD]Zeeiedqi[efde eifde eifddigZeD]Zeeiedq[eifde eife eifde fgd6Z!RS(s A Scheme lexer, parsing a stream and outputting the tokens needed to highlight scheme code. This lexer could be most probably easily subclassed to parse other LISP-Dialects like Common Lisp, Emacs Lisp or AutoLisp. This parser is checked with pastes from the LISP pastebin at http://paste.lisp.org/ to cover as much syntax as possible. It supports the full Scheme syntax as defined in R5RS. *New in Pygments 0.6.* tSchemetschemetscms*.scms text/x-schemesapplication/x-schemetlambdatdefinetiftelsetcondtandtortcasetletslet*tletrectbegintdotdelaysset!s=>tquotet quasiquotetunquotesunquote-splicings define-syntaxs let-syntaxs letrec-syntaxs syntax-rulest*t+t-t/ts>=tabstacostangletappendtapplytasintassoctassqtassvtatansboolean?tcaaaartcaaadrtcaaartcaadartcaaddrtcaadrtcaartcadaartcadadrtcadartcaddartcadddrtcaddrtcadrscall-with-current-continuationscall-with-input-filescall-with-output-filescall-with-valuesscall/cctcartcdaaartcdaadrtcdaartcdadartcdaddrtcdadrtcdartcddaartcddadrtcddartcdddartcddddrtcdddrtcddrtcdrtceilings char->integerschar-alphabetic?s char-ci<=?s char-ci=?s char-ci>?s char-downcaseschar-lower-case?s char-numeric?s char-ready?s char-upcaseschar-upper-case?schar-whitespace?schar<=?schar=?schar>?schar?sclose-input-portsclose-output-portscomplex?tconstcosscurrent-input-portscurrent-output-portt denominatortdisplays dynamic-winds eof-object?seq?sequal?seqv?tevalseven?sexact->inexactsexact?texptexpttfloorsfor-eachtforcetgcds imag-partsinexact->exactsinexact?s input-port?s integer->charsinteger?sinteraction-environmenttlcmtlengthtlists list->strings list->vectorslist-refs list-tailslist?tloadtlogt magnitudes make-polarsmake-rectangulars make-strings make-vectortmaptmaxtmembertmemqtmemvtmintmodulos negative?tnewlinetnotsnull-environmentsnull?snumber->stringsnumber?t numeratorsodd?sopen-input-filesopen-output-files output-port?spair?s peek-charsport?s positive?s procedure?tquotients rational?t rationalizetreads read-chars real-partsreal?t remaindertreversetroundsscheme-report-environmentsset-car!sset-cdr!tsintsqrttstrings string->listsstring->numbersstring->symbols string-appends string-ci<=?s string-ci=?s string-ci>?s string-copys string-fill!s string-lengths string-refs string-set!s string<=?sstring=?sstring>?sstring?t substringssymbol->stringssymbol?ttanstranscript-offs transcript-onttruncatetvaluestvectors vector->lists vector-fill!s vector-lengths vector-refs vector-set!svector?swith-input-from-fileswith-output-to-filetwrites write-charszero?s[a-zA-Z0-9!$%&*+,/:<=>?@^_~|-]+s;.*$s\s+s -?\d+\.\d+s-?\d+s"(\\\\|\\"|[^"])*"t's+#\\([()/'\".'_!§$%& ?=+-]{1}|[a-zA-Z0-9]+)s(#t|#f)s('|#|`|,@|,|\.)s(%s)t|t s(?<='\()s(?<=#\()s (?<=\()(%s)s(?<=\()s(\(|\))troot("t__name__t __module__t__doc__tnametaliasest filenamest mimetypestkeywordstbuiltinst valid_nameRtSingleRR tFloattIntegerR tSymboltCharR tConstantRtjoint_[1]tentrytretescapeR tVariablet_[2]tBuiltintFunctionR ttokens(((s>/usr/lib/python2.6/site-packages/pygments/lexers/functional.pyRs     $                    / /  c(BseZdZdZddgZdddgZdgZeiei BZ dZ e d Z d Z d e e fZd Zd Zhdedfgd6deidfdeidfdeifdeifgd6deidfdeidfdeifgd6defdeifdeidfdeifdefd eeifd!eeifd!efd"efd#e eifd$e efd%e eifd&e eifd'eeifd(edfd)eifd*eeifd+efd,e i!fd-efd.ei"fd/ei#fd0efd1e$ee%dfd2e$eie%dfd3e$eie%dfd4eifd5efd6efd7e d8eidfd9efd:efd;e e i&fd<ed<e i'i(fee i'fde%dfde%dfg%d6Z)RS(=s: A Common Lisp lexer. *New in Pygments 0.9.* s Common Lisps common-lisptcls*.cls*.lisps*.elstext/x-common-lisps%\\.|[a-zA-Z0-9!$%&*+-/<=>?@\[\]^_{}~]s|[#.:]s(?=[ "()\'\n,;`])s(\|[^|]+\||(?:%s)(?:%s)*)c Ksddkl}l}l}l}l}l}l}||_||_ ||_ ||_ ||_ ||_ ||_ti||dS(Ni(tBUILTIN_FUNCTIONSt SPECIAL_FORMStMACROStLAMBDA_LIST_KEYWORDSt DECLARATIONSt BUILTIN_TYPEStBUILTIN_CLASSES(tpygments.lexers._clbuiltinsRRRRRRRtbuiltin_functiont special_formstmacrostlambda_list_keywordst declarationst builtin_typestbuiltin_classesRt__init__( tselftoptionsRRRRRRR((s>/usr/lib/python2.6/site-packages/pygments/lexers/functional.pyRs4       ccsgdg}xWti|||D]@\}}}|tijo||ijo|ti|fVqn||ijo|t|fVqn||ijo|ti|fVqn||i jo|t|fVqn||i jo|t|fVqn||i jo|ti |fVqn||i jo|ti|fVqqQn|||fVqWdS(NR(Rtget_tokens_unprocessedR RRRRR RRRRtTypeRtClass(Rttexttstacktindexttokentvalue((s>/usr/lib/python2.6/site-packages/pygments/lexers/functional.pyRs4  ttbodyRs#\|s#pushs\|#s#pops[^|#]+s[|#]smultiline-comments\(s\)s[^()]+scommented-forms\s+s;.*$s#\d*Y.*$s "(\\.|[^"])*"t:Rt`s [-+]?\d+\.?s [-+]?\d+/\d+s<[-+]?(\d*\.\d+([defls][-+]?\d+)?|\d+(\.\d*)?[defls][-+]?\d+)s#\\.s#\\s#\(s #\d*\*[01]*s#:s#[.,]s#\'s#[bB][+-]?[01]+(/[01]+)?s#[oO][+-]?[0-7]+(/[0-7]+)?s&#[xX][+-]?[0-9a-fA-F]+(/[0-9a-fA-F]+)?s)#\d+[rR][+-]?[0-9a-zA-Z]+(/[0-9a-zA-Z]+)?s (#[cC])(\()s(#\d+[aA])(\()s (#[sS])(\()s#[pP]?"(\\.|[^"])*"s#\d+=s#\d+#s#+nils\s*\(s#[+-]s (,@|,|\.)s(t|nil)s\*(*RRRRRRRRt IGNORECASEt MULTILINEtflagstnonmacrot constituentt terminatedtsymbolRRRRt MultilinetPreprocRtSpecialR RRR RRRRtOtherR RtOcttHexRR RRtGlobalR(((s>/usr/lib/python2.6/site-packages/pygments/lexers/functional.pyRsv                            cBsFeZdZdZddgZdgZdgZdddd d d d d ddddddddddgZddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1gZhd2e fd3e i fd4e i d5fd6e id7fd8e id9fd:eifd;d<iee ifd=eifd>efd?e ifd@eifdAeifdBe ifdCefdDeifdEeifdFeifdGeifdHeifdIeidJfdKedLfdMe ifdNeifdOefgdP6d2e fdQedRfdSe fdTeei e e e edRfdUeei e e e edVfdWeei e edVfdXei dRfgd76d2e fdWeei e edVfdYei dRfgd96d2e fdZe ifd[eifd\e i fd4e i d5fd]efdCefd^edmfdQed_fg dV6d`e i fd4e i dafdbe i dRfdce i fgd56ddeifdeei!dffdIeidRfgdJ6dgefdeei!dffdKedRfgdL6dhei!dRfdiei!dRfd<ieei!dRfdjei!dRfdkei!dRfdHei!dRfdlei!dRfgdf6Z"RS(nsl A Haskell lexer based on the lexemes defined in the Haskell 98 Report. *New in Pygments 0.8.* tHaskellthaskellthss*.hsstext/x-haskellR!tclasstdatatdefaulttderivingR%RRtins infix[lr]?tinstanceR"tnewtypetoftthenttypetwheret_tNULtSOHs[SE]TXtEOTtENQtACKtBELtBStHTtLFtVTtFFtCRsS[OI]tDLEsDC[1-4]tNAKtSYNtETBtCANtEMtSUBtESCs[FGRU]StSPtDELs\s+s--(?![!#$%&*+./<=>?@\^|_~]).*?$s{-tcomments \bimport\btimports \bmodule\btmodules \berror\bs\b(%s)(?!\')\bRs^[_a-z][\w\']*s [_a-z][\w\']*s [A-Z][\w\']*s\\(?![:!#$%&*+.\\/<=>?@^|~-]+)s+(<-|::|->|=>|=)(?![:!#$%&*+.\\/<=>?@^|~-]+)s:[:!#$%&*+.\\/<=>?@^|~-]*s[:!#$%&*+.\\/<=>?@^|~-]+s\d+[eE][+-]?\d+s\d+\.\d+([eE][+-]?\d+)?s 0[oO][0-7]+s0[xX][\da-fA-F]+s\d+Rt charactert"R|s\[\]s\(\)s [][(),;`{}]Rs\)s#pops qualified\bs8([A-Z][a-zA-Z0-9_.]*)(\s+)(as)(\s+)([A-Z][a-zA-Z0-9_.]*)s+([A-Z][a-zA-Z0-9_.]*)(\s+)(hiding)(\s+)(\()tfunclists([A-Z][a-zA-Z0-9_.]*)(\s+)(\()s[a-zA-Z0-9_.]+s[A-Z][a-zA-Z0-9_.]*s[A-Z][a-zA-Z0-9_]*s [_a-z][\w\']+s--.*$t,s\(s#pop:2s[^-{}]+s#pushs-}s[-{}]s[^\\']s\\Rs[^\\"]+s[abfnrtv"\'&\\]s \^[][A-Z@\^_]so[0-7]+s x[\da-fA-F]+s\n\s+\\(RR(#RRRRRRRtreservedtasciiRRRRR tReservedR t ExceptionRRRRtWordR RRRRR RRR Rt NamespacetEscapeR(((s>/usr/lib/python2.6/site-packages/pygments/lexers/functional.pyRKs                                    s.*? s(>[ \t]*)(.*\n)cBs;eZdZdZddgZdgZdgZdZRS(so For Literate Haskell (Bird-style or LaTeX) source. Additional options accepted: `litstyle` If given, must be ``"bird"`` or ``"latex"``. If not given, the style is autodetected: if the first non-whitespace character in the source is a backslash or percent character, LaTeX is assumed, else Bird. *New in Pygments 0.9.* sLiterate Haskelltlhssliterate-haskells*.lhsstext/x-literate-haskellccsbt|i}|iid}|djo(|iddjodpd}nd}g}|djoxti|D]}|i}ti |}|oH|i t |dt i |idfgf||id7}q|i t |dt|fgfqWnd d kl} | |i} d} d} xti|D]}|i}| o8|iid od} | |7} q ||7}qW|iid oBd} | |7} |i t |t| i| fd} qW| |7} qWW|i t |t| i| fx%t||i|D] } | VqOWdS( Ntlitstyleis%\tlatextbirdRiii(tTexLexers \end{code}s \begin{code}(RRtgettNonetlstriptline_retfinditertgrouptbird_retmatchR4tlenRRRtpygments.lexers.textRt startswithRfRR(RRthslexertstyletcodet insertionsR tlinetmRtlxlexert codelinesRtitem((s>/usr/lib/python2.6/site-packages/pygments/lexers/functional.pyRsP (  "-   (RRRRRRRR(((s>/usr/lib/python2.6/site-packages/pygments/lexers/functional.pyRs     c/BseZdZdZdgZddddgZdgZdd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6g/Zd7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_g)Zd`Z dadbdcdddedfdgdhgZ diZ djZ dkdldmdndodpdqdrgZ hdseifdteifdueifgdv6dwefdxeiifdyeidzfd{eifd|ed}fd~dieefddieefde e e fefd~die eifd~die eifdefdeifdeifdeifdei fdei!fdei"fdei"fdefdei#dofdei$fgd6defd|edfdedfdefgd}6dei#fe%dvdei#fdei#dfgdo6dwefdCe&fdeifdeidfdedfgdz6Z'RS(s= For the OCaml language. *New in Pygments 0.7.* tOCamltocamls*.mls*.mlis*.mlls*.mlys text/x-ocamltastassertR$Rt constraintR%tdonetdowntoRtendt exceptiontexternaltfalsetfortfuntfunctiontfunctorRRRtinheritt initializertlazyR"R tmethodRtmutabletnewtobjectRtopentprivatetraisetrectsigtstructRttottruettryRtvaltvirtualtwhentwhiletwiths!=t#t&s&&s\(s\)s\*s\+RR,s-\.s->s\.s\.\.Rs::s:=s:>t;s;;R.s<-R/R0s>]s>}s\?s\?\?s\[s\[s\[\|t]RRt{s{?@^|~-]RtasrtlandtlortlsltlxortmodR s[!?~]s[=<>@^|&+\*/$%-]tunittinttfloattboolR|tcharRftarrays \\[\"\'ntbr]s \\[0-9]{3}s\\x[0-9a-fA-F]{2}sescape-sequences\s+sfalse|true|\(\)|\[\]s!\b([A-Z][A-Za-z0-9_\']*)(?=\s*\.)tdotteds\b([A-Z][A-Za-z0-9_\']*)s\(\*Rs\b(%s)\bRs(%s)s (%s|%s)?%ss [^\W\d][\w']*s\d[\d_]*s0[xX][\da-fA-F][\da-fA-F_]*s0[oO][0-7][0-7_]*s0[bB][01][01_]*s(-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)s7'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))'s'.'RRs[~?][a-z][\w\']*:Rs[^(*)]+s#pushs\*\)s#pops[(*)]s[^\\"]+s\\\ns[A-Z][A-Za-z0-9_\']*(?=\s*\.)s[A-Z][A-Za-z0-9_\']*s[a-z][a-z0-9_\']*((RRRRRRRRtkeyoptst operatorstword_operatorst prefix_symst infix_symst primitivesR RRR RtPseudoRRRRR RRRR RRRtBinaryRRtDoubleRRR R(((s>/usr/lib/python2.6/site-packages/pygments/lexers/functional.pyR sz  !!!                        c{BsUeZdZdZdgZddgZdgZdddd d d d d ddddddgZddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddddddddddddg{ZdZ ddddddddddddddgZ dZ dZ dZ de de dZdZhdefdefddiedefddiedeifddie deifdedfe efdedfdeifdeifde deeiefde deeieefdedeifdeifdei fdefe ei!fe efdeei"fde dei#fde de deifgd6e ei$fdedfdei%fdefdefgd6dedeei&eeei"dfdedeei&eeeidfe ei&dfgd6Z'RS(s For the Erlang functional programming language. Blame Jeremy Thurgood (http://jerith.za.net/). *New in Pygments 0.9.* tErlangterlangs*.erls*.hrls text/x-erlangtafterR$R!tcatchRR!R&RR"RtquerytreceiveR8R;R1tappend_elementR5t atom_to_listtbinary_to_listtbitstring_to_listtbinary_to_termtbit_sizetbump_reductionst byte_sizet cancel_timertcheck_process_codet delete_modulet demonitortdisconnect_nodeR]telementterasetexitRMt float_to_listtfun_infot fun_to_listtfunction_exportedtgarbage_collectRtget_keyst group_leaderthashthdtinteger_to_listtiolist_to_binaryt iolist_sizetis_atomt is_binaryt is_bitstringt is_booleant is_builtintis_floatt is_functiont is_integertis_listt is_numbertis_pidtis_porttis_process_alivet is_recordt is_referencetis_tupleRetlinkt list_to_atomtlist_to_binarytlist_to_bitstringtlist_to_existing_atomt list_to_floattlist_to_integert list_to_pidt list_to_tuplet load_moduletlocaltime_to_universaltimet make_tupletmd5t md5_finalt md5_updatetmemoryt module_loadedtmonitort monitor_nodetnodetnodest open_porttphashtphash2t pid_to_listt port_closet port_commandt port_connectt port_controlt port_callt port_infot port_to_listtprocess_displayt process_flagt process_infot purge_moduletputt read_timert ref_to_listtregistertresume_processRytsendt send_aftertsend_nosuspendt set_cookiet setelementtsizetspawnt spawn_linkt spawn_monitort spawn_optt split_binaryt start_timert statisticstsuspend_processt system_flagt system_infotsystem_monitortsystem_profiletterm_to_binaryttlttracettrace_deliveredt trace_infot trace_patternttrunct tuple_sizet tuple_to_listtuniversaltime_to_localtimetunlinkt unregistertwhereiss2(\+|-|\*|/|<|>|=|==|/=|=:=|=/=|=<|>=|\+\+|--|<-|!)RtandalsotbandtbnottbortbsltbsrtbxortdivRrR torelsetremtxors%(?:[a-z][a-zA-Z0-9_]*|'[^\n']*[^\\]')s(?:[A-Z_][a-zA-Z0-9_]*)s8(?:\\(?:[bdefnrstv\'"\\/]|[0-7][0-7]?[0-7]?|\^[a-zA-Z]))s(?:Rt)s(?:[2-9]|[12][0-9]|3[0-6])s\s+s%.*\nt(s)\bs^-t directiveRR|s<>s)(:)s^(s )(\s*)(\()s[+-]?s #[0-9a-zA-Z]+s[+-]?\d+s [+-]?\d+.\d+s[][:_@\".{}()|;,]s\?s\$(?:s|\\[ %]|[^\\])R>s(:?\.s)?Rs#pops~[0-9.*]*[~#+bBcdefginpPswWxX]s[^"\\~]+RDs(define)(\s*)(\()(s(record)(\s*)(\()(((RRRRRRRRRRSRTtatom_ret variable_ret escape_retmacro_retbase_reRRRR R RRRR R tLabelRRRR RRRRRRtInterpoltEntityR(((s>/usr/lib/python2.6/site-packages/pygments/lexers/functional.pyRes                            #      cBsGeZdZdZdgZdgZdgZeidZ dZ RS(sN Shell sessions in erl (for Erlang code). *New in Pygments 1.1.* sErlang erl sessionterls*.erl-shstext/x-erl-shellsessions \d+>(?=\s|\Z)c csbt|i}d}g}x ti|D]}|i}|ii|}|dj oJ|i}|i t |dt i || fgf|||7}q+|o8x%t ||i|D] } | VqWd}g}n|ido|it i|fVq+|it i|fVq+W|o,x)t ||i|D] } | VqKWndS(NRiR*(RRR R R t _prompt_reR RR!R4RRtPromptRRRtstartt TracebacktOutput( RRterlexertcurcodeRR RRR!R((s>/usr/lib/python2.6/site-packages/pygments/lexers/functional.pyRs6       ( RRRRRRRRtcompileRR(((s>/usr/lib/python2.6/site-packages/pygments/lexers/functional.pyRs   ("RRtsett NameErrortsetsRtpygments.lexerRRRRRtpygments.tokenRRRR R R R R RRt__all__RRRRR R RRRR(((s>/usr/lib/python2.6/site-packages/pygments/lexers/functional.pyt s$ (F xC\j