...
1<lexer>
2 <config>
3 <name>CoffeeScript</name>
4 <alias>coffee-script</alias>
5 <alias>coffeescript</alias>
6 <alias>coffee</alias>
7 <filename>*.coffee</filename>
8 <mime_type>text/coffeescript</mime_type>
9 <dot_all>true</dot_all>
10 <not_multiline>true</not_multiline>
11 </config>
12 <rules>
13 <state name="commentsandwhitespace">
14 <rule pattern="\s+">
15 <token type="Text"/>
16 </rule>
17 <rule pattern="###[^#].*?###">
18 <token type="CommentMultiline"/>
19 </rule>
20 <rule pattern="#(?!##[^#]).*?\n">
21 <token type="CommentSingle"/>
22 </rule>
23 </state>
24 <state name="multilineregex">
25 <rule pattern="[^/#]+">
26 <token type="LiteralStringRegex"/>
27 </rule>
28 <rule pattern="///([gim]+\b|\B)">
29 <token type="LiteralStringRegex"/>
30 <pop depth="1"/>
31 </rule>
32 <rule pattern="#\{">
33 <token type="LiteralStringInterpol"/>
34 <push state="interpoling_string"/>
35 </rule>
36 <rule pattern="[/#]">
37 <token type="LiteralStringRegex"/>
38 </rule>
39 </state>
40 <state name="slashstartsregex">
41 <rule>
42 <include state="commentsandwhitespace"/>
43 </rule>
44 <rule pattern="///">
45 <token type="LiteralStringRegex"/>
46 <push state="#pop" state="multilineregex"/>
47 </rule>
48 <rule pattern="/(?! )(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)">
49 <token type="LiteralStringRegex"/>
50 <pop depth="1"/>
51 </rule>
52 <rule pattern="/">
53 <token type="Operator"/>
54 </rule>
55 <rule>
56 <pop depth="1"/>
57 </rule>
58 </state>
59 <state name="tsqs">
60 <rule pattern="'''">
61 <token type="LiteralString"/>
62 <pop depth="1"/>
63 </rule>
64 <rule pattern="#|\\.|\'|"">
65 <token type="LiteralString"/>
66 </rule>
67 <rule>
68 <include state="strings"/>
69 </rule>
70 </state>
71 <state name="dqs">
72 <rule pattern=""">
73 <token type="LiteralString"/>
74 <pop depth="1"/>
75 </rule>
76 <rule pattern="\\.|\'">
77 <token type="LiteralString"/>
78 </rule>
79 <rule pattern="#\{">
80 <token type="LiteralStringInterpol"/>
81 <push state="interpoling_string"/>
82 </rule>
83 <rule pattern="#">
84 <token type="LiteralString"/>
85 </rule>
86 <rule>
87 <include state="strings"/>
88 </rule>
89 </state>
90 <state name="sqs">
91 <rule pattern="'">
92 <token type="LiteralString"/>
93 <pop depth="1"/>
94 </rule>
95 <rule pattern="#|\\.|"">
96 <token type="LiteralString"/>
97 </rule>
98 <rule>
99 <include state="strings"/>
100 </rule>
101 </state>
102 <state name="tdqs">
103 <rule pattern=""""">
104 <token type="LiteralString"/>
105 <pop depth="1"/>
106 </rule>
107 <rule pattern="\\.|\'|"">
108 <token type="LiteralString"/>
109 </rule>
110 <rule pattern="#\{">
111 <token type="LiteralStringInterpol"/>
112 <push state="interpoling_string"/>
113 </rule>
114 <rule pattern="#">
115 <token type="LiteralString"/>
116 </rule>
117 <rule>
118 <include state="strings"/>
119 </rule>
120 </state>
121 <state name="root">
122 <rule>
123 <include state="commentsandwhitespace"/>
124 </rule>
125 <rule pattern="^(?=\s|/)">
126 <token type="Text"/>
127 <push state="slashstartsregex"/>
128 </rule>
129 <rule pattern="\+\+|~|&&|\band\b|\bor\b|\bis\b|\bisnt\b|\bnot\b|\?|:|\|\||\\(?=\n)|(<<|>>>?|==?(?!>)|!=?|=(?!>)|-(?!>)|[<>+*`%&\|\^/])=?">
130 <token type="Operator"/>
131 <push state="slashstartsregex"/>
132 </rule>
133 <rule pattern="(?:\([^()]*\))?\s*[=-]>">
134 <token type="NameFunction"/>
135 <push state="slashstartsregex"/>
136 </rule>
137 <rule pattern="[{(\[;,]">
138 <token type="Punctuation"/>
139 <push state="slashstartsregex"/>
140 </rule>
141 <rule pattern="[})\].]">
142 <token type="Punctuation"/>
143 </rule>
144 <rule pattern="(?<![.$])(for|own|in|of|while|until|loop|break|return|continue|switch|when|then|if|unless|else|throw|try|catch|finally|new|delete|typeof|instanceof|super|extends|this|class|by)\b">
145 <token type="Keyword"/>
146 <push state="slashstartsregex"/>
147 </rule>
148 <rule pattern="(?<![.$])(true|false|yes|no|on|off|null|NaN|Infinity|undefined)\b">
149 <token type="KeywordConstant"/>
150 </rule>
151 <rule pattern="(Array|Boolean|Date|Error|Function|Math|netscape|Number|Object|Packages|RegExp|String|sun|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|document|window)\b">
152 <token type="NameBuiltin"/>
153 </rule>
154 <rule pattern="[$a-zA-Z_][\w.:$]*\s*[:=]\s">
155 <token type="NameVariable"/>
156 <push state="slashstartsregex"/>
157 </rule>
158 <rule pattern="@[$a-zA-Z_][\w.:$]*\s*[:=]\s">
159 <token type="NameVariableInstance"/>
160 <push state="slashstartsregex"/>
161 </rule>
162 <rule pattern="@">
163 <token type="NameOther"/>
164 <push state="slashstartsregex"/>
165 </rule>
166 <rule pattern="@?[$a-zA-Z_][\w$]*">
167 <token type="NameOther"/>
168 </rule>
169 <rule pattern="[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?">
170 <token type="LiteralNumberFloat"/>
171 </rule>
172 <rule pattern="0x[0-9a-fA-F]+">
173 <token type="LiteralNumberHex"/>
174 </rule>
175 <rule pattern="[0-9]+">
176 <token type="LiteralNumberInteger"/>
177 </rule>
178 <rule pattern=""""">
179 <token type="LiteralString"/>
180 <push state="tdqs"/>
181 </rule>
182 <rule pattern="'''">
183 <token type="LiteralString"/>
184 <push state="tsqs"/>
185 </rule>
186 <rule pattern=""">
187 <token type="LiteralString"/>
188 <push state="dqs"/>
189 </rule>
190 <rule pattern="'">
191 <token type="LiteralString"/>
192 <push state="sqs"/>
193 </rule>
194 </state>
195 <state name="interpoling_string">
196 <rule pattern="\}">
197 <token type="LiteralStringInterpol"/>
198 <pop depth="1"/>
199 </rule>
200 <rule>
201 <include state="root"/>
202 </rule>
203 </state>
204 <state name="strings">
205 <rule pattern="[^#\\\'"]+">
206 <token type="LiteralString"/>
207 </rule>
208 </state>
209 </rules>
210</lexer>
View as plain text