...
1<lexer>
2 <config>
3 <name>VB.net</name>
4 <alias>vb.net</alias>
5 <alias>vbnet</alias>
6 <filename>*.vb</filename>
7 <filename>*.bas</filename>
8 <mime_type>text/x-vbnet</mime_type>
9 <mime_type>text/x-vba</mime_type>
10 <case_insensitive>true</case_insensitive>
11 </config>
12 <rules>
13 <state name="dim">
14 <rule pattern="[_\w][\w]*">
15 <token type="NameVariable"/>
16 <pop depth="1"/>
17 </rule>
18 <rule>
19 <pop depth="1"/>
20 </rule>
21 </state>
22 <state name="funcname">
23 <rule pattern="[_\w][\w]*">
24 <token type="NameFunction"/>
25 <pop depth="1"/>
26 </rule>
27 </state>
28 <state name="classname">
29 <rule pattern="[_\w][\w]*">
30 <token type="NameClass"/>
31 <pop depth="1"/>
32 </rule>
33 </state>
34 <state name="namespace">
35 <rule pattern="[_\w][\w]*">
36 <token type="NameNamespace"/>
37 </rule>
38 <rule pattern="\.">
39 <token type="NameNamespace"/>
40 </rule>
41 <rule>
42 <pop depth="1"/>
43 </rule>
44 </state>
45 <state name="end">
46 <rule pattern="\s+">
47 <token type="Text"/>
48 </rule>
49 <rule pattern="(Function|Sub|Property|Class|Structure|Enum|Module|Namespace)\b">
50 <token type="Keyword"/>
51 <pop depth="1"/>
52 </rule>
53 <rule>
54 <pop depth="1"/>
55 </rule>
56 </state>
57 <state name="root">
58 <rule pattern="^\s*<.*?>">
59 <token type="NameAttribute"/>
60 </rule>
61 <rule pattern="\s+">
62 <token type="Text"/>
63 </rule>
64 <rule pattern="\n">
65 <token type="Text"/>
66 </rule>
67 <rule pattern="rem\b.*?\n">
68 <token type="Comment"/>
69 </rule>
70 <rule pattern="'.*?\n">
71 <token type="Comment"/>
72 </rule>
73 <rule pattern="#If\s.*?\sThen|#ElseIf\s.*?\sThen|#Else|#End\s+If|#Const|#ExternalSource.*?\n|#End\s+ExternalSource|#Region.*?\n|#End\s+Region|#ExternalChecksum">
74 <token type="CommentPreproc"/>
75 </rule>
76 <rule pattern="[(){}!#,.:]">
77 <token type="Punctuation"/>
78 </rule>
79 <rule pattern="Option\s+(Strict|Explicit|Compare)\s+(On|Off|Binary|Text)">
80 <token type="KeywordDeclaration"/>
81 </rule>
82 <rule pattern="(?<!\.)(NotOverridable|NotInheritable|RemoveHandler|MustOverride|Overridable|MustInherit|Implements|RaiseEvent|AddHandler|ParamArray|WithEvents|DirectCast|Overrides|Overloads|Protected|WriteOnly|Interface|Narrowing|Inherits|Widening|SyncLock|ReadOnly|Operator|Continue|Delegate|Optional|MyClass|Declare|CUShort|Handles|Default|Shadows|TryCast|Finally|Private|Nothing|Partial|CSByte|Select|Option|Return|Friend|Resume|ElseIf|MyBase|Shared|Single|Public|CShort|Static|Global|Catch|CType|Error|CUInt|Using|While|GoSub|False|CDate|Throw|Event|CChar|CULng|CBool|Erase|ByVal|ByRef|Alias|EndIf|CByte|ReDim|Stop|Call|Wend|Next|CLng|Loop|True|CDec|With|Then|GoTo|CObj|CSng|Exit|CStr|Else|Each|Case|CInt|Step|When|CDbl|Set|For|Let|Lib|Try|New|Not|Get|On|To|Do|If|Of|Me)\b">
83 <token type="Keyword"/>
84 </rule>
85 <rule pattern="(?<!\.)End\b">
86 <token type="Keyword"/>
87 <push state="end"/>
88 </rule>
89 <rule pattern="(?<!\.)(Dim|Const)\b">
90 <token type="Keyword"/>
91 <push state="dim"/>
92 </rule>
93 <rule pattern="(?<!\.)(Function|Sub|Property)(\s+)">
94 <bygroups>
95 <token type="Keyword"/>
96 <token type="Text"/>
97 </bygroups>
98 <push state="funcname"/>
99 </rule>
100 <rule pattern="(?<!\.)(Class|Structure|Enum)(\s+)">
101 <bygroups>
102 <token type="Keyword"/>
103 <token type="Text"/>
104 </bygroups>
105 <push state="classname"/>
106 </rule>
107 <rule pattern="(?<!\.)(Module|Namespace|Imports)(\s+)">
108 <bygroups>
109 <token type="Keyword"/>
110 <token type="Text"/>
111 </bygroups>
112 <push state="namespace"/>
113 </rule>
114 <rule pattern="(?<!\.)(Boolean|Byte|Char|Date|Decimal|Double|Integer|Long|Object|SByte|Short|Single|String|Variant|UInteger|ULong|UShort)\b">
115 <token type="KeywordType"/>
116 </rule>
117 <rule pattern="(?<!\.)(AddressOf|And|AndAlso|As|GetType|In|Is|IsNot|Like|Mod|Or|OrElse|TypeOf|Xor)\b">
118 <token type="OperatorWord"/>
119 </rule>
120 <rule pattern="&=|[*]=|/=|\\=|\^=|\+=|-=|<<=|>>=|<<|>>|:=|<=|>=|<>|[-&*/\\^+=<>\[\]]">
121 <token type="Operator"/>
122 </rule>
123 <rule pattern=""">
124 <token type="LiteralString"/>
125 <push state="string"/>
126 </rule>
127 <rule pattern="_\n">
128 <token type="Text"/>
129 </rule>
130 <rule pattern="[_\w][\w]*">
131 <token type="Name"/>
132 </rule>
133 <rule pattern="#.*?#">
134 <token type="LiteralDate"/>
135 </rule>
136 <rule pattern="(\d+\.\d*|\d*\.\d+)(F[+-]?[0-9]+)?">
137 <token type="LiteralNumberFloat"/>
138 </rule>
139 <rule pattern="\d+([SILDFR]|US|UI|UL)?">
140 <token type="LiteralNumberInteger"/>
141 </rule>
142 <rule pattern="&H[0-9a-f]+([SILDFR]|US|UI|UL)?">
143 <token type="LiteralNumberInteger"/>
144 </rule>
145 <rule pattern="&O[0-7]+([SILDFR]|US|UI|UL)?">
146 <token type="LiteralNumberInteger"/>
147 </rule>
148 </state>
149 <state name="string">
150 <rule pattern="""">
151 <token type="LiteralString"/>
152 </rule>
153 <rule pattern=""C?">
154 <token type="LiteralString"/>
155 <pop depth="1"/>
156 </rule>
157 <rule pattern="[^"]+">
158 <token type="LiteralString"/>
159 </rule>
160 </state>
161 </rules>
162</lexer>
View as plain text