<?xml version="1.0" encoding="utf-8"?>

<SyntaxDefinition name="Lisp" extensions=".lisp;.lsp">
    
    <Environment> 
        <Default color="Black" bgcolor="#FFFFFF"/>
        <Selection color="Black" bgcolor="#C3C3FF"/>
        <LineNumbers color="Gray" bgcolor="#FFFFFF"/>
        <CaretMarker color="#F0F0F1"/>
        <VRuler color="#E0E0E5"/>
        
        <FoldLine color="#A0A0A0" bgcolor="#FFFFFF"/>
        <FoldMarker color="Black" bgcolor="#FFFFFF"/>
        <SelectedFoldLine color="Black" bgcolor="#FFFFFF"/>
        
        <EOLMarkers color="#CACAD2"/>
        <SpaceMarkers color="#B6B6C0"/>
        <TabMarkers color="#B6B6C0"/>
        <InvalidLines color="#B6B6C0"/>
    </Environment>
    
    <Properties>
        <Property name="LineComment" value=";"/>
        <Property name="BlockCommentBegin" value="#|"/>
        <Property name="BlockCommentEnd" value="|#"/>
    </Properties>
    
    <Digits name="Digits" color="Black"/>
    
    <RuleSets>
        <RuleSet ignorecase="false">
        
            <Delimiters>`*()[]{}=|\/:;"'</Delimiters>
        
            <Span name="LineComment" stopateol="true" color="Green" bold="false" italic="false">
                <Begin>;</Begin>
            </Span>
            
            <Span name="BlockComment" stopateol="false" color="Green" bold="false" italic="false">
                <Begin>#|</Begin>
                <End>|#</End>
            </Span>
            
            <Span name="MultiLineString" stopateol="false" color="#808080" bold="false" italic="false" escapecharacter='"'>
                <Begin singleword="true">"</Begin>
                <End>"</End>
            </Span>
            
            <MarkFollowing color="Navy" bold="false" italic="false">:</MarkFollowing>
            <MarkFollowing color="DarkViolet" bold="false" italic="false">defun</MarkFollowing>
            <MarkFollowing color="DarkViolet" bold="false" italic="false">defsetf</MarkFollowing>
            <MarkFollowing color="DarkViolet" bold="false" italic="false">defmacro</MarkFollowing>
            <MarkFollowing color="DarkViolet" bold="false" italic="false">defmethod</MarkFollowing>
            <MarkFollowing color="DarkViolet" bold="false" italic="false">defconstant</MarkFollowing>
                        
            <KeyWords name="Keywords1" color="Blue" bold="false">
                <Key word="abs"/>
                <Key word="and"/>
                <Key word="append"/>
                <Key word="apply"/>
                <Key word="aref"/>
                <Key word="array"/>
                <Key word="assoc"/>
                <Key word="atom"/>
                <Key word="backquote"/>
                <Key word="baktrace"/>
                <Key word="bignums"/>
                <Key word="boundp"/>
                <Key word="break"/>
                <Key word="caaaar"/>
                <Key word="caaadr"/>
                <Key word="caaar"/>
                <Key word="caadar"/>
                <Key word="caaddr"/>
                <Key word="caadr"/>
                <Key word="caar"/>
                <Key word="cadaar"/>
                <Key word="cadadr"/>
                <Key word="cadar"/>
                <Key word="caddar"/>
                <Key word="cadddr"/>
                <Key word="caddr"/>
                <Key word="cadr"/>
                <Key word="car"/>
                <Key word="case"/>
                <Key word="catch"/>
                <Key word="cdaaar"/>
                <Key word="cdaadr"/>
                <Key word="cdaar"/>
                <Key word="cdadar"/>
                <Key word="cdaddr"/>
                <Key word="cdadr"/>
                <Key word="cdar"/>
                <Key word="cddaar"/>
                <Key word="cddadr"/>
                <Key word="cddar"/>
                <Key word="cdddar"/>
                <Key word="cddddr"/>
                <Key word="cdddr"/>
                <Key word="cddr"/>
                <Key word="cdr"/>
                <Key word="cerror"/>
                <Key word="check-type"/>
                <Key word="compile"/>
                <Key word="complement"/>
                <Key word="cond"/>
                <Key word="cons"/>
                <Key word="consp"/>
                <Key word="continue"/>
                <Key word="cos"/>
                <Key word="create-queue"/>
                <Key word="declare"/>
                <Key word="defconstant"/>
                <Key word="defmacro"/>
                <Key word="defmethod"/>
                <Key word="defparameter"/>
                <Key word="defsetf"/>
                <Key word="defstruct"/>
                <Key word="defun"/>
                <Key word="defun"/>
                <Key word="delete"/>
                <Key word="do"/>
                <Key word="dolist"/>
                <Key word="dotimes"/>
                <Key word="eq"/>
                <Key word="eql"/>
                <Key word="equal"/>
                <Key word="error"/>
                <Key word="errset"/>
                <Key word="eval"/>
                <Key word="eval-when"/>
                <Key word="evalhook"/>
                <Key word="evenp"/>
                <Key word="exp"/>
                <Key word="expt"/>
                <Key word="float"/>
                <Key word="format"/>
                <Key word="funcall"/>
                <Key word="function"/>
                <Key word="gensym"/>
                <Key word="get"/>
                <Key word="getf"/>
                <Key word="go"/>
                <Key word="hash"/>
                <Key word="identity"/>
                <Key word="if"/>
                <Key word="ignore"/>
                <Key word="in-package"/>
                <Key word="inline"/>
                <Key word="integer"/>
                <Key word="intern"/>
                <Key word="lables"/>
                <Key word="lambda"/>
                <Key word="last"/>
                <Key word="length"/>
                <Key word="length"/>
                <Key word="length"/>
                <Key word="let"/>
                <Key word="list"/>
                <Key word="list"/>
                <Key word="listp"/>
                <Key word="logand"/>
                <Key word="logbitp"/>
                <Key word="logcount"/>
                <Key word="logeqv"/>
                <Key word="logior"/>
                <Key word="lognand"/>
                <Key word="lognor"/>
                <Key word="lognot"/>
                <Key word="logorc2"/>
                <Key word="logtest"/>
                <Key word="logxor"/>
                <Key word="loop"/>
                <Key word="make"/>
                <Key word="make"/>
                <Key word="make-array"/>
                <Key word="mapc"/>
                <Key word="mapcan"/>
                <Key word="mapcar"/>
                <Key word="mapcon"/>
                <Key word="mapl"/>
                <Key word="maplist"/>
                <Key word="max"/>
                <Key word="member"/>
                <Key word="min"/>
                <Key word="minusp"/>
                <Key word="mod"/>
                <Key word="name"/>
                <Key word="nconc"/>
                <Key word="nil"/>
                <Key word="not"/>
                <Key word="nsublis"/>
                <Key word="nsubst"/>
                <Key word="nth"/>
                <Key word="nthcdr"/>
                <Key word="null"/>
                <Key word="numberp"/>
                <Key word="oddp"/>
                <Key word="or"/>
                <Key word="plist"/>
                <Key word="plusp"/>
                <Key word="princ"/>
                <Key word="proclaim"/>
                <Key word="prog"/>
                <Key word="prog1"/>
                <Key word="prog2"/>
                <Key word="progn"/>
                <Key word="putprop"/>
                <Key word="quote"/>
                <Key word="random"/>
                <Key word="rem"/>
                <Key word="remove"/>
                <Key word="remprop"/>
                <Key word="return"/>
                <Key word="return-from"/>
                <Key word="reverse"/>
                <Key word="rplaca"/>
                <Key word="rplacd"/>
                <Key word="set"/>
                <Key word="setf"/>
                <Key word="setq"/>
                <Key word="sin"/>
                <Key word="sqrt"/>
                <Key word="sublis"/>
                <Key word="subst"/>
                <Key word="svref"/>
                <Key word="symbol"/>
                <Key word="symbol"/>
                <Key word="symbol"/>
                <Key word="symbol"/>
                <Key word="symbolp"/>
                <Key word="tan"/>
                <Key word="throw"/>
                <Key word="truncate"/>
                <Key word="unless"/>
                <Key word="value"/>
                <Key word="values"/>
                <Key word="when"/>
                <Key word="zerop"/>
            </KeyWords>
        </RuleSet>
    </RuleSets>
</SyntaxDefinition>
