mirror of
https://github.com/ralsina/tartrazine.git
synced 2025-04-03 14:58:22 +00:00
166 lines
4.7 KiB
XML
166 lines
4.7 KiB
XML
<lexer>
|
|
<config>
|
|
<name>ATL</name>
|
|
<alias>atl</alias>
|
|
<filename>*.atl</filename>
|
|
<mime_type>text/x-atl</mime_type>
|
|
<dot_all>true</dot_all>
|
|
</config>
|
|
<rules>
|
|
<state name="root">
|
|
<rule pattern="(--.*?)(\n)">
|
|
<bygroups>
|
|
<token type="CommentSingle" />
|
|
<token type="TextWhitespace" />
|
|
</bygroups>
|
|
</rule>
|
|
<rule pattern="(and|distinct|endif|else|for|foreach|if|implies|in|let|not|or|self|super|then|thisModule|xor)\b">
|
|
<token type="Keyword" />
|
|
</rule>
|
|
<rule pattern="(OclUndefined|true|false|#\w+)\b">
|
|
<token type="KeywordConstant" />
|
|
</rule>
|
|
<rule pattern="(module|query|library|create|from|to|uses)\b">
|
|
<token type="KeywordNamespace" />
|
|
</rule>
|
|
<rule pattern="(do)(\s*)({)">
|
|
<bygroups>
|
|
<token type="KeywordNamespace" />
|
|
<token type="TextWhitespace" />
|
|
<token type="Punctuation" />
|
|
</bygroups>
|
|
</rule>
|
|
<rule pattern="(abstract|endpoint|entrypoint|lazy|unique)(\s+)">
|
|
<bygroups>
|
|
<token type="KeywordDeclaration" />
|
|
<token type="TextWhitespace" />
|
|
</bygroups>
|
|
</rule>
|
|
<rule pattern="(rule)(\s+)">
|
|
<bygroups>
|
|
<token type="KeywordNamespace" />
|
|
<token type="TextWhitespace" />
|
|
</bygroups>
|
|
</rule>
|
|
<rule pattern="(helper)(\s+)">
|
|
<bygroups>
|
|
<token type="KeywordNamespace" />
|
|
<token type="TextWhitespace" />
|
|
</bygroups>
|
|
</rule>
|
|
<rule pattern="(context)(\s+)">
|
|
<bygroups>
|
|
<token type="KeywordNamespace" />
|
|
<token type="TextWhitespace" />
|
|
</bygroups>
|
|
</rule>
|
|
<rule pattern="(def)(\s*)(:)(\s*)">
|
|
<bygroups>
|
|
<token type="KeywordNamespace" />
|
|
<token type="TextWhitespace" />
|
|
<token type="Punctuation" />
|
|
<token type="TextWhitespace" />
|
|
</bygroups>
|
|
</rule>
|
|
<rule pattern="(Bag|Boolean|Integer|OrderedSet|Real|Sequence|Set|String|Tuple)">
|
|
<token type="KeywordType" />
|
|
</rule>
|
|
<rule pattern="(\w+)(\s*)(<-|<:=)">
|
|
<bygroups>
|
|
<token type="NameNamespace" />
|
|
<token type="TextWhitespace" />
|
|
<token type="Punctuation" />
|
|
</bygroups>
|
|
</rule>
|
|
<rule pattern="#"">
|
|
<token type="KeywordConstant" />
|
|
<push state="quotedenumliteral" />
|
|
</rule>
|
|
<rule pattern=""">
|
|
<token type="NameNamespace" />
|
|
<push state="quotedname" />
|
|
</rule>
|
|
<rule pattern="[^\S\n]+">
|
|
<token type="TextWhitespace" />
|
|
</rule>
|
|
<rule pattern="'">
|
|
<token type="LiteralString" />
|
|
<push state="string" />
|
|
</rule>
|
|
<rule
|
|
pattern="[0-9]*\.[0-9]+">
|
|
<token type="LiteralNumberFloat" />
|
|
</rule>
|
|
<rule pattern="0|[1-9][0-9]*">
|
|
<token type="LiteralNumberInteger" />
|
|
</rule>
|
|
<rule pattern="[*<>+=/-]">
|
|
<token type="Operator" />
|
|
</rule>
|
|
<rule pattern="([{}();:.,!|]|->)">
|
|
<token type="Punctuation" />
|
|
</rule>
|
|
<rule pattern="\n">
|
|
<token type="TextWhitespace" />
|
|
</rule>
|
|
<rule pattern="\w+">
|
|
<token type="NameNamespace" />
|
|
</rule>
|
|
</state>
|
|
<state name="string">
|
|
<rule pattern="[^\\']+">
|
|
<token type="LiteralString" />
|
|
</rule>
|
|
<rule pattern="\\\\">
|
|
<token type="LiteralString" />
|
|
</rule>
|
|
<rule pattern="\\'">
|
|
<token type="LiteralString" />
|
|
</rule>
|
|
<rule pattern="\\">
|
|
<token type="LiteralString" />
|
|
</rule>
|
|
<rule pattern="'">
|
|
<token type="LiteralString" />
|
|
<pop depth="1" />
|
|
</rule>
|
|
</state>
|
|
<state name="quotedname">
|
|
<rule pattern="[^\\"]+">
|
|
<token type="NameNamespace" />
|
|
</rule>
|
|
<rule pattern="\\\\">
|
|
<token type="NameNamespace" />
|
|
</rule>
|
|
<rule pattern="\\"">
|
|
<token type="NameNamespace" />
|
|
</rule>
|
|
<rule pattern="\\">
|
|
<token type="NameNamespace" />
|
|
</rule>
|
|
<rule pattern=""">
|
|
<token type="NameNamespace" />
|
|
<pop depth="1" />
|
|
</rule>
|
|
</state>
|
|
<state name="quotedenumliteral">
|
|
<rule pattern="[^\\"]+">
|
|
<token type="KeywordConstant" />
|
|
</rule>
|
|
<rule pattern="\\\\">
|
|
<token type="KeywordConstant" />
|
|
</rule>
|
|
<rule pattern="\\"">
|
|
<token type="KeywordConstant" />
|
|
</rule>
|
|
<rule pattern="\\">
|
|
<token type="KeywordConstant" />
|
|
</rule>
|
|
<rule pattern=""">
|
|
<token type="KeywordConstant" />
|
|
<pop depth="1" />
|
|
</rule>
|
|
</state>
|
|
</rules>
|
|
</lexer>
|