]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/modes/moin.xml
cc6ac757fbae32fa7c4fdbbc068aa60104ef3492
[factor.git] / basis / xmode / modes / moin.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                 <PROPERTY NAME="wrap" VALUE="soft" />\r
9         </PROPS>\r
10         <RULES ESCAPE="\" HIGHLIGHT_DIGITS="FALSE" IGNORE_CASE="FALSE">\r
11 \r
12                 <!-- comment -->\r
13                 <EOL_SPAN TYPE="COMMENT1">##</EOL_SPAN>\r
14 \r
15                 <!-- directive -->\r
16                 <EOL_SPAN TYPE="KEYWORD2">#pragma</EOL_SPAN>\r
17 \r
18                 <!-- macro -->\r
19                 <SPAN TYPE="KEYWORD4">\r
20                         <BEGIN>[[</BEGIN>\r
21                         <END>]]</END>\r
22                 </SPAN>\r
23 \r
24                 <!-- term definition -->\r
25                 <SEQ_REGEXP\r
26                         HASH_CHAR=' '\r
27                         AT_LINE_START='TRUE'\r
28                         TYPE="LABEL"\r
29                 >\s+(?:\(|\)|\w)[\p{Alnum}\p{Blank}.()]+::</SEQ_REGEXP>\r
30 \r
31                 <!-- smileys -->\r
32                 <!-- not on by default because it slows things down a bit\r
33                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\:\)\s</SEQ_REGEXP>\r
34                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\sB\)\s</SEQ_REGEXP>\r
35                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\:\)\)\s</SEQ_REGEXP>\r
36                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\;\)\s</SEQ_REGEXP>\r
37                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\:D\s</SEQ_REGEXP>\r
38                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\%lt;\:\(\s</SEQ_REGEXP>\r
39                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\sX\-\(\s</SEQ_REGEXP>\r
40                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\:o\s</SEQ_REGEXP>\r
41                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\:\(\s</SEQ_REGEXP>\r
42                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\/\!\\\s</SEQ_REGEXP>\r
43                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\%lt;\!\b\s</SEQ_REGEXP>\r
44                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\(\!\)\s</SEQ_REGEXP>\r
45                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\:\-\?\s</SEQ_REGEXP>\r
46                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\:\b\:\b\s</SEQ_REGEXP>\r
47                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\%\)\s</SEQ_REGEXP>\r
48                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\@\)\s</SEQ_REGEXP>\r
49                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\|\)\s</SEQ_REGEXP>\r
50                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\;\)\)\s</SEQ_REGEXP>\r
51                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\(\.\/\)\s</SEQ_REGEXP>\r
52                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\{OK\}\s</SEQ_REGEXP>\r
53                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\{X\}\s</SEQ_REGEXP>\r
54                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\{i\}\s</SEQ_REGEXP>\r
55                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\{1\}\s</SEQ_REGEXP>\r
56                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\{2\}\s</SEQ_REGEXP>\r
57                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\{3\}\s</SEQ_REGEXP>\r
58                 -->\r
59 \r
60                 <!-- code or literal -->\r
61                 <SPAN TYPE="LITERAL2">\r
62                         <BEGIN>{{{</BEGIN>\r
63                         <END>}}}</END>\r
64                 </SPAN>\r
65 \r
66                 <!-- code or literal -->\r
67                 <SPAN TYPE="LITERAL2">\r
68                         <BEGIN>`</BEGIN>\r
69                         <END>`</END>\r
70                 </SPAN>\r
71 \r
72                 <!-- bold or italic -->\r
73                 <SEQ_REGEXP\r
74                         HASH_CHAR="''"\r
75                         TYPE="LITERAL1"\r
76                 >('{2,5})[^']+\1[^']</SEQ_REGEXP>\r
77 \r
78                 <!-- horizontal rule -->\r
79                 <SEQ_REGEXP\r
80                         HASH_CHAR="----"\r
81                         TYPE="LITERAL4"\r
82                 >-{4,}</SEQ_REGEXP>\r
83 \r
84                 <!-- section header -->\r
85                 <SPAN_REGEXP\r
86                         HASH_CHAR="="\r
87                         TYPE="KEYWORD1"\r
88                         AT_LINE_START="TRUE"\r
89                 >\r
90                         <BEGIN>(={1,5}) </BEGIN>\r
91                         <END> $1</END>\r
92                 </SPAN_REGEXP>\r
93 \r
94                 <!-- implicit WikiWords - a bit of a hack, but I can't think of a better way... -->\r
95                 <SEQ_REGEXP HASH_CHARS="ABCDEFGHIJKLMNOPQRSTUVWXYZ" AT_WORD_START="TRUE" TYPE="KEYWORD2">[A-Z][a-z]+[A-Z][a-zA-Z]+</SEQ_REGEXP>\r
96 \r
97                 <!-- explicit WikiWord -->\r
98                 <SPAN TYPE="KEYWORD2">\r
99                         <BEGIN>[&quot;</BEGIN>\r
100                         <END>&quot;]</END>\r
101                 </SPAN>\r
102 \r
103                 <!-- url -->\r
104                 <SPAN TYPE="KEYWORD3">\r
105                         <BEGIN>[</BEGIN>\r
106                         <END>]</END>\r
107                 </SPAN>\r
108 \r
109         </RULES>\r
110 </MODE>\r
111 \r