...
1<lexer>
2 <config>
3 <name>R</name>
4 <alias>splus</alias>
5 <alias>s</alias>
6 <alias>r</alias>
7 <filename>*.S</filename>
8 <filename>*.R</filename>
9 <filename>*.r</filename>
10 <filename>.Rhistory</filename>
11 <filename>.Rprofile</filename>
12 <filename>.Renviron</filename>
13 <mime_type>text/S-plus</mime_type>
14 <mime_type>text/S</mime_type>
15 <mime_type>text/x-r-source</mime_type>
16 <mime_type>text/x-r</mime_type>
17 <mime_type>text/x-R</mime_type>
18 <mime_type>text/x-r-history</mime_type>
19 <mime_type>text/x-r-profile</mime_type>
20 </config>
21 <rules>
22 <state name="numbers">
23 <rule pattern="0[xX][a-fA-F0-9]+([pP][0-9]+)?[Li]?">
24 <token type="LiteralNumberHex"/>
25 </rule>
26 <rule pattern="[+-]?([0-9]+(\.[0-9]+)?|\.[0-9]+|\.)([eE][+-]?[0-9]+)?[Li]?">
27 <token type="LiteralNumber"/>
28 </rule>
29 </state>
30 <state name="operators">
31 <rule pattern="<<?-|->>?|-|==|<=|>=|<|>|&&?|!=|\|\|?|\?">
32 <token type="Operator"/>
33 </rule>
34 <rule pattern="\*|\+|\^|/|!|%[^%]*%|=|~|\$|@|:{1,3}">
35 <token type="Operator"/>
36 </rule>
37 </state>
38 <state name="root">
39 <rule pattern="((?:`[^`\\]*(?:\\.[^`\\]*)*`)|(?:(?:[a-zA-z]|[_.][^0-9])[\w_.]*))\s*(?=\()">
40 <token type="NameFunction"/>
41 </rule>
42 <rule>
43 <include state="statements"/>
44 </rule>
45 <rule pattern="\{|\}">
46 <token type="Punctuation"/>
47 </rule>
48 <rule pattern=".">
49 <token type="Text"/>
50 </rule>
51 </state>
52 <state name="valid_name">
53 <rule pattern="(?:`[^`\\]*(?:\\.[^`\\]*)*`)|(?:(?:[a-zA-z]|[_.][^0-9])[\w_.]*)">
54 <token type="Name"/>
55 </rule>
56 </state>
57 <state name="keywords">
58 <rule pattern="(if|else|for|while|repeat|in|next|break|return|switch|function)(?![\w.])">
59 <token type="KeywordReserved"/>
60 </rule>
61 </state>
62 <state name="builtin_symbols">
63 <rule pattern="(NULL|NA(_(integer|real|complex|character)_)?|letters|LETTERS|Inf|TRUE|FALSE|NaN|pi|\.\.(\.|[0-9]+))(?![\w.])">
64 <token type="KeywordConstant"/>
65 </rule>
66 <rule pattern="(T|F)\b">
67 <token type="NameBuiltinPseudo"/>
68 </rule>
69 </state>
70 <state name="string_squote">
71 <rule pattern="([^\'\\]|\\.)*\'">
72 <token type="LiteralString"/>
73 <pop depth="1"/>
74 </rule>
75 </state>
76 <state name="comments">
77 <rule pattern="#.*$">
78 <token type="CommentSingle"/>
79 </rule>
80 </state>
81 <state name="punctuation">
82 <rule pattern="\[{1,2}|\]{1,2}|\(|\)|;|,">
83 <token type="Punctuation"/>
84 </rule>
85 </state>
86 <state name="statements">
87 <rule>
88 <include state="comments"/>
89 </rule>
90 <rule pattern="\s+">
91 <token type="Text"/>
92 </rule>
93 <rule pattern="\'">
94 <token type="LiteralString"/>
95 <push state="string_squote"/>
96 </rule>
97 <rule pattern="\"">
98 <token type="LiteralString"/>
99 <push state="string_dquote"/>
100 </rule>
101 <rule>
102 <include state="builtin_symbols"/>
103 </rule>
104 <rule>
105 <include state="valid_name"/>
106 </rule>
107 <rule>
108 <include state="numbers"/>
109 </rule>
110 <rule>
111 <include state="keywords"/>
112 </rule>
113 <rule>
114 <include state="punctuation"/>
115 </rule>
116 <rule>
117 <include state="operators"/>
118 </rule>
119 </state>
120 <state name="string_dquote">
121 <rule pattern="([^"\\]|\\.)*"">
122 <token type="LiteralString"/>
123 <pop depth="1"/>
124 </rule>
125 </state>
126 </rules>
127</lexer>
View as plain text