]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/modes/jamon.xml
xmode.modes: updating with recent xmode files
[factor.git] / basis / xmode / modes / jamon.xml
1 <?xml version="1.0"?>
2 <!DOCTYPE MODE SYSTEM "xmode.dtd">
3
4 <!-- Mode file for Jamon templates. See http://www.jamon.org -->
5 <MODE>
6         <PROPS>
7                 <PROPERTY NAME="commentStart" VALUE="&lt;%--" />
8                 <PROPERTY NAME="commentEnd" VALUE="--%&gt;" />
9         </PROPS>
10         <RULES DEFAULT="LITERAL2">
11                 <IMPORT DELEGATE="INLINE" />
12                 <IMPORT DELEGATE="OVERRIDES" />
13                 <IMPORT DELEGATE="html::MAIN"/>
14         </RULES>
15
16         <RULES SET="INLINE" DEFAULT="LITERAL2">
17                 <SPAN_REGEXP HASH_CHAR="&lt;" MATCH_TYPE="OPERATOR" DELEGATE="java::MAIN">
18                         <BEGIN>&lt;%(args|class|import|java|xargs)&gt;</BEGIN>
19                         <END>&lt;/%$1&gt;</END>
20                 </SPAN_REGEXP>
21                 <SPAN_REGEXP HASH_CHAR="&lt;" MATCH_TYPE="OPERATOR" DELEGATE="java::MAIN">
22                         <BEGIN>&lt;%(?:if|for|java)</BEGIN>
23                         <END>%&gt;</END>
24                 </SPAN_REGEXP>
25                 <SEQ_REGEXP HASH_CHAR="&lt;" TYPE="OPERATOR">&lt;/%(?:if|for)&gt;</SEQ_REGEXP>
26                 <SEQ TYPE="OPERATOR">&lt;%else&gt;</SEQ>
27
28                 <SPAN_REGEXP HASH_CHAR="&lt;" MATCH_TYPE="OPERATOR" TYPE="KEYWORD2">
29                         <BEGIN>&lt;%(?:abstract|def|doc|escape|extends|frag|method|override)</BEGIN>
30                         <END>&gt;</END>
31                 </SPAN_REGEXP>
32                 <SPAN_REGEXP HASH_CHAR="&lt;" MATCH_TYPE="OPERATOR">
33                         <BEGIN>&lt;/%(?:def|doc|frag|method|override)</BEGIN>
34                         <END>&gt;</END>
35                 </SPAN_REGEXP>
36
37                 <SPAN TYPE="OPERATOR" DELEGATE="java::MAIN">
38                         <BEGIN>&lt;%</BEGIN>
39                         <END>%&gt;</END>
40                 </SPAN>
41
42                 <SPAN_REGEXP HASH_CHAR="&lt;" MATCH_TYPE="OPERATOR" DELEGATE="java::MAIN">
43                         <BEGIN>&lt;&amp;\|?</BEGIN>
44                         <END>&amp;&gt;</END>
45                 </SPAN_REGEXP>
46                 <SEQ TYPE="OPERATOR">&lt;/&amp;&gt;</SEQ>
47         </RULES>
48
49         <RULES SET="OVERRIDES" IGNORE_CASE="TRUE" DEFAULT="LITERAL2">
50                 <!-- CSS -->
51                 <SPAN TYPE="MARKUP" DELEGATE="CSS">
52                         <BEGIN>&lt;style</BEGIN>
53                         <END>&lt;/style&gt;</END>
54                 </SPAN>
55
56                 <!-- JavaScript -->
57                 <SPAN_REGEXP TYPE="MARKUP" HASH_CHAR="&lt;" DELEGATE="JAVASCRIPT">
58                         <BEGIN>&lt;(?i)(script)</BEGIN>
59                         <END>&lt;/$1&gt;</END>
60                 </SPAN_REGEXP>
61
62                 <!-- HTML tags. -->
63                 <SPAN TYPE="MARKUP" DELEGATE="TAGS">
64                         <BEGIN>&lt;</BEGIN>
65                         <END>&gt;</END>
66                 </SPAN>
67         </RULES>
68
69         <RULES SET="JAVASCRIPT" DEFAULT="LITERAL1">
70                 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE" ESCAPE="\" DELEGATE="INLINE">
71                         <BEGIN>"</BEGIN>
72                         <END>"</END>
73                 </SPAN>
74                 <IMPORT DELEGATE="INLINE" />
75                 <IMPORT DELEGATE="javascript::MAIN" />
76         </RULES>
77
78         <RULES SET="CSS" DEFAULT="LITERAL1">
79                 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE" ESCAPE="\" DELEGATE="INLINE">
80                         <BEGIN>"</BEGIN>
81                         <END>"</END>
82                 </SPAN>
83                 <IMPORT DELEGATE="INLINE" />
84                 <IMPORT DELEGATE="css::MAIN" />
85         </RULES>
86
87         <!--
88           This is a copy of above; IMPORT doesn't inherit DEFAULT and we need
89           a different default depending on context.
90         -->
91         <RULES SET="INLINE_MARKUP" DEFAULT="LITERAL1">
92                 <SPAN_REGEXP HASH_CHAR="&lt;" MATCH_TYPE="OPERATOR" TYPE="KEYWORD2">
93                         <BEGIN>&lt;%(?:abstract|def|doc|escape|extends|frag|method|override)</BEGIN>
94                         <END>&gt;</END>
95                 </SPAN_REGEXP>
96                 <SPAN_REGEXP HASH_CHAR="&lt;" MATCH_TYPE="OPERATOR">
97                         <BEGIN>&lt;/%(?:def|doc|frag|method|override)</BEGIN>
98                         <END>&gt;</END>
99                 </SPAN_REGEXP>
100
101                 <SPAN TYPE="OPERATOR" DELEGATE="java::MAIN">
102                         <BEGIN>&lt;%</BEGIN>
103                         <END>%&gt;</END>
104                 </SPAN>
105
106                 <SPAN_REGEXP HASH_CHAR="&lt;" MATCH_TYPE="OPERATOR" DELEGATE="java::MAIN">
107                         <BEGIN>&lt;&amp;\|?</BEGIN>
108                         <END>&amp;&gt;</END>
109                 </SPAN_REGEXP>
110                 <SEQ TYPE="OPERATOR">&lt;/&amp;&gt;</SEQ>
111         </RULES>
112
113         <RULES SET="TAGS" DEFAULT="MARKUP">
114                 <SPAN TYPE="LITERAL1" DELEGATE="INLINE_MARKUP">
115                         <BEGIN>"</BEGIN>
116                         <END>"</END>
117                 </SPAN>
118                 <IMPORT DELEGATE="INLINE_MARKUP" />
119                 <IMPORT DELEGATE="html::TAGS" />
120         </RULES>
121
122 </MODE>
123