1+ <lexer >
2+ <config >
3+ <name >Rego</name >
4+ <alias >rego</alias >
5+ <filename >*.rego</filename >
6+ </config >
7+ <rules >
8+ <state name =" root" >
9+ <rule pattern =" (package|import|as|not|with|default|else|some|in|if|contains)\b" >
10+ <token type =" KeywordDeclaration" />
11+ </rule >
12+ <!-- importing keywords should then show up as keywords -->
13+ <rule pattern =" (import)( future.keywords.)(\w+)" >
14+ <bygroups >
15+ <token type =" KeywordDeclaration" />
16+ <token type =" Text" />
17+ <token type =" KeywordDeclaration" />
18+ </bygroups >
19+ </rule >
20+ <rule pattern =" #[^\r\n]*" >
21+ <token type =" Comment" />
22+ </rule >
23+ <rule pattern =" (FIXME|TODO|XXX)\b( .*)$" >
24+ <bygroups >
25+ <token type =" Error" />
26+ <token type =" CommentSpecial" />
27+ </bygroups >
28+ </rule >
29+ <rule pattern =" (true|false|null)\b" >
30+ <token type =" KeywordConstant" />
31+ </rule >
32+ <rule pattern =" \d+i" >
33+ <token type =" LiteralNumber" />
34+ </rule >
35+ <rule pattern =" \d+\.\d*([Ee][-+]\d+)?i" >
36+ <token type =" LiteralNumber" />
37+ </rule >
38+ <rule pattern =" \.\d+([Ee][-+]\d+)?i" >
39+ <token type =" LiteralNumber" />
40+ </rule >
41+ <rule pattern =" \d+[Ee][-+]\d+i" >
42+ <token type =" LiteralNumber" />
43+ </rule >
44+ <rule pattern =" \d+(\.\d+[eE][+\-]?\d+|\.\d*|[eE][+\-]?\d+)" >
45+ <token type =" LiteralNumberFloat" />
46+ </rule >
47+ <rule pattern =" \.\d+([eE][+\-]?\d+)?" >
48+ <token type =" LiteralNumberFloat" />
49+ </rule >
50+ <rule pattern =" (0|[1-9][0-9]*)" >
51+ <token type =" LiteralNumberInteger" />
52+ </rule >
53+ <rule pattern =" """ .*?""" " >
54+ <token type =" LiteralStringDouble" />
55+ </rule >
56+ <rule pattern =" " (\\\\|\\" |[^" ])*" " >
57+ <token type =" LiteralStringDouble" />
58+ </rule >
59+ <rule pattern =" \$/((?!/\$).)*/\$" >
60+ <token type =" LiteralString" />
61+ </rule >
62+ <rule pattern =" /(\\\\|\\" |[^/])*/" >
63+ <token type =" LiteralString" />
64+ </rule >
65+ <rule pattern =" ^(\w+)" >
66+ <token type =" Name" />
67+ </rule >
68+ <rule pattern =" [a-z_-][\w-]*(?=\()" >
69+ <token type =" NameFunction" />
70+ </rule >
71+ <rule pattern =" [\r\n\s]+" >
72+ <token type =" TextWhitespace" />
73+ </rule >
74+ <rule pattern =" (package|import)(\s+)" >
75+ <bygroups >
76+ <token type =" KeywordDeclaration" />
77+ <token type =" Text" />
78+ </bygroups >
79+ </rule >
80+ <rule pattern =" [=<> !+-/*& |]" >
81+ <token type =" Operator" />
82+ </rule >
83+ <rule pattern =" :=" >
84+ <token type =" Operator" />
85+ </rule >
86+ </state >
87+ </rules >
88+ </lexer >
0 commit comments