400 lines
25 KiB
XML
400 lines
25 KiB
XML
<lexer>
|
||
<config>
|
||
<name>Julia</name>
|
||
<alias>julia</alias>
|
||
<alias>jl</alias>
|
||
<filename>*.jl</filename>
|
||
<mime_type>text/x-julia</mime_type>
|
||
<mime_type>application/x-julia</mime_type>
|
||
</config>
|
||
<rules>
|
||
<state name="string">
|
||
<rule pattern="(")((?:[a-zA-Z_¡-][a-zA-Z_0-9!¡-]*)|\d+)?">
|
||
<bygroups>
|
||
<token type="LiteralString"/>
|
||
<token type="LiteralStringAffix"/>
|
||
</bygroups>
|
||
<pop depth="1"/>
|
||
</rule>
|
||
<rule pattern="\\([\\"\'$nrbtfav]|(x|u|U)[a-fA-F0-9]+|\d+)">
|
||
<token type="LiteralStringEscape"/>
|
||
</rule>
|
||
<rule>
|
||
<include state="interp"/>
|
||
</rule>
|
||
<rule pattern="%[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsux%]">
|
||
<token type="LiteralStringInterpol"/>
|
||
</rule>
|
||
<rule pattern="[^"$%\\]+">
|
||
<token type="LiteralString"/>
|
||
</rule>
|
||
<rule pattern=".">
|
||
<token type="LiteralString"/>
|
||
</rule>
|
||
</state>
|
||
<state name="curly">
|
||
<rule pattern="\{">
|
||
<token type="Punctuation"/>
|
||
<push/>
|
||
</rule>
|
||
<rule pattern="\}">
|
||
<token type="Punctuation"/>
|
||
<pop depth="1"/>
|
||
</rule>
|
||
<rule pattern="(?:[a-zA-Z_¡-][a-zA-Z_0-9!¡-]*)">
|
||
<token type="KeywordType"/>
|
||
</rule>
|
||
<rule>
|
||
<include state="root"/>
|
||
</rule>
|
||
</state>
|
||
<state name="rawstring">
|
||
<rule pattern=""">
|
||
<token type="LiteralString"/>
|
||
<pop depth="1"/>
|
||
</rule>
|
||
<rule pattern="\\"">
|
||
<token type="LiteralStringEscape"/>
|
||
</rule>
|
||
<rule pattern="([^"\\]|\\[^"])+">
|
||
<token type="LiteralString"/>
|
||
</rule>
|
||
</state>
|
||
<state name="tqcommand">
|
||
<rule pattern="(```)((?:[a-zA-Z_¡-][a-zA-Z_0-9!¡-]*)|\d+)?">
|
||
<bygroups>
|
||
<token type="LiteralStringBacktick"/>
|
||
<token type="LiteralStringAffix"/>
|
||
</bygroups>
|
||
<pop depth="1"/>
|
||
</rule>
|
||
<rule pattern="\\\$">
|
||
<token type="LiteralStringEscape"/>
|
||
</rule>
|
||
<rule>
|
||
<include state="interp"/>
|
||
</rule>
|
||
<rule pattern="[^\\`$]+">
|
||
<token type="LiteralStringBacktick"/>
|
||
</rule>
|
||
<rule pattern=".">
|
||
<token type="LiteralStringBacktick"/>
|
||
</rule>
|
||
</state>
|
||
<state name="in-intp">
|
||
<rule pattern="\(">
|
||
<token type="Punctuation"/>
|
||
<push/>
|
||
</rule>
|
||
<rule pattern="\)">
|
||
<token type="Punctuation"/>
|
||
<pop depth="1"/>
|
||
</rule>
|
||
<rule>
|
||
<include state="root"/>
|
||
</rule>
|
||
</state>
|
||
<state name="tqstring">
|
||
<rule pattern="(""")((?:[a-zA-Z_¡-][a-zA-Z_0-9!¡-]*)|\d+)?">
|
||
<bygroups>
|
||
<token type="LiteralString"/>
|
||
<token type="LiteralStringAffix"/>
|
||
</bygroups>
|
||
<pop depth="1"/>
|
||
</rule>
|
||
<rule pattern="\\([\\"\'$nrbtfav]|(x|u|U)[a-fA-F0-9]+|\d+)">
|
||
<token type="LiteralStringEscape"/>
|
||
</rule>
|
||
<rule>
|
||
<include state="interp"/>
|
||
</rule>
|
||
<rule pattern="[^"$%\\]+">
|
||
<token type="LiteralString"/>
|
||
</rule>
|
||
<rule pattern=".">
|
||
<token type="LiteralString"/>
|
||
</rule>
|
||
</state>
|
||
<state name="interp">
|
||
<rule pattern="\$(?:[a-zA-Z_¡-][a-zA-Z_0-9!¡-]*)">
|
||
<token type="LiteralStringInterpol"/>
|
||
</rule>
|
||
<rule pattern="(\$)(\()">
|
||
<bygroups>
|
||
<token type="LiteralStringInterpol"/>
|
||
<token type="Punctuation"/>
|
||
</bygroups>
|
||
<push state="in-intp"/>
|
||
</rule>
|
||
</state>
|
||
<state name="tqregex">
|
||
<rule pattern="(""")([imsxa]*)?">
|
||
<bygroups>
|
||
<token type="LiteralStringRegex"/>
|
||
<token type="LiteralStringAffix"/>
|
||
</bygroups>
|
||
<pop depth="1"/>
|
||
</rule>
|
||
<rule pattern="[^"]+">
|
||
<token type="LiteralStringRegex"/>
|
||
</rule>
|
||
</state>
|
||
<state name="root">
|
||
<rule pattern="\n">
|
||
<token type="Text"/>
|
||
</rule>
|
||
<rule pattern="[^\S\n]+">
|
||
<token type="Text"/>
|
||
</rule>
|
||
<rule pattern="#=">
|
||
<token type="CommentMultiline"/>
|
||
<push state="blockcomment"/>
|
||
</rule>
|
||
<rule pattern="#.*$">
|
||
<token type="Comment"/>
|
||
</rule>
|
||
<rule pattern="[\[\](),;]">
|
||
<token type="Punctuation"/>
|
||
</rule>
|
||
<rule pattern="((?:[a-zA-Z_¡-][a-zA-Z_0-9!¡-]*))(\s*)(:)((?:[a-zA-Z_¡-][a-zA-Z_0-9!¡-]*))">
|
||
<bygroups>
|
||
<token type="Name"/>
|
||
<token type="Text"/>
|
||
<token type="Operator"/>
|
||
<token type="Name"/>
|
||
</bygroups>
|
||
</rule>
|
||
<rule pattern="(?<![\]):<>\d.])(:(?:[a-zA-Z_¡-][a-zA-Z_0-9!¡-]*))">
|
||
<token type="LiteralStringSymbol"/>
|
||
</rule>
|
||
<rule pattern="(?<=::)(\s*)((?:[a-zA-Z_¡-][a-zA-Z_0-9!¡-]*))\b(?![(\[])">
|
||
<bygroups>
|
||
<token type="Text"/>
|
||
<token type="KeywordType"/>
|
||
</bygroups>
|
||
</rule>
|
||
<rule pattern="((?:[a-zA-Z_¡-][a-zA-Z_0-9!¡-]*))(\s*)([<>]:)(\s*)((?:[a-zA-Z_¡-][a-zA-Z_0-9!¡-]*))\b(?![(\[])">
|
||
<bygroups>
|
||
<token type="KeywordType"/>
|
||
<token type="Text"/>
|
||
<token type="Operator"/>
|
||
<token type="Text"/>
|
||
<token type="KeywordType"/>
|
||
</bygroups>
|
||
</rule>
|
||
<rule pattern="([<>]:)(\s*)((?:[a-zA-Z_¡-][a-zA-Z_0-9!¡-]*))\b(?![(\[])">
|
||
<bygroups>
|
||
<token type="Operator"/>
|
||
<token type="Text"/>
|
||
<token type="KeywordType"/>
|
||
</bygroups>
|
||
</rule>
|
||
<rule pattern="\b((?:[a-zA-Z_¡-][a-zA-Z_0-9!¡-]*))(\s*)([<>]:)">
|
||
<bygroups>
|
||
<token type="KeywordType"/>
|
||
<token type="Text"/>
|
||
<token type="Operator"/>
|
||
</bygroups>
|
||
</rule>
|
||
<rule pattern="(>>>=|<-->|≕'|⊻=|⇁|⥯|⥮|⥥|⥣|⥡|⥠|⥝|⥜|⥙|//=|⥘|⥕|÷=|⥔|<<=|>>=|↑|⥑|⥏|↓|≔|⩴|√|⥍|⥌|→|↔|↚|↛|↞|↠|↢|↣|↦|↤|↮|⇎|⇍|⇏|⇐|⇒|⇔|⇴|⇶|⇷|⇸|⇹|⇺|⇻|⇼|⇽|⇾|⇿|⟵|⟶|⟷|⟹|⟺|⟻|⟼|⟽|⟾|⟿|⤀|⤁|⤂|⤃|⤄|⤅|⤆|⤇|⤌|⤍|⤎|⤏|⤐|⤑|⤔|⤕|⤖|⤗|⤘|⤝|⤞|⤟|⤠|⥄|⥅|⥆|⥇|⥈|⥊|⥋|⥎|⥐|⥒|⥓|⥖|⥗|⥚|⥛|⥞|⥟|⥢|⥤|⥦|⥧|⥨|⥩|⥪|⥫|⥬|⥭|⥰|⧴|⬱|⬰|⬲|⬳|⬴|⬵|⬶|⬷|⬸|⬹|⬺|⬻|⬼|⬽|⬾|⬿|⭀|⭁|⭂|⭃|⭄|⭇|⭈|⭉|⭊|⭋|⭌|←|→|⇜|⇝|↜|↝|↩|↪|↫|↬|↼|↽|⇀|⥉|⇄|⇆|⇇|⇉|⇋|⇌|⇚|⇛|⇠|⇢|↷|↶|↺|↻|-->|<--|∛|⤓|⤒|⤋|≥|⤊|≤|⤉|===|≡|⤈|≠|!==|≢|∈|∉|∋|∌|⊆|⊈|⊂|⊄|⊊|∝|∊|∍|∥|∦|∷|∺|∻|∽|∾|≁|≃|≂|≄|≅|≆|≇|≈|≉|≊|≋|≌|≍|≎|≐|≑|≒|≓|≖|≗|≘|≙|≚|≛|≜|≝|≞|≟|≣|≦|≧|≨|≩|≪|≫|≬|≭|≮|≯|≰|≱|≲|≳|≴|≵|≶|≷|≸|≹|≺|≻|≼|≽|≾|≿|⊀|⊁|⊃|⊅|⊇|⊉|⊋|⊏|⊐|⊑|⊒|⊜|⊩|⊬|⊮|⊰|⊱|⊲|⊳|⊴|⊵|⊶|⊷|⋍|⋐|⋑|⋕|⋖|⋗|⋘|⋙|⋚|⋛|⋜|⋝|⋞|⋟|⋠|⋡|⋢|⋣|⋤|⋥|⋦|⋧|⋨|⋩|⋪|⋫|⋬|⋭|⋲|⋳|⋴|⋵|⋶|⋷|⩚|⋹|⋺|⋻|⋼|⋽|⋾|⋿|⟈|⟉|⟒|⦷|⧀|⧁|⧡|⧣|⧤|⧥|⩦|⩧|⩪|⩫|⩬|⩭|⩮|⩯|⩰|⩱|⩲|⩳|⩵|⩶|⩷|⩸|⩹|⩺|⩻|⩼|⩽|⩾|⩿|⪀|⪁|⪂|⪃|⪄|⪅|⪆|⪇|⪈|⪉|⪊|⪋|⪌|⪍|⪎|⪏|⪐|⪑|⪒|⪓|⪔|⪕|⪖|⪗|⪘|⪙|⪚|⪛|⪜|⪝|⪞|⪟|⪠|⪡|⪢|⪣|⪤|⪥|⪦|⪧|⪨|⪩|⪪|⪫|⪬|⪭|⪮|⪯|⪰|⪱|⪲|⪳|⪴|⪵|⪶|⪷|⪸|⪹|⪺|⪻|⪼|⪽|⪾|⪿|⫀|⫁|⫂|⫃|⫄|⫅|⫆|⫇|⫈|⫉|⫊|⫋|⫌|⫍|⫎|⫏|⫐|⫑|⫒|⫓|⫔|⫕|⫖|⫗|⫘|⫙|⫷|⫸|⫹|⫺|⊢|⊣|⟂|⟱|⟰|⇵|↓|…|⁝|⋮|⋱|⋰|⋯|↑|>>>|⨟|⟗|⊕|⊖|⊞|⊟|⟖|∪|∨|⊔|⟕|∓|∔|∸|≏|⊎|⊻|⊽|⋎|⋓|⧺|⧻|⨈|⨢|⨣|⨤|⨥|⨦|⨧|⨨|⨩|⨪|⨫|⨬|⨭|⨮|⨹|⨺|⩁|⩂|⩅|⩊|⩌|⩏|⩐|⩒|⩔|⩖|⩗|⩛|⩝|⩡|⩢|⩣|⨝|▷|⌿|⊍|⫛|⩠|⋅|∘|⩟|⩞|∩|∧|⊗|⊘|⊙|⊚|⊛|⊠|⊡|⊓|∗|∙|∤|⅋|≀|⊼|⋄|⋆|⋇|⋉|⋊|⋋|⋌|⋏|⋒|⟑|⦸|⦼|⦾|⦿|⧶|⧷|⨇|⨰|⨱|⨲|⨳|⨴|⨵|⨶|⨷|⨸|⨻|⨼|⨽|⩀|⩃|⩄|⩋|⩍|⩎|⩑|⩓|⩕|⩘|⋸|⩜|∜|\^=|:=|\$=|÷|¬|\|\||±|\+\+|&&|¦|//|>>|<<|::|-=|\*=|\|>|<\||>:|<:|!=|==|<=|>=|/=|%=|->|=>|\\=|&=|\|=|×|\+=|:|<|\+|\^|\\|=|-|\$|~|\||\*|\?|!|/|%|&|>)[²³¹ʰʲʳʷʸˡˢˣᴬᴮᴰᴱᴳᴴᴵᴶᴷᴸᴹᴺᴼᴾᴿᵀᵁᵂᵃᵇᵈᵉᵍᵏᵐᵒᵖᵗᵘᵛᵝᵞᵟᵠᵡᵢᵣᵤᵥᵦᵧᵨᵩᵪᶜᶠᶥᶦᶫᶰᶸᶻᶿ′″‴‵‶‷⁗⁰ⁱ⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿ₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎ₐₑₒₓₕₖₗₘₙₚₛₜⱼⱽ]*">
|
||
<token type="Operator"/>
|
||
</rule>
|
||
<rule pattern="(\.>>>=|\.<-->|\.≕'|\.⊻=|\.⇚|\.//=|\.⥯|\.⥮|\.÷=|\.⥥|\.<<=|\.>>=|\.↑|\.⥣|\.⥡|\.↓|\.≔|\.⩴|\.√|\.⥠|\.⥝|\.→|\.↔|\.↚|\.↛|\.↞|\.↠|\.↢|\.↣|\.↦|\.↤|\.↮|\.⇎|\.⇍|\.⇏|\.⇐|\.⇒|\.⇔|\.⇴|\.⇶|\.⇷|\.⇸|\.⇹|\.⇺|\.⇻|\.⇼|\.⇽|\.⇾|\.⇿|\.⟵|\.⟶|\.⟷|\.⟹|\.⟺|\.⟻|\.⟼|\.⟽|\.⟾|\.⟿|\.⤀|\.⤁|\.⤂|\.⤃|\.⤄|\.⤅|\.⤆|\.⤇|\.⤌|\.⤍|\.⤎|\.⤏|\.⤐|\.⤑|\.⤔|\.⤕|\.⤖|\.⤗|\.⤘|\.⤝|\.⤞|\.⤟|\.⤠|\.⥄|\.⥅|\.⥆|\.⥇|\.⥈|\.⥊|\.⥋|\.⥎|\.⥐|\.⥒|\.⥓|\.⥖|\.⥗|\.⥚|\.⥛|\.⥞|\.⥟|\.⥢|\.⥤|\.⥦|\.⥧|\.⥨|\.⥩|\.⥪|\.⥫|\.⥬|\.⥭|\.⥰|\.⧴|\.⬱|\.⬰|\.⬲|\.⬳|\.⬴|\.⬵|\.⬶|\.⬷|\.⬸|\.⬹|\.⬺|\.⬻|\.⬼|\.⬽|\.⬾|\.⬿|\.⭀|\.⭁|\.⭂|\.⭃|\.⭄|\.⭇|\.⭈|\.⭉|\.⭊|\.⭋|\.⭌|\.←|\.→|\.⇜|\.⇝|\.↜|\.↝|\.↩|\.↪|\.↫|\.↬|\.↼|\.↽|\.⇀|\.⇁|\.⇄|\.⇆|\.⇇|\.⇉|\.⇋|\.⇌|\.⥜|\.⇛|\.⇠|\.⇢|\.↷|\.↶|\.↺|\.↻|\.-->|\.<--|\.∛|\.⥙|\.⥘|\.⥕|\.≥|\.⥔|\.≤|\.⥑|\.===|\.≡|\.⥏|\.≠|\.!==|\.≢|\.∈|\.∉|\.∋|\.∌|\.⊆|\.⊈|\.⊂|\.⊄|\.⊊|\.∝|\.∊|\.∍|\.∥|\.∦|\.∷|\.∺|\.∻|\.∽|\.∾|\.≁|\.≃|\.≂|\.≄|\.≅|\.≆|\.≇|\.≈|\.≉|\.≊|\.≋|\.≌|\.≍|\.≎|\.≐|\.≑|\.≒|\.≓|\.≖|\.≗|\.≘|\.≙|\.≚|\.≛|\.≜|\.≝|\.≞|\.≟|\.≣|\.≦|\.≧|\.≨|\.≩|\.≪|\.≫|\.≬|\.≭|\.≮|\.≯|\.≰|\.≱|\.≲|\.≳|\.≴|\.≵|\.≶|\.≷|\.≸|\.≹|\.≺|\.≻|\.≼|\.≽|\.≾|\.≿|\.⊀|\.⊁|\.⊃|\.⊅|\.⊇|\.⊉|\.⊋|\.⊏|\.⊐|\.⊑|\.⊒|\.⊜|\.⊩|\.⊬|\.⊮|\.⊰|\.⊱|\.⊲|\.⊳|\.⊴|\.⊵|\.⊶|\.⊷|\.⋍|\.⋐|\.⋑|\.⋕|\.⋖|\.⋗|\.⋘|\.⋙|\.⋚|\.⋛|\.⋜|\.⋝|\.⋞|\.⋟|\.⋠|\.⋡|\.⋢|\.⋣|\.⋤|\.⋥|\.⋦|\.⋧|\.⋨|\.⋩|\.⋪|\.⋫|\.⋬|\.⋭|\.⋲|\.⋳|\.⋴|\.⋵|\.⋶|\.⋷|\.⋸|\.⋹|\.⋺|\.⋻|\.⟕|\.⋽|\.⋾|\.⋿|\.⟈|\.⟉|\.⟒|\.⦷|\.⧀|\.⧁|\.⧡|\.⧣|\.⧤|\.⧥|\.⩦|\.⩧|\.⩪|\.⩫|\.⩬|\.⩭|\.⩮|\.⩯|\.⩰|\.⩱|\.⩲|\.⩳|\.⩵|\.⩶|\.⩷|\.⩸|\.⩹|\.⩺|\.⩻|\.⩼|\.⩽|\.⩾|\.⩿|\.⪀|\.⪁|\.⪂|\.⪃|\.⪄|\.⪅|\.⪆|\.⪇|\.⪈|\.⪉|\.⪊|\.⪋|\.⪌|\.⪍|\.⪎|\.⪏|\.⪐|\.⪑|\.⪒|\.⪓|\.⪔|\.⪕|\.⪖|\.⪗|\.⪘|\.⪙|\.⪚|\.⪛|\.⪜|\.⪝|\.⪞|\.⪟|\.⪠|\.⪡|\.⪢|\.⪣|\.⪤|\.⪥|\.⪦|\.⪧|\.⪨|\.⪩|\.⪪|\.⪫|\.⪬|\.⪭|\.⪮|\.⪯|\.⪰|\.⪱|\.⪲|\.⪳|\.⪴|\.⪵|\.⪶|\.⪷|\.⪸|\.⪹|\.⪺|\.⪻|\.⪼|\.⪽|\.⪾|\.⪿|\.⫀|\.⫁|\.⫂|\.⫃|\.⫄|\.⫅|\.⫆|\.⫇|\.⫈|\.⫉|\.⫊|\.⫋|\.⫌|\.⫍|\.⫎|\.⫏|\.⫐|\.⫑|\.⫒|\.⫓|\.⫔|\.⫕|\.⫖|\.⫗|\.⫘|\.⫙|\.⫷|\.⫸|\.⫹|\.⫺|\.⊢|\.⊣|\.⟂|\.⥍|\.⥌|\.⥉|\.⤓|\.…|\.⁝|\.⋮|\.⋱|\.⋰|\.⋯|\.⤒|\.⤋|\.⤊|\.⤉|\.⊕|\.⊖|\.⊞|\.⊟|\.⤈|\.∪|\.∨|\.⊔|\.⟱|\.∓|\.∔|\.∸|\.≏|\.⊎|\.⊻|\.⊽|\.⋎|\.⋓|\.⧺|\.⧻|\.⨈|\.⨢|\.⨣|\.⨤|\.⨥|\.⨦|\.⨧|\.⨨|\.⨩|\.⨪|\.⨫|\.⨬|\.⨭|\.⨮|\.⨹|\.⨺|\.⩁|\.⩂|\.⩅|\.⩊|\.⩌|\.⩏|\.⩐|\.⩒|\.⩔|\.⩖|\.⩗|\.⩛|\.⩝|\.⩡|\.⩢|\.⩣|\.⟰|\.⇵|\.⌿|\.↓|\.↑|\.>>>|\.⋅|\.∘|\.⨟|\.⟗|\.∩|\.∧|\.⊗|\.⊘|\.⊙|\.⊚|\.⊛|\.⊠|\.⊡|\.⊓|\.∗|\.∙|\.∤|\.⅋|\.≀|\.⊼|\.⋄|\.⋆|\.⋇|\.⋉|\.⋊|\.⋋|\.⋌|\.⋏|\.⋒|\.⟑|\.⦸|\.⦼|\.⦾|\.⦿|\.⧶|\.⧷|\.⨇|\.⨰|\.⨱|\.⨲|\.⨳|\.⨴|\.⨵|\.⨶|\.⨷|\.⨸|\.⨻|\.⨼|\.⨽|\.⩀|\.⩃|\.⩄|\.⩋|\.⩍|\.⩎|\.⩑|\.⩓|\.⩕|\.⩘|\.⩚|\.⩜|\.⩞|\.⩟|\.⩠|\.⫛|\.⊍|\.▷|\.⨝|\.⋼|\.⟖|\.∜|\.=>|\.//|\.>>|\.<<|\.\+=|\.×|\.-=|\.÷|\.¬|\.\*=|\./=|\.\+\+|\.\\=|\.¦|\.\^=|\.!=|\.\|>|\.<\||\.>:|\.<:|\.±|\.==|\.<=|\.>=|\.%=|\.&=|\.\|=|\.=|\.~|\.>|\.\\|\.<|\.-|\.\||\.\^|\.\*|\.!|\./|\.%|\.&|\.\+)[²³¹ʰʲʳʷʸˡˢˣᴬᴮᴰᴱᴳᴴᴵᴶᴷᴸᴹᴺᴼᴾᴿᵀᵁᵂᵃᵇᵈᵉᵍᵏᵐᵒᵖᵗᵘᵛᵝᵞᵟᵠᵡᵢᵣᵤᵥᵦᵧᵨᵩᵪᶜᶠᶥᶦᶫᶰᶸᶻᶿ′″‴‵‶‷⁗⁰ⁱ⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿ₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎ₐₑₒₓₕₖₗₘₙₚₛₜⱼⱽ]*">
|
||
<token type="Operator"/>
|
||
</rule>
|
||
<rule pattern="(\.\.\.|\.\.)">
|
||
<token type="Operator"/>
|
||
</rule>
|
||
<rule pattern="'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,3}|\\u[a-fA-F0-9]{1,4}|\\U[a-fA-F0-9]{1,6}|[^\\\'\n])'">
|
||
<token type="LiteralStringChar"/>
|
||
</rule>
|
||
<rule pattern="(?<=[.\w)\]])(\'[²³¹ʰʲʳʷʸˡˢˣᴬᴮᴰᴱᴳᴴᴵᴶᴷᴸᴹᴺᴼᴾᴿᵀᵁᵂᵃᵇᵈᵉᵍᵏᵐᵒᵖᵗᵘᵛᵝᵞᵟᵠᵡᵢᵣᵤᵥᵦᵧᵨᵩᵪᶜᶠᶥᶦᶫᶰᶸᶻᶿ′″‴‵‶‷⁗⁰ⁱ⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿ₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎ₐₑₒₓₕₖₗₘₙₚₛₜⱼⱽ]*)+">
|
||
<token type="Operator"/>
|
||
</rule>
|
||
<rule pattern="(raw)(""")">
|
||
<bygroups>
|
||
<token type="LiteralStringAffix"/>
|
||
<token type="LiteralString"/>
|
||
</bygroups>
|
||
<push state="tqrawstring"/>
|
||
</rule>
|
||
<rule pattern="(raw)(")">
|
||
<bygroups>
|
||
<token type="LiteralStringAffix"/>
|
||
<token type="LiteralString"/>
|
||
</bygroups>
|
||
<push state="rawstring"/>
|
||
</rule>
|
||
<rule pattern="(r)(""")">
|
||
<bygroups>
|
||
<token type="LiteralStringAffix"/>
|
||
<token type="LiteralStringRegex"/>
|
||
</bygroups>
|
||
<push state="tqregex"/>
|
||
</rule>
|
||
<rule pattern="(r)(")">
|
||
<bygroups>
|
||
<token type="LiteralStringAffix"/>
|
||
<token type="LiteralStringRegex"/>
|
||
</bygroups>
|
||
<push state="regex"/>
|
||
</rule>
|
||
<rule pattern="((?:[a-zA-Z_¡-][a-zA-Z_0-9!¡-]*))?(""")">
|
||
<bygroups>
|
||
<token type="LiteralStringAffix"/>
|
||
<token type="LiteralString"/>
|
||
</bygroups>
|
||
<push state="tqstring"/>
|
||
</rule>
|
||
<rule pattern="((?:[a-zA-Z_¡-][a-zA-Z_0-9!¡-]*))?(")">
|
||
<bygroups>
|
||
<token type="LiteralStringAffix"/>
|
||
<token type="LiteralString"/>
|
||
</bygroups>
|
||
<push state="string"/>
|
||
</rule>
|
||
<rule pattern="((?:[a-zA-Z_¡-][a-zA-Z_0-9!¡-]*))?(```)">
|
||
<bygroups>
|
||
<token type="LiteralStringAffix"/>
|
||
<token type="LiteralStringBacktick"/>
|
||
</bygroups>
|
||
<push state="tqcommand"/>
|
||
</rule>
|
||
<rule pattern="((?:[a-zA-Z_¡-][a-zA-Z_0-9!¡-]*))?(`)">
|
||
<bygroups>
|
||
<token type="LiteralStringAffix"/>
|
||
<token type="LiteralStringBacktick"/>
|
||
</bygroups>
|
||
<push state="command"/>
|
||
</rule>
|
||
<rule pattern="((?:[a-zA-Z_¡-][a-zA-Z_0-9!¡-]*))(\{)">
|
||
<bygroups>
|
||
<token type="KeywordType"/>
|
||
<token type="Punctuation"/>
|
||
</bygroups>
|
||
<push state="curly"/>
|
||
</rule>
|
||
<rule pattern="(where)(\s+)((?:[a-zA-Z_¡-][a-zA-Z_0-9!¡-]*))">
|
||
<bygroups>
|
||
<token type="Keyword"/>
|
||
<token type="Text"/>
|
||
<token type="KeywordType"/>
|
||
</bygroups>
|
||
</rule>
|
||
<rule pattern="(\{)">
|
||
<token type="Punctuation"/>
|
||
<push state="curly"/>
|
||
</rule>
|
||
<rule pattern="(abstract[ \t]+type|primitive[ \t]+type|mutable[ \t]+struct|struct)([\s()]+)((?:[a-zA-Z_¡-][a-zA-Z_0-9!¡-]*))">
|
||
<bygroups>
|
||
<token type="Keyword"/>
|
||
<token type="Text"/>
|
||
<token type="KeywordType"/>
|
||
</bygroups>
|
||
</rule>
|
||
<rule pattern="@(?:[a-zA-Z_¡-][a-zA-Z_0-9!¡-]*)">
|
||
<token type="NameDecorator"/>
|
||
</rule>
|
||
<rule pattern="@(>>>=|<-->|≕'|⊻=|↽|⥯|⥮|⥥|⥣|⥡|⥠|⥝|⥜|⥙|⥘|⥕|//=|⥔|⥑|÷=|⥏|<<=|>>=|↑|⥍|⥌|↓|≔|⩴|√|⥉|⤓|→|↔|↚|↛|↞|↠|↢|↣|↦|↤|↮|⇎|⇍|⇏|⇐|⇒|⇔|⇴|⇶|⇷|⇸|⇹|⇺|⇻|⇼|⇽|⇾|⇿|⟵|⟶|⟷|⟹|⟺|⟻|⟼|⟽|⟾|⟿|⤀|⤁|⤂|⤃|⤄|⤅|⤆|⤇|⤌|⤍|⤎|⤏|⤐|⤑|⤔|⤕|⤖|⤗|⤘|⤝|⤞|⤟|⤠|⥄|⥅|⥆|⥇|⥈|⥊|⥋|⥎|⥐|⥒|⥓|⥖|⥗|⥚|⥛|⥞|⥟|⥢|⥤|⥦|⥧|⥨|⥩|⥪|⥫|⥬|⥭|⥰|⧴|⬱|⬰|⬲|⬳|⬴|⬵|⬶|⬷|⬸|⬹|⬺|⬻|⬼|⬽|⬾|⬿|⭀|⭁|⭂|⭃|⭄|⭇|⭈|⭉|⭊|⭋|⭌|←|→|⇜|⇝|↜|↝|↩|↪|↫|↬|↼|⤒|⇀|⇁|⇄|⇆|⇇|⇉|⇋|⇌|⇚|⇛|⇠|⇢|↷|↶|↺|↻|-->|<--|∛|⤋|⤊|⤉|≥|⤈|≤|⟱|===|≡|⟰|≠|!==|≢|∈|∉|∋|∌|⊆|⊈|⊂|⊄|⊊|∝|∊|∍|∥|∦|∷|∺|∻|∽|∾|≁|≃|≂|≄|≅|≆|≇|≈|≉|≊|≋|≌|≍|≎|≐|≑|≒|≓|≖|≗|≘|≙|≚|≛|≜|≝|≞|≟|≣|≦|≧|≨|≩|≪|≫|≬|≭|≮|≯|≰|≱|≲|≳|≴|≵|≶|≷|≸|≹|≺|≻|≼|≽|≾|≿|⊀|⊁|⊃|⊅|⊇|⊉|⊋|⊏|⊐|⊑|⊒|⊜|⊩|⊬|⊮|⊰|⊱|⊲|⊳|⊴|⊵|⊶|⊷|⋍|⋐|⋑|⋕|⋖|⋗|⋘|⋙|⋚|⋛|⋜|⋝|⋞|⋟|⋠|⋡|⋢|⋣|⋤|⋥|⋦|⋧|⋨|⋩|⋪|⋫|⋬|⋭|⋲|⋳|⋴|⋵|⋶|⩕|⋸|⋹|⋺|⋻|⋼|⋽|⋾|⋿|⟈|⟉|⟒|⦷|⧀|⧁|⧡|⧣|⧤|⧥|⩦|⩧|⩪|⩫|⩬|⩭|⩮|⩯|⩰|⩱|⩲|⩳|⩵|⩶|⩷|⩸|⩹|⩺|⩻|⩼|⩽|⩾|⩿|⪀|⪁|⪂|⪃|⪄|⪅|⪆|⪇|⪈|⪉|⪊|⪋|⪌|⪍|⪎|⪏|⪐|⪑|⪒|⪓|⪔|⪕|⪖|⪗|⪘|⪙|⪚|⪛|⪜|⪝|⪞|⪟|⪠|⪡|⪢|⪣|⪤|⪥|⪦|⪧|⪨|⪩|⪪|⪫|⪬|⪭|⪮|⪯|⪰|⪱|⪲|⪳|⪴|⪵|⪶|⪷|⪸|⪹|⪺|⪻|⪼|⪽|⪾|⪿|⫀|⫁|⫂|⫃|⫄|⫅|⫆|⫇|⫈|⫉|⫊|⫋|⫌|⫍|⫎|⫏|⫐|⫑|⫒|⫓|⫔|⫕|⫖|⫗|⫘|⫙|⫷|⫸|⫹|⫺|⊢|⊣|⟂|⇵|↓|↑|>>>|…|⁝|⋮|⋱|⋰|⋯|⨟|⟗|⟖|⟕|⊕|⊖|⊞|⊟|⨝|∪|∨|⊔|▷|∓|∔|∸|≏|⊎|⊻|⊽|⋎|⋓|⧺|⧻|⨈|⨢|⨣|⨤|⨥|⨦|⨧|⨨|⨩|⨪|⨫|⨬|⨭|⨮|⨹|⨺|⩁|⩂|⩅|⩊|⩌|⩏|⩐|⩒|⩔|⩖|⩗|⩛|⩝|⩡|⩢|⩣|⊍|⫛|⌿|⩠|⩟|⩞|⋅|∘|⩜|⩚|∩|∧|⊗|⊘|⊙|⊚|⊛|⊠|⊡|⊓|∗|∙|∤|⅋|≀|⊼|⋄|⋆|⋇|⋉|⋊|⋋|⋌|⋏|⋒|⟑|⦸|⦼|⦾|⦿|⧶|⧷|⨇|⨰|⨱|⨲|⨳|⨴|⨵|⨶|⨷|⨸|⨻|⨼|⨽|⩀|⩃|⩄|⩋|⩍|⩎|⩑|⩓|⋷|⩘|∜|\\=|:=|\$=|÷|¬|\|\||±|\+\+|&&|¦|::|\.\.|//|>>|<<|\|>|\+=|<\||>:|<:|!=|==|<=|>=|-=|\*=|->|=>|/=|&=|\|=|%=|\^=|×|~|>|<|\^|=|\.|\+|-|\$|:|\||\*|\?|!|/|%|&|\\)[²³¹ʰʲʳʷʸˡˢˣᴬᴮᴰᴱᴳᴴᴵᴶᴷᴸᴹᴺᴼᴾᴿᵀᵁᵂᵃᵇᵈᵉᵍᵏᵐᵒᵖᵗᵘᵛᵝᵞᵟᵠᵡᵢᵣᵤᵥᵦᵧᵨᵩᵪᶜᶠᶥᶦᶫᶰᶸᶻᶿ′″‴‵‶‷⁗⁰ⁱ⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿ₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎ₐₑₒₓₕₖₗₘₙₚₛₜⱼⱽ]*">
|
||
<token type="NameDecorator"/>
|
||
</rule>
|
||
<rule pattern="(baremodule|continue|function|finally|module|import|elseif|return|export|global|macro|catch|where|begin|const|ccall|using|quote|break|while|local|else|let|isa|try|for|end|in|if|do)\b">
|
||
<token type="Keyword"/>
|
||
</rule>
|
||
<rule pattern="(ProcessFailedException|InvalidStateException|ReadOnlyMemoryError|TaskFailedException|InterruptException|StackOverflowError|CompositeException|AbstractIrrational|SubstitutionString|ExponentialBackOff|UndefKeywordError|CapturedException|DimensionMismatch|AbstractUnitRange|SegmentationFault|PermutedDimsArray|AbstractVecOrMat|UndefInitializer|CartesianIndices|OutOfMemoryError|ComposedFunction|MissingException|StringIndexError|PartialQuickSort|AbstractDisplay|AbstractPattern|StridedVecOrMat|AbstractChannel|LineNumberNode|AbstractVector|CartesianIndex|AssertionError|IndexCartesian|ErrorException|AbstractMatrix|AbstractString|OverflowError|UndefRefError|LinearIndices|DenseVecOrMat|ArgumentError|StridedVector|StridedMatrix|AbstractArray|AbstractRange|ReentrantLock|AbstractMatch|AbstractFloat|VersionNumber|UndefVarError|RoundingMode|StridedArray|StepRangeLen|OrdinalRange|AbstractChar|AbstractDict|InexactError|DenseVector|WeakKeyDict|MethodError|AbstractSet|IndexLinear|BoundsError|TextDisplay|DomainError|DenseMatrix|SystemError|DivideError|NamedTuple|IndexStyle|Cptrdiff_t|Cuintmax_t|DenseArray|ComplexF16|Irrational|VecElement|Culonglong|RegexMatch|ComplexF32|ComplexF64|BitMatrix|BitVector|Exception|GlobalRef|UnitRange|QuoteNode|TypeError|IOContext|LoadError|Clonglong|Condition|StepRange|Cintmax_t|SubString|InitError|Cssize_t|VecOrMat|BigFloat|Unsigned|UnionAll|Rational|EOFError|BitArray|IOStream|IOBuffer|KeyError|LinRange|Cwchar_t|SubArray|Function|DataType|Cwstring|Csize_t|Float64|Missing|Float32|Complex|Cstring|Float16|Nothing|Cdouble|Cushort|UInt128|Integer|WeakRef|Channel|TypeVar|Cshort|Cfloat|NTuple|IdDict|BitSet|BigInt|UInt16|Symbol|UInt32|Vector|Signed|Vararg|Culong|String|Int128|Number|UInt64|Cuchar|Matrix|Module|Method|Tuple|Int16|Colon|Cuint|UInt8|Regex|Clong|Cvoid|Cchar|Int32|RawFD|Array|Union|Int64|Timer|Pipe|Type|HTML|Text|UInt|MIME|Char|Cint|Some|Expr|Real|Enum|Pair|Dims|Int8|Dict|Task|Bool|Any|Cmd|Int|Set|Ref|Ptr|Val|IO)\b">
|
||
<token type="KeywordType"/>
|
||
</rule>
|
||
<rule pattern="(RoundNearestTiesAway|RoundNearestTiesUp|InsertionSort|RoundFromZero|PROGRAM_FILE|RoundNearest|RoundToZero|ENDIAN_BOM|DEPOT_PATH|RoundDown|QuickSort|MergeSort|LOAD_PATH|VERSION|missing|nothing|devnull|RoundUp|C_NULL|stdout|stderr|NaN32|NaN16|Inf64|Inf32|Inf16|false|stdin|undef|NaN64|true|ARGS|ℯ|NaN|Inf|ENV|im|π|pi)\b">
|
||
<token type="NameBuiltin"/>
|
||
</rule>
|
||
<rule pattern="(?:[a-zA-Z_¡-][a-zA-Z_0-9!¡-]*)">
|
||
<token type="Name"/>
|
||
</rule>
|
||
<rule pattern="(\d+((_\d+)+)?\.(?!\.)(\d+((_\d+)+)?)?|\.\d+((_\d+)+)?)([eEf][+-]?[0-9]+)?">
|
||
<token type="LiteralNumberFloat"/>
|
||
</rule>
|
||
<rule pattern="\d+((_\d+)+)?[eEf][+-]?[0-9]+">
|
||
<token type="LiteralNumberFloat"/>
|
||
</rule>
|
||
<rule pattern="0x[a-fA-F0-9]+((_[a-fA-F0-9]+)+)?(\.([a-fA-F0-9]+((_[a-fA-F0-9]+)+)?)?)?p[+-]?\d+">
|
||
<token type="LiteralNumberFloat"/>
|
||
</rule>
|
||
<rule pattern="0b[01]+((_[01]+)+)?">
|
||
<token type="LiteralNumberBin"/>
|
||
</rule>
|
||
<rule pattern="0o[0-7]+((_[0-7]+)+)?">
|
||
<token type="LiteralNumberOct"/>
|
||
</rule>
|
||
<rule pattern="0x[a-fA-F0-9]+((_[a-fA-F0-9]+)+)?">
|
||
<token type="LiteralNumberHex"/>
|
||
</rule>
|
||
<rule pattern="\d+((_\d+)+)?">
|
||
<token type="LiteralNumberInteger"/>
|
||
</rule>
|
||
<rule pattern="(\.)">
|
||
<token type="Operator"/>
|
||
</rule>
|
||
</state>
|
||
<state name="blockcomment">
|
||
<rule pattern="[^=#]">
|
||
<token type="CommentMultiline"/>
|
||
</rule>
|
||
<rule pattern="#=">
|
||
<token type="CommentMultiline"/>
|
||
<push/>
|
||
</rule>
|
||
<rule pattern="=#">
|
||
<token type="CommentMultiline"/>
|
||
<pop depth="1"/>
|
||
</rule>
|
||
<rule pattern="[=#]">
|
||
<token type="CommentMultiline"/>
|
||
</rule>
|
||
</state>
|
||
<state name="command">
|
||
<rule pattern="(`)((?:[a-zA-Z_¡-][a-zA-Z_0-9!¡-]*)|\d+)?">
|
||
<bygroups>
|
||
<token type="LiteralStringBacktick"/>
|
||
<token type="LiteralStringAffix"/>
|
||
</bygroups>
|
||
<pop depth="1"/>
|
||
</rule>
|
||
<rule pattern="\\[`$]">
|
||
<token type="LiteralStringEscape"/>
|
||
</rule>
|
||
<rule>
|
||
<include state="interp"/>
|
||
</rule>
|
||
<rule pattern="[^\\`$]+">
|
||
<token type="LiteralStringBacktick"/>
|
||
</rule>
|
||
<rule pattern=".">
|
||
<token type="LiteralStringBacktick"/>
|
||
</rule>
|
||
</state>
|
||
<state name="tqrawstring">
|
||
<rule pattern=""""">
|
||
<token type="LiteralString"/>
|
||
<pop depth="1"/>
|
||
</rule>
|
||
<rule pattern="([^"]|"[^"][^"])+">
|
||
<token type="LiteralString"/>
|
||
</rule>
|
||
</state>
|
||
<state name="regex">
|
||
<rule pattern="(")([imsxa]*)?">
|
||
<bygroups>
|
||
<token type="LiteralStringRegex"/>
|
||
<token type="LiteralStringAffix"/>
|
||
</bygroups>
|
||
<pop depth="1"/>
|
||
</rule>
|
||
<rule pattern="\\"">
|
||
<token type="LiteralStringRegex"/>
|
||
</rule>
|
||
<rule pattern="[^\\"]+">
|
||
<token type="LiteralStringRegex"/>
|
||
</rule>
|
||
</state>
|
||
</rules>
|
||
</lexer> |