mirror of
https://github.com/ralsina/tartrazine.git
synced 2025-06-19 14:43:05 -03:00
Initial dumb stuff
This commit is contained in:
119
lexers/elm.xml
Normal file
119
lexers/elm.xml
Normal file
@ -0,0 +1,119 @@
|
||||
<lexer>
|
||||
<config>
|
||||
<name>Elm</name>
|
||||
<alias>elm</alias>
|
||||
<filename>*.elm</filename>
|
||||
<mime_type>text/x-elm</mime_type>
|
||||
</config>
|
||||
<rules>
|
||||
<state name="shader">
|
||||
<rule pattern="\|(?!\])">
|
||||
<token type="NameEntity"/>
|
||||
</rule>
|
||||
<rule pattern="\|\]">
|
||||
<token type="NameEntity"/>
|
||||
<pop depth="1"/>
|
||||
</rule>
|
||||
<rule pattern=".*\n">
|
||||
<token type="NameEntity"/>
|
||||
</rule>
|
||||
</state>
|
||||
<state name="root">
|
||||
<rule pattern="\{-">
|
||||
<token type="CommentMultiline"/>
|
||||
<push state="comment"/>
|
||||
</rule>
|
||||
<rule pattern="--.*">
|
||||
<token type="CommentSingle"/>
|
||||
</rule>
|
||||
<rule pattern="\s+">
|
||||
<token type="Text"/>
|
||||
</rule>
|
||||
<rule pattern=""">
|
||||
<token type="LiteralString"/>
|
||||
<push state="doublequote"/>
|
||||
</rule>
|
||||
<rule pattern="^\s*module\s*">
|
||||
<token type="KeywordNamespace"/>
|
||||
<push state="imports"/>
|
||||
</rule>
|
||||
<rule pattern="^\s*import\s*">
|
||||
<token type="KeywordNamespace"/>
|
||||
<push state="imports"/>
|
||||
</rule>
|
||||
<rule pattern="\[glsl\|.*">
|
||||
<token type="NameEntity"/>
|
||||
<push state="shader"/>
|
||||
</rule>
|
||||
<rule pattern="(import|module|alias|where|port|else|type|case|then|let|as|of|if|in)\b">
|
||||
<token type="KeywordReserved"/>
|
||||
</rule>
|
||||
<rule pattern="[A-Z]\w*">
|
||||
<token type="KeywordType"/>
|
||||
</rule>
|
||||
<rule pattern="^main ">
|
||||
<token type="KeywordReserved"/>
|
||||
</rule>
|
||||
<rule pattern="\((<-|\|\||\|>|&&|\+\+|->|\.\.|//|>>|>=|/=|==|::|<~|<\||<=|<<|~|<|=|:|>|'|/|\\|\.|\^|-|`|\+|\*|\||%)\)">
|
||||
<token type="NameFunction"/>
|
||||
</rule>
|
||||
<rule pattern="(<-|\|\||\|>|&&|\+\+|->|\.\.|//|>>|>=|/=|==|::|<~|<\||<=|<<|~|<|=|:|>|'|/|\\|\.|\^|-|`|\+|\*|\||%)">
|
||||
<token type="NameFunction"/>
|
||||
</rule>
|
||||
<rule>
|
||||
<include state="numbers"/>
|
||||
</rule>
|
||||
<rule pattern="[a-z_][a-zA-Z_\']*">
|
||||
<token type="NameVariable"/>
|
||||
</rule>
|
||||
<rule pattern="[,()\[\]{}]">
|
||||
<token type="Punctuation"/>
|
||||
</rule>
|
||||
</state>
|
||||
<state name="comment">
|
||||
<rule pattern="-(?!\})">
|
||||
<token type="CommentMultiline"/>
|
||||
</rule>
|
||||
<rule pattern="\{-">
|
||||
<token type="CommentMultiline"/>
|
||||
<push state="comment"/>
|
||||
</rule>
|
||||
<rule pattern="[^-}]">
|
||||
<token type="CommentMultiline"/>
|
||||
</rule>
|
||||
<rule pattern="-\}">
|
||||
<token type="CommentMultiline"/>
|
||||
<pop depth="1"/>
|
||||
</rule>
|
||||
</state>
|
||||
<state name="doublequote">
|
||||
<rule pattern="\\u[0-9a-fA-F]{4}">
|
||||
<token type="LiteralStringEscape"/>
|
||||
</rule>
|
||||
<rule pattern="\\[nrfvb\\"]">
|
||||
<token type="LiteralStringEscape"/>
|
||||
</rule>
|
||||
<rule pattern="[^"]">
|
||||
<token type="LiteralString"/>
|
||||
</rule>
|
||||
<rule pattern=""">
|
||||
<token type="LiteralString"/>
|
||||
<pop depth="1"/>
|
||||
</rule>
|
||||
</state>
|
||||
<state name="imports">
|
||||
<rule pattern="\w+(\.\w+)*">
|
||||
<token type="NameClass"/>
|
||||
<pop depth="1"/>
|
||||
</rule>
|
||||
</state>
|
||||
<state name="numbers">
|
||||
<rule pattern="_?\d+\.(?=\d+)">
|
||||
<token type="LiteralNumberFloat"/>
|
||||
</rule>
|
||||
<rule pattern="_?\d+">
|
||||
<token type="LiteralNumberInteger"/>
|
||||
</rule>
|
||||
</state>
|
||||
</rules>
|
||||
</lexer>
|
Reference in New Issue
Block a user