]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/modes/props.xml
xmode.modes: updating with recent xmode files
[factor.git] / basis / xmode / modes / props.xml
1 <?xml version="1.0"?>
2
3 <!DOCTYPE MODE SYSTEM "xmode.dtd">
4
5 <MODE>
6         <PROPS>
7                 <PROPERTY NAME="contextInsensitive" VALUE="FALSE" />
8         </PROPS>
9         <RULES>
10         <!-- 
11         Comments: indicated by either ASCII # or ! as the first non-whitespace
12         character on a line. Comments extend to the end of the line. Comments
13         placed after a key/value are considered part of the value, not as a
14         comment.
15         -->
16         <EOL_SPAN_REGEXP TYPE="COMMENT1" AT_LINE_START="TRUE">\s*[#!]</EOL_SPAN_REGEXP>
17         
18         <!-- 
19         A "natural" line, that is, a blank line. This isn't necessary, it's here
20         just to show it was considered and handled.
21         -->
22         <EOL_SPAN_REGEXP TYPE="NULL">\s*$</EOL_SPAN_REGEXP>
23         
24             <!--
25             Key: The key contains all of the characters in the line starting with the 
26             first non-white space character and up to, but not including, the first 
27             unescaped '=', ':', or white space character other than a line terminator. 
28             All of these key termination characters may be included in the key by 
29             escaping them with a preceding backslash character.
30             -->
31             <SPAN_REGEXP TYPE="KEYWORD1" NO_LINE_BREAK="TRUE" NO_WORD_BREAK="TRUE" AT_LINE_START="TRUE" ESCAPE="\">
32                 <BEGIN>\s*([\u0022-\uFFFF&amp;&amp;[^:=]]|[\\][:=&#09;])+?</BEGIN>
33                 <END REGEXP="TRUE">(?=(([:=])|(\s+)))</END>
34             </SPAN_REGEXP>
35         
36             <!-- 
37             Visible key termination characters.
38             -->
39             <SEQ_REGEXP TYPE="OPERATOR">((\s*[:=]\s*)|(\s+))</SEQ_REGEXP>
40             
41             <!-- 
42             Not a comment, not a key, not a key terminator, must be a value.
43             Value contains all characters until the end of the line. The line may
44             be continued to the next line by a trailing \.
45             
46             The seq_regexp handles the odd case where the value is only 1 character
47             long. The tokenizer consumes that character, which means the ending
48             regex for the span_regexp doesn't work.
49             -->
50             <SEQ_REGEXP TYPE="LITERAL1">[^\\]{1}$</SEQ_REGEXP>
51         <SPAN_REGEXP TYPE="LITERAL1">
52             <BEGIN>.</BEGIN>
53             <END REGEXP="TRUE">[^\\]$</END>
54         </SPAN_REGEXP>
55     </RULES>
56         
57 </MODE>