o aމ@sdZddlZddlmZmZmZmZmZddlm Z m Z m Z m Z m Z mZmZmZmZgdZGdddeZGdd d eZGd d d eZGd d d eZGdddeZdS)z pygments.lexers.ml ~~~~~~~~~~~~~~~~~~ Lexers for ML family languages. :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. N) RegexLexerincludebygroupsdefaultwords) TextCommentOperatorKeywordNameStringNumber PunctuationError)SMLLexer OcamlLexerOpaLexer ReasonLexer FStarLexerc@sveZdZdZdZdgZgdZddgZhdZhdZ hd Z d Z d Z d d Z ddZddZddZiddefdejdfgddedfdedfdejdfdejdfd ejdfgd!d"d#d$d%e Defd&ejd'fd(ejd)fd*ejfd+ejfd,ejfd-ejfd.ejfd/ejfd0ejfd1ej fd2e ej fd3e ej fd4ejd5fd6ejd7fd8ejd9fd:ejd;fdfd"e efd"e efgd>d=e efd"e edfd"e edfde"fd?e"fgd@e#dgde$ddAejdBfdCejdDfe$de$d!d?e"fgdEe$ddFefdejdfdGejdHfdIejdJfdKedHfdLejdMfe$de$d!d?e"fg d'e ejd)e ejdNdOd#eedfgd9e$de$dNd"e ej%fe#dgdHe$dd)asdofnifinofopandendfunletrecsigvalcaseelseopenthentypewithinfixlocalraisewherewhileeqtypehandleinfixrnonfixorelsestructabstypeandalsofunctorrsharingdatatypewithtype exception signature structure>#:=->:>=>\|> ..._(),;[]{}z[a-zA-Z][\w']*z[!%&$#+\-/:<=>?@\\~`^|*]+c Cs:d|fdtjfdtjfdtjfdtjfdtjfd|dfgS) Nz[^"\\]z\\[\\"abtnvfr]z\\\^[\x40-\x5e] \\[0-9]{3}z\\u[0-9a-fA-F]{4}z\\\s+\\"#pop)r EscapeInterpol)whatkindrU4/usr/lib/python3/dist-packages/pygments/lexers/ml.pystringy<szSMLLexer.stringyccsR|d|jvr t}ntj}|d||dfV|dt|dfVdS)N)groupalphanumid_reservedrr NamespacestartrselfmatchtokenrUrUrVlong_id_callbackKs zSMLLexer.long_id_callbackccsN|d|jvr t}n |d|jvrt}nt}|d||dfVdSNrX)rZr[rsymbolicid_reservedr r]r^rUrUrVend_id_callbackSszSMLLexer.end_id_callbackccsH|d}||jvrtj}n ||jvrt}nt}|d||fVdSrc)rZr[r Reservedrdrr r])r_r`strrarUrUrV id_callback\s   zSMLLexer.id_callback whitespace\s+\(\*comment delimitersz\(|\[|\{mainz\)|\]|\}rQz\b(let|if|local)\b(?!\'))rnrnz\b(struct|sig|while)\b(?!\')z\b(do|else|end|in|then)\b(?!\')core(%s)|ccs|]}t|VqdS)N)reescape).0zrUrUrV |szSMLLexer.z#"charrPstringz~?0x[0-9a-fA-F]+z0wx[0-9a-fA-F]+z0w\d+z~?\d+\.\d+[eE]~?\d+z ~?\d+\.\d+z~?\d+[eE]~?\d+z~?\d+z#\s*[1-9][0-9]*z#\s*(%s)z#\s+(%s)z\b(datatype|abstype)\b(?!\')dnamez\b(exception)\b(?!\')enamez4\b(functor|include|open|signature|structure)\b(?!\')snamez\b(type|eqtype)\b(?!\')tnamez \'[\w\']*z(%s)(\.)dottedz\S+rootz\b(val|and)\b(?!\')vnamez\b(fun)\b(?!\'))rQmain-funfnamerz\sz\b(fun|and)\b(?!\')rz\b(val)\b(?!\'))rQrnrrDz\b(case|handle)\b(?!\'))rQrnbreakoutz(?=\b(%s)\b(?!\'))\(tyvarseqz(%s)(\s*)(=(?!%s))z=(?!%s))rQtypbindrz\b(and)\b(?!\'))rQr|z(=)(\s*)(datatype))rQdatbinddatconr)rQryz\b(withtype)\b(?!\')z\b(of)\b(?!\')z (\|)(\s*)(%s)z (\|)(\s+)(%s)z(and\b)(\s+)(%s)z(and\b)(\s*)(%s)z (%s)|(%s)rI\)z[^(*)]#push\*\)[(*)])rzrrrlN),__name__ __module__ __qualname____doc__namealiases filenames mimetypesr[rdnonid_reserved alphanumid_re symbolicid_rerWrbrerhrr Multilinerr rfjoinr CharDoubler HexIntegerFloatr Label Decoratorrrrr\FunctionrVariableTypeClasstokensrUrUrUrVrs                 5   ?E S   i jlq z     ' 2  C    V    rc@seZdZdZdZdgZgdZdgZdZdZ dZ d Z d Z d Z d Zd ejfdejfdejfgdefdejjfdejdfdejfdedfddeefdde dddefde e e fefdde ejfddeejfdefdejfdejfd ej fd!ej!fd"ej"fd#ej#fd$ej#fd%efd&ej$d'fd(ej%fgd)efd*ed+fd,ed-fd.efgd/ej$fe&d0d1ej$fd&ej$d-fgdefd2e'fd3ejfd4ejd-fd5ed-fe(d-gd6Z)dS)7rz< For the OCaml language. .. versionadded:: 0.7 OCamlocaml)z*.mlz*.mliz*.mllz*.mlyz text/x-ocaml)0rassertbeginclass constraintrdonedowntor%rr;externalfalseforrfunctionr7rrrinherit initializerlazyr r`methodmodulemutablenewobjectrr&privater,r!r"r4r'totruetryr(valuer#virtualwhenr.r)))!=r>&&&rr\*\+rI--\.rA\.\.\.r?:::=rBrJ;;<<-r@>>]>\}\?\?\?\[\[<\[>\[\|rLrF`\{\{?@^|~-])rasrlandlorlsllxormodor[!?~][=<>@^|&+\*/$%-]unitintfloatboolrxrwlistarray \\[\\"\'ntbr]rO\\x[0-9a-fA-F]{2}rjfalse|true|\(\)|\[\]\b([A-Z][\w\']*)(?=\s*\.)r}\b([A-Z][\w\']*) \(\*(?![)])rl\b(%s)\brqrpN (%s|%s)?%s [^\W\d][\w']*(-?\d[\d_]*(.[\d_]*)?([eE][+\-]?\d[\d_]*)0[xX][\da-fA-F][\da-fA-F_]*0[oO][0-7][0-7_]*0[bB][01][01_]*\d[\d_]*7'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2}))''.''rPrx[~?][a-z][\w\']*:[^(*)]+rkrrrQr[^\\"]+escape-sequence\\\nr[A-Z][\w\']*(?=\s*\.) [A-Z][\w\']* [a-z_][\w\']*rr~rlrxr})*rrrrrrrrkeywordskeyopts operatorsword_operators prefix_syms infix_syms primitivesr rRrr BuiltinPseudor\rrrr r Wordrr rrOctBinrrrrrrrrrUrUrUrVrcsv       rc@seZdZdZdZdgZdgZdgZdZdZ dZ d Z id d e j fd e j fd e j fgddedfdefgdeddefgdedeedddefde dejjfdejfdejfdejfdejfdejfdejfdejfdejfd e jd!fd"e jfd#ed$fd%ed&fd'e jd(fd)ej fd*e d+ej fd,ej!fd-e d+efd.e efd.e efd/ed0fd1e ej"fd2e e jfd3e jfe efgd0edd4ej"fe#d5gd6edd7ej"d8fd9ej"d:fe d7ej"d8fe ej"d&fd1e ej"fe#d&gd;ede#d<gd=edd>ej"d?fe#d&gd@edd4ej"dAfdBej"dCfe#d&gdDeddEej"d;fd4ej"dAfe#d&gdFeddGej"fdHej"fd7ej"d$fdIej"d&fgdJeddKej"fdHej"fd#ej"d$fd%ej"d&fgddLefded$fdMed&fdHefgd!dNe jfd e jd&fd#edfed gdOdPe jfdQe jd&fd#edfed gd(dRe jdSfdTe jdUfgdVdWe jd&fgdefdXe jdYfdZe jd&fdTe jdUfgd1e jd[fd e jd\fd2e e jd&fd3e jd]fd^e jd&fd#ed]fgd_ed`fdae jdbfdce jd(fd#edfdde jfgdeed&fdfefgdgZ$dhS)irzU Lexer for the Opa language (http://opalang.org). .. versionadded:: 1.5 Opaopaz*.opaz text/x-opa)rrrr$clientcssdatabasedbrr%rrforallrrimportr`rrpackageparserr!serverr'r(r#r) xml_parserz(([a-zA-Z_]\w*)|(`[^`]*`))z[.=\-<>,@~%/+?*&^!]z [()\[\],;|]rz \\[\\"\'ntr}]rOrcommentsz/\*znested-commentz//.*?$zcomments-and-spacesrjr~z\b)prefixsuffix@z-?.[\d]+([eE][+\-]?\d+)z-?\d+.\d*([eE][+\-]?\d+)z-?\d+[eE][+\-]?\d+z0[xX][\da-fA-F]+z 0[oO][0-7]+z 0[bB][01]+z\d+z#[\da-fA-F]{3,6}rPrxz9'(?:(\\[\\\"'ntbr ])|(\\[0-9]{3})|(\\x[0-9a-fA-F]{2})|.)'rrrrQz<(?=[a-zA-Z>])z html-open-tagz[@?!]?(/\w+)+(\[_\])?z<-(?!rHz\b([A-Z]\w*)(?=\.)z=(?!z(%s)+r?r(rr>z#(?=\{)rA)rQ type-lhs-1type-with-slashtype-1r)rQ type-tuplez~?\{)rQ type-recordr&)rQ slash-type-1r'r*/)rQr'r%)rQr(z(?=,))rQ type-arrowr,z ,(?=[^:]*?->)r(z[^()/*]+z[/*]rr)z[^{}/*]+[^/*]+z\*/z[^\\"{]+ single-stringz [^\\\'{]+z\'z[\w\-:]+)rQ html-attrr)rQ html-content html-end-tagz [\w\-:]*>z [\w\-:]+=html-attr-valuez/>)rQr.)rQrx)rQr~z [^"\'{`=<>]+zz[^\-]+|-)r/r2r0r3N)%rrrrrrrrr ident_reop_repunc_rer rRrrrrr r rrr rrrrrrrr Singlerr\rrrrUrUrUrVrs        z     %  +  ;  B  ]f l y              rc@seZdZdZdZddgZddgZdgZdZd Z d Z d Z d Z d Z dZdejfdejfdejfgdefdejjfdejdfdejfdejfdejdfddeefdde dddejfde e e fefdde ejfddeejfd efd!ej fd"ej!fd#ej"fd$ej#fd%ej$fd&ej%fd'ej%fd(efd)ej&d*fd+ej'fgd,ejfd-ejd.fd/ejd0fd1ejfgd2ej&fe(d3d4ej&fd)ej&d0fgdefd5e)fd6ejfd7ejd0fd8ed0fe*d0gd9Z+dS):rz] For the ReasonML language (https://reasonml.github.io/). .. versionadded:: 2.6 ReasonMLreasonmlreasonz*.rez*.reiztext/x-reasonml)0rrrrrrrrr%rr;rrrresfunrr7rrrrrrr switchrpubrrnonrecrrr&prir!r"r4r'rrrr(r#rrr.r))+rr>rrrrrrrIrrrCrrz\.\.\.r?rrrBrJrrrr@rrrrrrrrrrLrFrrrrDz\|\|rrrr) rrrrrlsrrrrrrrrrOrrjrrr}rz//.*?\nz \/\*(?!/)rlrrqrpNrrrrrrrrrrrrPrxrr-z\/\*rz\*\/rQrrrrrrrrr),rrrrrrrrr r r r r rrr rRrr rrr\rrr7rrr r rrr rrrrrrrrrrrrrUrUrUrVrsx         rc@seZdZdZdZdgZddgZdgZdZdZ d Z d Z d Z d Z d ZdZdejfdejfdejfgdefdejjfdejdfdejfdedfdefddeefdde ejfdde ejfdde dddefdee e fefddeejfd efd!ej fd"ej!fd#ej"fd$ej#fd%ej$fd&ej%fd'ej%fd(efd)ej&fd*efd+ej'd,fd-ej(fgd.efd/ed0fd1ed2fd3efgd4ej'fe)d5d6ej'fd+ej'd2fgdefd7e*fd8ejfd9ejd2fd:ed2fe+d2gd;Z,dS)zu#rrrz\(\)rIz~>rArz<--z<==>z==>rrz\?\.z\.\[z\.\(z\.\(\|z\.\[\|z \{:patternr?rrrJrr@z%\[z!\{rz\[@rz\|>z\]z\|\]rrDrz\$rrrrrrOrrjzfalse|true|False|True|\(\)|\[\]rr}rrrlz^\/\/.+$rrqrpNrrrrrrrrrrrz\`([\w\'.]+)\`z\`rPrxrrrkrrrQrrrrrrrrr)-rrrrrrrrr  decl_keywordsassume_keywordsr r r rrr rRrr rrr\rrrr Exception Declarationr rr rrrrrrrrrrrrrrUrUrUrVr^s    !   r)rrrpygments.lexerrrrrrpygments.tokenrrr r r r r rr__all__rrrrrrUrUrUrVs ,Q\E\