]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/modes/rest.xml
0f51ecf57921bfcbfbbf82974a5fe50869053319
[factor.git] / basis / xmode / modes / rest.xml
1 <?xml version="1.0"?>\r
2 \r
3 <!DOCTYPE MODE SYSTEM "xmode.dtd">\r
4 \r
5 <MODE>\r
6         <PROPS>\r
7                 <PROPERTY NAME="lineComment" VALUE=".. "/>\r
8                 <!-- indent after literal blocks and directives -->\r
9                 <PROPERTY NAME="indentNextLines" VALUE=".*::$"/>\r
10         </PROPS>\r
11 \r
12         <RULES IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="FALSE" ESCAPE="\">\r
13 \r
14                 <!-- targets -->\r
15                 <EOL_SPAN AT_LINE_START="TRUE" TYPE="KEYWORD3">__</EOL_SPAN>\r
16                 <EOL_SPAN AT_LINE_START="TRUE" TYPE="KEYWORD3">.. _</EOL_SPAN>\r
17 \r
18                 <!-- section titles -->\r
19                 <SEQ_REGEXP HASH_CHAR="===" TYPE="LABEL">={3,}</SEQ_REGEXP>\r
20                 <SEQ_REGEXP HASH_CHAR="---" TYPE="LABEL">-{3,}</SEQ_REGEXP>\r
21                 <SEQ_REGEXP HASH_CHAR="~~~" TYPE="LABEL">~{3,}</SEQ_REGEXP>\r
22                 <SEQ_REGEXP HASH_CHAR="###" TYPE="LABEL">#{3,}</SEQ_REGEXP>\r
23                 <SEQ_REGEXP HASH_CHAR='"""' TYPE="LABEL">"{3,}</SEQ_REGEXP>\r
24                 <SEQ_REGEXP HASH_CHAR="^^^" TYPE="LABEL">\^{3,}</SEQ_REGEXP>\r
25                 <SEQ_REGEXP HASH_CHAR="+++" TYPE="LABEL">\+{3,}</SEQ_REGEXP>\r
26                 <SEQ_REGEXP HASH_CHAR="***" TYPE="LABEL">\*{3,}</SEQ_REGEXP>\r
27 \r
28                 <!-- replacement -->\r
29                 <SEQ_REGEXP\r
30                         HASH_CHAR=".."\r
31                         AT_LINE_START="TRUE"\r
32                         TYPE="LITERAL3"\r
33                 >\.\.\s\|[^|]+\|</SEQ_REGEXP>\r
34 \r
35                 <!-- substitution -->\r
36                 <SEQ_REGEXP\r
37                         HASH_CHAR="|"\r
38                         AT_LINE_START="FALSE"\r
39                         TYPE="LITERAL4"\r
40                 >\|[^|]+\|</SEQ_REGEXP>\r
41 \r
42                 <!-- directives: .. name:: -->\r
43                 <SEQ_REGEXP\r
44                         HASH_CHAR=".."\r
45                         AT_LINE_START="TRUE"\r
46                         TYPE="LITERAL2"\r
47                 >\.\.\s[A-z][A-z0-9-_]+::</SEQ_REGEXP>\r
48 \r
49                 <!-- strong emphasis: **...** -->\r
50                 <SEQ_REGEXP\r
51                         HASH_CHAR="**"\r
52                         AT_LINE_START="FALSE"\r
53                         TYPE="KEYWORD2"\r
54                 >\*\*[^*]+\*\*</SEQ_REGEXP>\r
55 \r
56                 <!-- emphasis: *...* -->\r
57                 <SEQ_REGEXP\r
58                         HASH_CHAR="*"\r
59                         AT_LINE_START="FALSE"\r
60                         TYPE="KEYWORD4"\r
61                 >\*[^\s*][^*]*\*</SEQ_REGEXP>\r
62 \r
63                 <!-- comments -->\r
64                 <EOL_SPAN AT_LINE_START="TRUE" TYPE="COMMENT1">.. </EOL_SPAN>\r
65 \r
66                 <!-- links: `...`_ or `...`__ -->\r
67                 <SEQ_REGEXP\r
68                         HASH_CHAR="`"\r
69                         TYPE="LABEL"\r
70                 >`[A-z0-9]+[^`]+`_{1,2}</SEQ_REGEXP>\r
71 \r
72                 <!-- footnote reference: [0]_ -->\r
73                 <SEQ_REGEXP\r
74                         HASH_CHAR="["\r
75                         TYPE="LABEL"\r
76                 >\[[0-9]+\]_</SEQ_REGEXP>\r
77 \r
78                 <!-- footnote reference: [#]_ or [#foo]_ -->\r
79                 <SEQ_REGEXP\r
80                         HASH_CHAR="[#"\r
81                         TYPE="LABEL"\r
82                 >\[#[A-z0-9_]*\]_</SEQ_REGEXP>\r
83 \r
84                 <!-- footnote reference: [*]_ -->\r
85                 <SEQ TYPE="LABEL">[*]_</SEQ>\r
86 \r
87                 <!-- citation reference: [foo]_ -->\r
88                 <SEQ_REGEXP\r
89                         HASH_CHAR="["\r
90                         TYPE="LABEL"\r
91                 >\[[A-z][A-z0-9_-]*\]_</SEQ_REGEXP>\r
92 \r
93                 <!-- inline literal: ``...``-->\r
94                 <!--<SEQ_REGEXP\r
95                         HASH_CHAR="``"\r
96                         TYPE="LITERAL1"\r
97                 >``[^`]+``</SEQ_REGEXP>-->\r
98                 <SPAN TYPE="LITERAL1">\r
99                         <BEGIN>``</BEGIN>\r
100                         <END>``</END>\r
101                 </SPAN>\r
102 \r
103                 <!-- interpreted text: `...` -->\r
104                 <!--\r
105                 <SEQ_REGEXP\r
106                         HASH_CHAR="`"\r
107                         TYPE="KEYWORD1"\r
108                 >`[^`]+`</SEQ_REGEXP>\r
109                 -->\r
110                 <SPAN TYPE="KEYWORD1">\r
111                         <BEGIN>`</BEGIN>\r
112                         <END>`</END>\r
113                 </SPAN>\r
114 \r
115                 <SEQ_REGEXP HASH_CHAR="```" TYPE="LABEL">`{3,}</SEQ_REGEXP>\r
116 \r
117                 <!-- :field list: -->\r
118                 <SEQ_REGEXP\r
119                         HASH_CHAR=":"\r
120                         TYPE="KEYWORD1"\r
121                 >:[A-z][A-z0-9  =\s\t_]*:</SEQ_REGEXP>\r
122 \r
123                 <!-- table -->\r
124                 <SEQ_REGEXP\r
125                         HASH_CHAR="+-"\r
126                         TYPE="LABEL"\r
127                 >\+-[+-]+</SEQ_REGEXP>\r
128                 <SEQ_REGEXP\r
129                         HASH_CHAR="+?"\r
130                         TYPE="LABEL"\r
131                 >\+=[+=]+</SEQ_REGEXP>\r
132 \r
133         </RULES>\r
134 \r
135 </MODE>\r