]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/modes/antlr4.xml
xmode.modes: updating with recent xmode files
[factor.git] / basis / xmode / modes / antlr4.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE MODE SYSTEM "xmode.dtd"><!--  -->
3
4
5 <!--
6     This mode file describes the ANTLR 4 syntax definition language as
7     described in the book "The Definitive ANTLR 4 Reference" by Terrence Parr.
8 -->
9 <MODE>
10     <PROPS>
11         <PROPERTY NAME="commentStart" VALUE="/*" />
12         <PROPERTY NAME="commentEnd" VALUE="*/" />
13         <PROPERTY NAME="lineComment" VALUE="//" />
14         <PROPERTY NAME="wordBreakChars" VALUE="" />
15     </PROPS>
16     <RULES IGNORE_CASE="FALSE"
17                 HIGHLIGHT_DIGITS="TRUE"
18                 DIGIT_RE="(0[lL]?|[1-9]\d{0,9}(\d{0,9}[lL])?|0[xX]\p{XDigit}{1,8}(\p{XDigit}{0,8}[lL])?|0[0-7]{1,11}([0-7]{0,11}[lL])?|([0-9]+\.[0-9]*|\.[0-9]+)([eE][+-]?[0-9]+)?[fFdD]?|[0-9]+([eE][+-]?[0-9]+[fFdD]?|([eE][+-]?[0-9]+)?[fFdD]))">
19         
20         <!-- Antlr comments are the same as java comments -->
21         <SPAN TYPE="COMMENT2" DELEGATE="java::JAVADOC">
22             <BEGIN>/**</BEGIN>
23             <END>*/</END>
24         </SPAN>
25         <SPAN TYPE="COMMENT1">
26             <BEGIN>/*</BEGIN>
27             <END>*/</END>
28         </SPAN>
29         <EOL_SPAN TYPE="COMMENT1">//</EOL_SPAN>
30
31         <!-- string literal -->
32         <SPAN TYPE="LITERAL1" ESCAPE="\" NO_LINE_BREAK="TRUE">
33             <BEGIN>'</BEGIN>
34             <END>'</END>
35         </SPAN>
36
37         <!-- rule 'operators' -->
38         <SEQ TYPE="OPERATOR">|</SEQ>
39         <SEQ TYPE="OPERATOR">:</SEQ>
40                 <SEQ TYPE="OPERATOR">}</SEQ>
41                 <SEQ TYPE="OPERATOR">{</SEQ>
42
43         <!-- rule action -->
44         <MARK_FOLLOWING TYPE="KEYWORD4">@</MARK_FOLLOWING>
45         
46         <!-- lexer rules -->
47         <SEQ_REGEXP HASH_CHARS="ABCDEFGHIJKLMNOPQRSTUVWXYZ" AT_LINE_START="TRUE"
48                    TYPE="KEYWORD2">[A-Z][a-zA-Z_]+</SEQ_REGEXP>
49  
50         <!-- parser rules -->
51         <SEQ_REGEXP HASH_CHARS="abcdefghijklmnopqrstuvwxyz" AT_LINE_START="TRUE"
52                    TYPE="KEYWORD2">[a-z][a-zA-Z_]+</SEQ_REGEXP>
53  
54         
55         <KEYWORDS>
56             <KEYWORD1>catch</KEYWORD1>
57             <KEYWORD1>finally</KEYWORD1>
58             <KEYWORD1>fragment</KEYWORD1>
59             <KEYWORD1>grammar</KEYWORD1>
60             <KEYWORD1>import</KEYWORD1>
61             <KEYWORD1>lexer</KEYWORD1>
62             <KEYWORD1>locals</KEYWORD1>
63             <KEYWORD1>mode</KEYWORD1>
64             <KEYWORD1>options</KEYWORD1>
65             <KEYWORD1>parser</KEYWORD1>
66             <KEYWORD1>private</KEYWORD1>
67             <KEYWORD1>protected</KEYWORD1>
68             <KEYWORD1>public</KEYWORD1>
69             <KEYWORD1>returns</KEYWORD1>
70             <KEYWORD1>throws</KEYWORD1>
71             <KEYWORD4>tokens</KEYWORD4>
72
73             <!-- the following are not Antlr keywords, but since Antlr actions
74             include java keywords, these are useful. These are copied from
75             the java mode file. -->
76                         <KEYWORD1>assert</KEYWORD1>
77                         <KEYWORD1>break</KEYWORD1>
78                         <KEYWORD1>case</KEYWORD1>
79                         <KEYWORD1>continue</KEYWORD1>
80                         <KEYWORD1>default</KEYWORD1>
81                         <KEYWORD1>do</KEYWORD1>
82                         <KEYWORD1>else</KEYWORD1>
83                         <KEYWORD1>for</KEYWORD1>
84                         <KEYWORD1>if</KEYWORD1>
85                         <KEYWORD1>instanceof</KEYWORD1>
86                         <KEYWORD1>new</KEYWORD1>
87                         <KEYWORD1>return</KEYWORD1>
88                         <KEYWORD1>strictfp</KEYWORD1>
89                         <KEYWORD1>switch</KEYWORD1>
90                         <KEYWORD1>throw</KEYWORD1>
91                         <KEYWORD1>try</KEYWORD1>
92                         <KEYWORD1>while</KEYWORD1>
93
94                         <KEYWORD2>abstract</KEYWORD2>
95                         <KEYWORD2>enum</KEYWORD2>
96                         <KEYWORD2>extends</KEYWORD2>
97                         <KEYWORD2>final</KEYWORD2>
98                         <KEYWORD2>implements</KEYWORD2>
99                         <KEYWORD2>import</KEYWORD2> 
100                         <KEYWORD2>native</KEYWORD2>
101                         <KEYWORD2>package</KEYWORD2>
102                         <KEYWORD2>static</KEYWORD2>
103                         <KEYWORD2>synchronized</KEYWORD2>
104                         <KEYWORD2>throws</KEYWORD2>
105                         <KEYWORD2>transient</KEYWORD2>
106                         <KEYWORD2>volatile</KEYWORD2>
107                         <KEYWORD3>void</KEYWORD3>
108
109                         <KEYWORD3>boolean</KEYWORD3>
110                         <KEYWORD3>byte</KEYWORD3>
111                         <KEYWORD3>char</KEYWORD3>
112                         <KEYWORD3>class</KEYWORD3>
113                         <KEYWORD3>double</KEYWORD3>
114                         <KEYWORD3>float</KEYWORD3>
115                         <KEYWORD3>int</KEYWORD3>
116                         <KEYWORD3>interface</KEYWORD3>
117                         <KEYWORD3>long</KEYWORD3>
118                         <KEYWORD3>short</KEYWORD3>
119
120                         <LITERAL2>false</LITERAL2>
121                         <LITERAL2>null</LITERAL2>
122                         <LITERAL2>super</LITERAL2>
123                         <LITERAL2>this</LITERAL2>
124                         <LITERAL2>true</LITERAL2>
125
126             <INVALID>goto</INVALID>
127             <INVALID>const</INVALID>
128         </KEYWORDS>
129     </RULES>
130     
131 </MODE>