common_lisp.xml

  1<lexer>
  2  <config>
  3    <name>Common Lisp</name>
  4    <alias>common-lisp</alias>
  5    <alias>cl</alias>
  6    <alias>lisp</alias>
  7    <filename>*.cl</filename>
  8    <filename>*.lisp</filename>
  9    <mime_type>text/x-common-lisp</mime_type>
 10    <case_insensitive>true</case_insensitive>
 11  </config>
 12  <rules>
 13    <state name="body">
 14      <rule pattern="\s+">
 15        <token type="Text"/>
 16      </rule>
 17      <rule pattern=";.*$">
 18        <token type="CommentSingle"/>
 19      </rule>
 20      <rule pattern="#\|">
 21        <token type="CommentMultiline"/>
 22        <push state="multiline-comment"/>
 23      </rule>
 24      <rule pattern="#\d*Y.*$">
 25        <token type="CommentSpecial"/>
 26      </rule>
 27      <rule pattern="&#34;(\\.|\\\n|[^&#34;\\])*&#34;">
 28        <token type="LiteralString"/>
 29      </rule>
 30      <rule pattern=":(\|[^|]+\||(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~]|[#.:])*)">
 31        <token type="LiteralStringSymbol"/>
 32      </rule>
 33      <rule pattern="::(\|[^|]+\||(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~]|[#.:])*)">
 34        <token type="LiteralStringSymbol"/>
 35      </rule>
 36      <rule pattern=":#(\|[^|]+\||(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~]|[#.:])*)">
 37        <token type="LiteralStringSymbol"/>
 38      </rule>
 39      <rule pattern="&#39;(\|[^|]+\||(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~]|[#.:])*)">
 40        <token type="LiteralStringSymbol"/>
 41      </rule>
 42      <rule pattern="&#39;">
 43        <token type="Operator"/>
 44      </rule>
 45      <rule pattern="`">
 46        <token type="Operator"/>
 47      </rule>
 48      <rule pattern="[-+]?\d+\.?(?=[ &#34;()\&#39;\n,;`])">
 49        <token type="LiteralNumberInteger"/>
 50      </rule>
 51      <rule pattern="[-+]?\d+/\d+(?=[ &#34;()\&#39;\n,;`])">
 52        <token type="LiteralNumber"/>
 53      </rule>
 54      <rule pattern="[-+]?(\d*\.\d+([defls][-+]?\d+)?|\d+(\.\d*)?[defls][-+]?\d+)(?=[ &#34;()\&#39;\n,;`])">
 55        <token type="LiteralNumberFloat"/>
 56      </rule>
 57      <rule pattern="#\\.(?=[ &#34;()\&#39;\n,;`])">
 58        <token type="LiteralStringChar"/>
 59      </rule>
 60      <rule pattern="#\\(\|[^|]+\||(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~]|[#.:])*)">
 61        <token type="LiteralStringChar"/>
 62      </rule>
 63      <rule pattern="#\(">
 64        <token type="Operator"/>
 65        <push state="body"/>
 66      </rule>
 67      <rule pattern="#\d*\*[01]*">
 68        <token type="LiteralOther"/>
 69      </rule>
 70      <rule pattern="#:(\|[^|]+\||(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~]|[#.:])*)">
 71        <token type="LiteralStringSymbol"/>
 72      </rule>
 73      <rule pattern="#[.,]">
 74        <token type="Operator"/>
 75      </rule>
 76      <rule pattern="#\&#39;">
 77        <token type="NameFunction"/>
 78      </rule>
 79      <rule pattern="#b[+-]?[01]+(/[01]+)?">
 80        <token type="LiteralNumberBin"/>
 81      </rule>
 82      <rule pattern="#o[+-]?[0-7]+(/[0-7]+)?">
 83        <token type="LiteralNumberOct"/>
 84      </rule>
 85      <rule pattern="#x[+-]?[0-9a-f]+(/[0-9a-f]+)?">
 86        <token type="LiteralNumberHex"/>
 87      </rule>
 88      <rule pattern="#\d+r[+-]?[0-9a-z]+(/[0-9a-z]+)?">
 89        <token type="LiteralNumber"/>
 90      </rule>
 91      <rule pattern="(#c)(\()">
 92        <bygroups>
 93          <token type="LiteralNumber"/>
 94          <token type="Punctuation"/>
 95        </bygroups>
 96        <push state="body"/>
 97      </rule>
 98      <rule pattern="(#\d+a)(\()">
 99        <bygroups>
100          <token type="LiteralOther"/>
101          <token type="Punctuation"/>
102        </bygroups>
103        <push state="body"/>
104      </rule>
105      <rule pattern="(#s)(\()">
106        <bygroups>
107          <token type="LiteralOther"/>
108          <token type="Punctuation"/>
109        </bygroups>
110        <push state="body"/>
111      </rule>
112      <rule pattern="#p?&#34;(\\.|[^&#34;])*&#34;">
113        <token type="LiteralOther"/>
114      </rule>
115      <rule pattern="#\d+=">
116        <token type="Operator"/>
117      </rule>
118      <rule pattern="#\d+#">
119        <token type="Operator"/>
120      </rule>
121      <rule pattern="#+nil(?=[ &#34;()\&#39;\n,;`])\s*\(">
122        <token type="CommentPreproc"/>
123        <push state="commented-form"/>
124      </rule>
125      <rule pattern="#[+-]">
126        <token type="Operator"/>
127      </rule>
128      <rule pattern="(,@|,|\.)">
129        <token type="Operator"/>
130      </rule>
131      <rule pattern="(t|nil)(?=[ &#34;()\&#39;\n,;`])">
132        <token type="NameConstant"/>
133      </rule>
134      <rule pattern="\*(\|[^|]+\||(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~]|[#.:])*)\*">
135        <token type="NameVariableGlobal"/>
136      </rule>
137      <rule pattern="(\|[^|]+\||(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@\[\]^{}~]|[#.:])*)">
138        <token type="NameVariable"/>
139      </rule>
140      <rule pattern="\(">
141        <token type="Punctuation"/>
142        <push state="body"/>
143      </rule>
144      <rule pattern="\)">
145        <token type="Punctuation"/>
146        <pop depth="1"/>
147      </rule>
148    </state>
149    <state name="root">
150      <rule>
151        <push state="body"/>
152      </rule>
153    </state>
154    <state name="multiline-comment">
155      <rule pattern="#\|">
156        <token type="CommentMultiline"/>
157        <push/>
158      </rule>
159      <rule pattern="\|#">
160        <token type="CommentMultiline"/>
161        <pop depth="1"/>
162      </rule>
163      <rule pattern="[^|#]+">
164        <token type="CommentMultiline"/>
165      </rule>
166      <rule pattern="[|#]">
167        <token type="CommentMultiline"/>
168      </rule>
169    </state>
170    <state name="commented-form">
171      <rule pattern="\(">
172        <token type="CommentPreproc"/>
173        <push/>
174      </rule>
175      <rule pattern="\)">
176        <token type="CommentPreproc"/>
177        <pop depth="1"/>
178      </rule>
179      <rule pattern="[^()]+">
180        <token type="CommentPreproc"/>
181      </rule>
182    </state>
183  </rules>
184</lexer>