]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/modes/factor.xml
4b4abfdb4397948554068c9230eb7dd71f3e6453
[factor.git] / basis / xmode / modes / factor.xml
1 <?xml version="1.0"?>\r
2 <!DOCTYPE MODE SYSTEM "xmode.dtd">\r
3 \r
4 <MODE>\r
5         <PROPS>\r
6                 <PROPERTY NAME="indentOpenBrackets" VALUE="[{"/>\r
7                 <PROPERTY NAME="indentCloseBrackets" VALUE="]}"/>\r
8                 <PROPERTY NAME="indentNextLines" VALUE="^(:|M:|C:|PREDICATE:)[^;]*"/>\r
9                 <PROPERTY NAME="unindentNextLines" VALUE="^.*;.*$"/>\r
10                 <PROPERTY NAME="doubleBracketIndent" VALUE="true"/>\r
11                 <PROPERTY NAME="commentStart" VALUE="("/>\r
12                 <PROPERTY NAME="commentEnd" VALUE=")"/>\r
13                 <PROPERTY NAME="lineComment" VALUE="!"/>\r
14                 <PROPERTY NAME="noWordSep" VALUE="+-*=&gt;&lt;;.?/'()%,_|"/>\r
15         </PROPS>\r
16         <RULES IGNORE_CASE="FALSE" ESCAPE="\" NO_WORD_SEP="+-*=&gt;&lt;;.?/'()%,_"\r
17                 HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="-?\d+([./]\d+)?">\r
18                 <EOL_SPAN TYPE="COMMENT2" AT_WORD_START="TRUE"\r
19                         DELEGATE="COMMENT">#! </EOL_SPAN>\r
20                 <EOL_SPAN TYPE="COMMENT1" AT_WORD_START="TRUE"\r
21                         DELEGATE="COMMENT">! </EOL_SPAN>\r
22 \r
23                 <!-- parsing words -->\r
24                 <SEQ_REGEXP TYPE="MARKUP"\r
25                         HASH_CHAR="\"\r
26                         AT_WORD_START="TRUE">\\\s+(\S+)</SEQ_REGEXP>\r
27                 <SEQ_REGEXP TYPE="MARKUP"\r
28                         HASH_CHAR=":"\r
29                         AT_WORD_START="TRUE">:\s+(\S+)</SEQ_REGEXP>\r
30                 <SEQ_REGEXP TYPE="MARKUP"\r
31                         HASH_CHAR="IN:"\r
32                         AT_WORD_START="TRUE">IN:\s+(\S+)</SEQ_REGEXP>\r
33                 <SEQ_REGEXP TYPE="MARKUP"\r
34                         HASH_CHAR="USE:"\r
35                         AT_WORD_START="TRUE">USE:\s+(\S+)</SEQ_REGEXP>\r
36                 <SEQ_REGEXP TYPE="LITERAL2"\r
37                         HASH_CHAR="CHAR:"\r
38                         AT_WORD_START="TRUE">CHAR:\s+(\S+)</SEQ_REGEXP>\r
39 \r
40                 <SPAN TYPE="COMMENT3" DELEGATE="STACK_EFFECT" NO_LINE_BREAK="TRUE">\r
41                         <BEGIN>( </BEGIN>\r
42                         <END>)</END>\r
43                 </SPAN>\r
44                 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE"\r
45                         DELEGATE="LITERAL">\r
46                         <BEGIN>SBUF" </BEGIN>\r
47                         <END>"</END>\r
48                 </SPAN>\r
49                 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE"\r
50                         DELEGATE="LITERAL">\r
51                         <BEGIN>"</BEGIN>\r
52                         <END>"</END>\r
53                 </SPAN>\r
54                 <SPAN TYPE="MARKUP" DELEGATE="USING">\r
55                         <BEGIN>USING: </BEGIN>\r
56                         <END>;</END>\r
57                 </SPAN>\r
58 \r
59                 <SEQ TYPE="OPERATOR">[</SEQ>\r
60                 <SEQ TYPE="OPERATOR">]</SEQ>\r
61                 <SEQ TYPE="OPERATOR">{</SEQ>\r
62                 <SEQ TYPE="OPERATOR">}</SEQ>\r
63 \r
64                 <KEYWORDS>\r
65                         <KEYWORD1>&gt;r</KEYWORD1>\r
66                         <KEYWORD1>r&gt;</KEYWORD1>\r
67 \r
68                         <MARKUP>;</MARKUP>\r
69 \r
70                         <LITERAL3>t</LITERAL3>\r
71                         <LITERAL4>f</LITERAL4>\r
72                         \r
73                         <COMMENT2>#!</COMMENT2>\r
74                         <COMMENT1>!</COMMENT1>\r
75                 </KEYWORDS>\r
76         </RULES>\r
77 \r
78         <RULES SET="STACK_EFFECT" DEFAULT="COMMENT4">\r
79                 <SEQ TYPE="COMMENT3">--</SEQ>\r
80         </RULES>\r
81 \r
82         <RULES SET="LITERAL" DEFAULT="LITERAL1">\r
83         </RULES>\r
84 \r
85         <RULES SET="COMMENT" DEFAULT="COMMENT1">\r
86         </RULES>\r
87 \r
88         <RULES SET="USING" DEFAULT="LITERAL2">\r
89         </RULES>\r
90 </MODE>\r