mirror of
https://github.com/alecthomas/chroma.git
synced 2025-02-05 13:05:18 +02:00
Add support for Rego syntax (#918)
This commit is contained in:
parent
d7a7dd3331
commit
ae36e63369
88
lexers/embedded/rego.xml
Normal file
88
lexers/embedded/rego.xml
Normal file
@ -0,0 +1,88 @@
|
||||
<lexer>
|
||||
<config>
|
||||
<name>Rego</name>
|
||||
<alias>rego</alias>
|
||||
<filename>*.rego</filename>
|
||||
</config>
|
||||
<rules>
|
||||
<state name="root">
|
||||
<rule pattern="(package|import|as|not|with|default|else|some|in|if|contains)\b">
|
||||
<token type="KeywordDeclaration"/>
|
||||
</rule>
|
||||
<!-- importing keywords should then show up as keywords -->
|
||||
<rule pattern="(import)( future.keywords.)(\w+)">
|
||||
<bygroups>
|
||||
<token type="KeywordDeclaration"/>
|
||||
<token type="Text"/>
|
||||
<token type="KeywordDeclaration"/>
|
||||
</bygroups>
|
||||
</rule>
|
||||
<rule pattern="#[^\r\n]*">
|
||||
<token type="Comment"/>
|
||||
</rule>
|
||||
<rule pattern="(FIXME|TODO|XXX)\b( .*)$">
|
||||
<bygroups>
|
||||
<token type="Error"/>
|
||||
<token type="CommentSpecial"/>
|
||||
</bygroups>
|
||||
</rule>
|
||||
<rule pattern="(true|false|null)\b">
|
||||
<token type="KeywordConstant"/>
|
||||
</rule>
|
||||
<rule pattern="\d+i">
|
||||
<token type="LiteralNumber"/>
|
||||
</rule>
|
||||
<rule pattern="\d+\.\d*([Ee][-+]\d+)?i">
|
||||
<token type="LiteralNumber"/>
|
||||
</rule>
|
||||
<rule pattern="\.\d+([Ee][-+]\d+)?i">
|
||||
<token type="LiteralNumber"/>
|
||||
</rule>
|
||||
<rule pattern="\d+[Ee][-+]\d+i">
|
||||
<token type="LiteralNumber"/>
|
||||
</rule>
|
||||
<rule pattern="\d+(\.\d+[eE][+\-]?\d+|\.\d*|[eE][+\-]?\d+)">
|
||||
<token type="LiteralNumberFloat"/>
|
||||
</rule>
|
||||
<rule pattern="\.\d+([eE][+\-]?\d+)?">
|
||||
<token type="LiteralNumberFloat"/>
|
||||
</rule>
|
||||
<rule pattern="(0|[1-9][0-9]*)">
|
||||
<token type="LiteralNumberInteger"/>
|
||||
</rule>
|
||||
<rule pattern="""".*?"""">
|
||||
<token type="LiteralStringDouble"/>
|
||||
</rule>
|
||||
<rule pattern=""(\\\\|\\"|[^"])*"">
|
||||
<token type="LiteralStringDouble"/>
|
||||
</rule>
|
||||
<rule pattern="\$/((?!/\$).)*/\$">
|
||||
<token type="LiteralString"/>
|
||||
</rule>
|
||||
<rule pattern="/(\\\\|\\"|[^/])*/">
|
||||
<token type="LiteralString"/>
|
||||
</rule>
|
||||
<rule pattern="^(\w+)">
|
||||
<token type="Name"/>
|
||||
</rule>
|
||||
<rule pattern="[a-z_-][\w-]*(?=\()">
|
||||
<token type="NameFunction"/>
|
||||
</rule>
|
||||
<rule pattern="[\r\n\s]+">
|
||||
<token type="TextWhitespace"/>
|
||||
</rule>
|
||||
<rule pattern="(package|import)(\s+)">
|
||||
<bygroups>
|
||||
<token type="KeywordDeclaration"/>
|
||||
<token type="Text"/>
|
||||
</bygroups>
|
||||
</rule>
|
||||
<rule pattern="[=<>!+-/*&|]">
|
||||
<token type="Operator"/>
|
||||
</rule>
|
||||
<rule pattern=":=">
|
||||
<token type="Operator"/>
|
||||
</rule>
|
||||
</state>
|
||||
</rules>
|
||||
</lexer>
|
Loading…
x
Reference in New Issue
Block a user