...
1<lexer>
2 <config>
3 <name>Hexdump</name>
4 <alias>hexdump</alias>
5 </config>
6 <rules>
7 <state name="offset">
8 <rule pattern="^([0-9A-Ha-h]+)(:)">
9 <bygroups>
10 <token type="NameLabel"/>
11 <token type="Punctuation"/>
12 </bygroups>
13 <push state="offset-mode"/>
14 </rule>
15 <rule pattern="^[0-9A-Ha-h]+">
16 <token type="NameLabel"/>
17 </rule>
18 </state>
19 <state name="offset-mode">
20 <rule pattern="\s">
21 <token type="Text"/>
22 <pop depth="1"/>
23 </rule>
24 <rule pattern="[0-9A-Ha-h]+">
25 <token type="NameLabel"/>
26 </rule>
27 <rule pattern=":">
28 <token type="Punctuation"/>
29 </rule>
30 </state>
31 <state name="piped-strings">
32 <rule pattern="\n">
33 <token type="Text"/>
34 </rule>
35 <rule>
36 <include state="offset"/>
37 </rule>
38 <rule pattern="[0-9A-Ha-h]{2}">
39 <token type="LiteralNumberHex"/>
40 </rule>
41 <rule pattern="(\s{2,3})(\|)(.{1,16})(\|)$">
42 <bygroups>
43 <token type="Text"/>
44 <token type="Punctuation"/>
45 <token type="LiteralString"/>
46 <token type="Punctuation"/>
47 </bygroups>
48 </rule>
49 <rule pattern="\s">
50 <token type="Text"/>
51 </rule>
52 <rule pattern="^\*">
53 <token type="Punctuation"/>
54 </rule>
55 </state>
56 <state name="bracket-strings">
57 <rule pattern="\n">
58 <token type="Text"/>
59 </rule>
60 <rule>
61 <include state="offset"/>
62 </rule>
63 <rule pattern="[0-9A-Ha-h]{2}">
64 <token type="LiteralNumberHex"/>
65 </rule>
66 <rule pattern="(\s{2,3})(\>)(.{1,16})(\<)$">
67 <bygroups>
68 <token type="Text"/>
69 <token type="Punctuation"/>
70 <token type="LiteralString"/>
71 <token type="Punctuation"/>
72 </bygroups>
73 </rule>
74 <rule pattern="\s">
75 <token type="Text"/>
76 </rule>
77 <rule pattern="^\*">
78 <token type="Punctuation"/>
79 </rule>
80 </state>
81 <state name="nonpiped-strings">
82 <rule pattern="\n">
83 <token type="Text"/>
84 </rule>
85 <rule>
86 <include state="offset"/>
87 </rule>
88 <rule pattern="([0-9A-Ha-h]{2})(\-)([0-9A-Ha-h]{2})">
89 <bygroups>
90 <token type="LiteralNumberHex"/>
91 <token type="Punctuation"/>
92 <token type="LiteralNumberHex"/>
93 </bygroups>
94 </rule>
95 <rule pattern="[0-9A-Ha-h]{2}">
96 <token type="LiteralNumberHex"/>
97 </rule>
98 <rule pattern="(\s{19,})(.{1,20}?)$">
99 <bygroups>
100 <token type="Text"/>
101 <token type="LiteralString"/>
102 </bygroups>
103 </rule>
104 <rule pattern="(\s{2,3})(.{1,20})$">
105 <bygroups>
106 <token type="Text"/>
107 <token type="LiteralString"/>
108 </bygroups>
109 </rule>
110 <rule pattern="\s">
111 <token type="Text"/>
112 </rule>
113 <rule pattern="^\*">
114 <token type="Punctuation"/>
115 </rule>
116 </state>
117 <state name="root">
118 <rule pattern="\n">
119 <token type="Text"/>
120 </rule>
121 <rule>
122 <include state="offset"/>
123 </rule>
124 <rule pattern="([0-9A-Ha-h]{2})(\-)([0-9A-Ha-h]{2})">
125 <bygroups>
126 <token type="LiteralNumberHex"/>
127 <token type="Punctuation"/>
128 <token type="LiteralNumberHex"/>
129 </bygroups>
130 </rule>
131 <rule pattern="[0-9A-Ha-h]{2}">
132 <token type="LiteralNumberHex"/>
133 </rule>
134 <rule pattern="(\s{2,3})(\>)(.{16})(\<)$">
135 <bygroups>
136 <token type="Text"/>
137 <token type="Punctuation"/>
138 <token type="LiteralString"/>
139 <token type="Punctuation"/>
140 </bygroups>
141 <push state="bracket-strings"/>
142 </rule>
143 <rule pattern="(\s{2,3})(\|)(.{16})(\|)$">
144 <bygroups>
145 <token type="Text"/>
146 <token type="Punctuation"/>
147 <token type="LiteralString"/>
148 <token type="Punctuation"/>
149 </bygroups>
150 <push state="piped-strings"/>
151 </rule>
152 <rule pattern="(\s{2,3})(\>)(.{1,15})(\<)$">
153 <bygroups>
154 <token type="Text"/>
155 <token type="Punctuation"/>
156 <token type="LiteralString"/>
157 <token type="Punctuation"/>
158 </bygroups>
159 </rule>
160 <rule pattern="(\s{2,3})(\|)(.{1,15})(\|)$">
161 <bygroups>
162 <token type="Text"/>
163 <token type="Punctuation"/>
164 <token type="LiteralString"/>
165 <token type="Punctuation"/>
166 </bygroups>
167 </rule>
168 <rule pattern="(\s{2,3})(.{1,15})$">
169 <bygroups>
170 <token type="Text"/>
171 <token type="LiteralString"/>
172 </bygroups>
173 </rule>
174 <rule pattern="(\s{2,3})(.{16}|.{20})$">
175 <bygroups>
176 <token type="Text"/>
177 <token type="LiteralString"/>
178 </bygroups>
179 <push state="nonpiped-strings"/>
180 </rule>
181 <rule pattern="\s">
182 <token type="Text"/>
183 </rule>
184 <rule pattern="^\*">
185 <token type="Punctuation"/>
186 </rule>
187 </state>
188 </rules>
189</lexer>
View as plain text