emacslisp.xml

  1<lexer>
  2  <config>
  3    <name>EmacsLisp</name>
  4    <alias>emacs</alias>
  5    <alias>elisp</alias>
  6    <alias>emacs-lisp</alias>
  7    <filename>*.el</filename>
  8    <mime_type>text/x-elisp</mime_type>
  9    <mime_type>application/x-elisp</mime_type>
 10  </config>
 11  <rules>
 12    <state name="string">
 13      <rule pattern="[^&#34;\\`]+">
 14        <token type="LiteralString"/>
 15      </rule>
 16      <rule pattern="`((?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|]|[#.:])*)\&#39;">
 17        <token type="LiteralStringSymbol"/>
 18      </rule>
 19      <rule pattern="`">
 20        <token type="LiteralString"/>
 21      </rule>
 22      <rule pattern="\\.">
 23        <token type="LiteralString"/>
 24      </rule>
 25      <rule pattern="\\\n">
 26        <token type="LiteralString"/>
 27      </rule>
 28      <rule pattern="&#34;">
 29        <token type="LiteralString"/>
 30        <pop depth="1"/>
 31      </rule>
 32    </state>
 33    <state name="root">
 34      <rule>
 35        <push state="body"/>
 36      </rule>
 37    </state>
 38    <state name="body">
 39      <rule pattern="\s+">
 40        <token type="Text"/>
 41      </rule>
 42      <rule pattern=";.*$">
 43        <token type="CommentSingle"/>
 44      </rule>
 45      <rule pattern="&#34;">
 46        <token type="LiteralString"/>
 47        <push state="string"/>
 48      </rule>
 49      <rule pattern="\?([^\\]|\\.)">
 50        <token type="LiteralStringChar"/>
 51      </rule>
 52      <rule pattern=":((?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|]|[#.:])*)">
 53        <token type="NameBuiltin"/>
 54      </rule>
 55      <rule pattern="::((?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|]|[#.:])*)">
 56        <token type="LiteralStringSymbol"/>
 57      </rule>
 58      <rule pattern="&#39;((?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|]|[#.:])*)">
 59        <token type="LiteralStringSymbol"/>
 60      </rule>
 61      <rule pattern="&#39;">
 62        <token type="Operator"/>
 63      </rule>
 64      <rule pattern="`">
 65        <token type="Operator"/>
 66      </rule>
 67      <rule pattern="[-+]?\d+\.?(?=[ &#34;()\]\&#39;\n,;`])">
 68        <token type="LiteralNumberInteger"/>
 69      </rule>
 70      <rule pattern="[-+]?\d+/\d+(?=[ &#34;()\]\&#39;\n,;`])">
 71        <token type="LiteralNumber"/>
 72      </rule>
 73      <rule pattern="[-+]?(\d*\.\d+([defls][-+]?\d+)?|\d+(\.\d*)?[defls][-+]?\d+)(?=[ &#34;()\]\&#39;\n,;`])">
 74        <token type="LiteralNumberFloat"/>
 75      </rule>
 76      <rule pattern="\[|\]">
 77        <token type="Punctuation"/>
 78      </rule>
 79      <rule pattern="#:((?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|]|[#.:])*)">
 80        <token type="LiteralStringSymbol"/>
 81      </rule>
 82      <rule pattern="#\^\^?">
 83        <token type="Operator"/>
 84      </rule>
 85      <rule pattern="#\&#39;">
 86        <token type="NameFunction"/>
 87      </rule>
 88      <rule pattern="#[bB][+-]?[01]+(/[01]+)?">
 89        <token type="LiteralNumberBin"/>
 90      </rule>
 91      <rule pattern="#[oO][+-]?[0-7]+(/[0-7]+)?">
 92        <token type="LiteralNumberOct"/>
 93      </rule>
 94      <rule pattern="#[xX][+-]?[0-9a-fA-F]+(/[0-9a-fA-F]+)?">
 95        <token type="LiteralNumberHex"/>
 96      </rule>
 97      <rule pattern="#\d+r[+-]?[0-9a-zA-Z]+(/[0-9a-zA-Z]+)?">
 98        <token type="LiteralNumber"/>
 99      </rule>
100      <rule pattern="#\d+=">
101        <token type="Operator"/>
102      </rule>
103      <rule pattern="#\d+#">
104        <token type="Operator"/>
105      </rule>
106      <rule pattern="(,@|,|\.|:)">
107        <token type="Operator"/>
108      </rule>
109      <rule pattern="(t|nil)(?=[ &#34;()\]\&#39;\n,;`])">
110        <token type="NameConstant"/>
111      </rule>
112      <rule pattern="\*((?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|]|[#.:])*)\*">
113        <token type="NameVariableGlobal"/>
114      </rule>
115      <rule pattern="((?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|])(?:\\.|[\w!$%&amp;*+-/&lt;=&gt;?@^{}~|]|[#.:])*)">
116        <token type="NameVariable"/>
117      </rule>
118      <rule pattern="#\(">
119        <token type="Operator"/>
120        <push state="body"/>
121      </rule>
122      <rule pattern="\(">
123        <token type="Punctuation"/>
124        <push state="body"/>
125      </rule>
126      <rule pattern="\)">
127        <token type="Punctuation"/>
128        <pop depth="1"/>
129      </rule>
130    </state>
131  </rules>
132</lexer>