1<?xml version="1.0" ?>
2<lexer>
3 <config>
4 <name>Sed</name>
5 <alias>sed</alias>
6 <alias>gsed</alias>
7 <alias>ssed</alias>
8 <filename>*.sed</filename>
9 <filename>*.[gs]sed</filename>
10 <mime_type>text/x-sed</mime_type>
11 </config>
12 <rules>
13 <state name="root">
14 <rule pattern="\s+">
15 <token type="TextWhitespace" />
16 </rule>
17 <rule pattern="#.*$">
18 <token type="CommentSingle" />
19 </rule>
20 <rule pattern="[0-9]+">
21 <token type="LiteralNumberInteger" />
22 </rule>
23 <rule pattern="\$">
24 <token type="Operator" />
25 </rule>
26 <rule pattern="[{};,!]">
27 <token type="Punctuation" />
28 </rule>
29 <rule pattern="[dDFgGhHlnNpPqQxz=]">
30 <token type="Keyword" />
31 </rule>
32 <rule pattern="([berRtTvwW:])([^;\n]*)">
33 <bygroups>
34 <token type="Keyword" />
35 <token type="LiteralStringSingle" />
36 </bygroups>
37 </rule>
38 <rule pattern="([aci])((?:.*?\\\n)*(?:.*?[^\\]$))">
39 <bygroups>
40 <token type="Keyword" />
41 <token type="LiteralStringDouble" />
42 </bygroups>
43 </rule>
44 <rule pattern="([qQ])([0-9]*)">
45 <bygroups>
46 <token type="Keyword" />
47 <token type="LiteralNumberInteger" />
48 </bygroups>
49 </rule>
50 <rule pattern="(/)((?:(?:\\[^\n]|[^\\])*?\\\n)*?(?:\\.|[^\\])*?)(/)">
51 <bygroups>
52 <token type="Punctuation" />
53 <token type="LiteralStringRegex" />
54 <token type="Punctuation" />
55 </bygroups>
56 </rule>
57 <rule pattern="(\\(.))((?:(?:\\[^\n]|[^\\])*?\\\n)*?(?:\\.|[^\\])*?)(\2)">
58 <bygroups>
59 <token type="Punctuation" />
60 <token type="Text" />
61 <token type="LiteralStringRegex" />
62 <token type="Punctuation" />
63 </bygroups>
64 </rule>
65 <rule
66 pattern="(y)(.)((?:(?:\\[^\n]|[^\\])*?\\\n)*?(?:\\.|[^\\])*?)(\2)((?:(?:\\[^\n]|[^\\])*?\\\n)*?(?:\\.|[^\\])*?)(\2)"
67 >
68 <bygroups>
69 <token type="Keyword" />
70 <token type="Punctuation" />
71 <token type="LiteralStringSingle" />
72 <token type="Punctuation" />
73 <token type="LiteralStringSingle" />
74 <token type="Punctuation" />
75 </bygroups>
76 </rule>
77 <rule
78 pattern="(s)(.)((?:(?:\\[^\n]|[^\\])*?\\\n)*?(?:\\.|[^\\])*?)(\2)((?:(?:\\[^\n]|[^\\])*?\\\n)*?(?:\\.|[^\\])*?)(\2)((?:[gpeIiMm]|[0-9])*)"
79 >
80 <bygroups>
81 <token type="Keyword" />
82 <token type="Punctuation" />
83 <token type="LiteralStringRegex" />
84 <token type="Punctuation" />
85 <token type="LiteralStringSingle" />
86 <token type="Punctuation" />
87 <token type="Keyword" />
88 </bygroups>
89 </rule>
90 </state>
91 </rules>
92</lexer>