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