1<lexer>
2 <config>
3 <name>scdoc</name>
4 <alias>scdoc</alias>
5 <filename>*.scd</filename>
6 <filename>*.scdoc</filename>
7 </config>
8 <rules>
9 <state name="root">
10 <rule pattern="(?m)^; .*$">
11 <token type="Comment"/>
12 </rule>
13 <rule pattern="(?m)^([A-Z][A-Z0-9_-]*)(\()([0-9]+)(\))(.*)$">
14 <bygroups>
15 <token type="NameFunction"/>
16 <token type="Punctuation"/>
17 <token type="LiteralNumber"/>
18 <token type="Punctuation"/>
19 <token type="Text"/>
20 </bygroups>
21 </rule>
22 <rule pattern="(?m)^(##)( +)(.+)$">
23 <bygroups>
24 <token type="GenericSubheading"/>
25 <token type="Text"/>
26 <token type="Text"/>
27 </bygroups>
28 </rule>
29 <rule pattern="(?m)^(#)( +)(.+)$">
30 <bygroups>
31 <token type="GenericHeading"/>
32 <token type="Text"/>
33 <token type="GenericStrong"/>
34 </bygroups>
35 </rule>
36 <rule pattern="(?m)^```$">
37 <token type="LiteralStringBacktick"/>
38 <push state="literal_block"/>
39 </rule>
40 <rule pattern="(?m)^(\s*)(- )(.*)$">
41 <bygroups>
42 <token type="Text"/>
43 <token type="Keyword"/>
44 <usingself state="inline"/>
45 </bygroups>
46 </rule>
47 <rule pattern="(?m)^(\s*)(\. )(.*)$">
48 <bygroups>
49 <token type="Text"/>
50 <token type="Keyword"/>
51 <usingself state="inline"/>
52 </bygroups>
53 </rule>
54 <rule pattern="(?m)^\t[^ \t].*$">
55 <token type="LiteralStringBacktick"/>
56 </rule>
57 <rule pattern="(?m)^\t+$">
58 <token type="LiteralStringBacktick"/>
59 </rule>
60 <rule pattern="(?m)^(\s*)([|:\[\]].*)$">
61 <bygroups>
62 <token type="Text"/>
63 <token type="Punctuation"/>
64 </bygroups>
65 </rule>
66 <rule pattern="(?m)^(.*)(\+\+)$">
67 <bygroups>
68 <usingself state="inline"/>
69 <token type="Operator"/>
70 </bygroups>
71 </rule>
72 <rule>
73 <include state="inline"/>
74 </rule>
75 </state>
76 <state name="literal_block">
77 <rule pattern="(?m)^```$">
78 <token type="LiteralStringBacktick"/>
79 <pop depth="1"/>
80 </rule>
81 <rule pattern=".*\n?">
82 <token type="LiteralStringBacktick"/>
83 </rule>
84 </state>
85 <state name="inline">
86 <rule pattern="\\.">
87 <token type="LiteralStringEscape"/>
88 </rule>
89 <rule pattern="(\*)([^*\n]+)(\*)">
90 <bygroups>
91 <token type="Punctuation"/>
92 <token type="GenericStrong"/>
93 <token type="Punctuation"/>
94 </bygroups>
95 </rule>
96 <rule pattern="(_)([^_\n]+?)(_)((?=\W|\n|$))">
97 <bygroups>
98 <token type="Punctuation"/>
99 <token type="GenericUnderline"/>
100 <token type="Punctuation"/>
101 <token type="Text"/>
102 </bygroups>
103 </rule>
104 <rule pattern="[^*_\\\n]+">
105 <token type="Text"/>
106 </rule>
107 <rule pattern="\n">
108 <token type="Text"/>
109 </rule>
110 <rule pattern=".">
111 <token type="Text"/>
112 </rule>
113 </state>
114 </rules>
115</lexer>