<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<language version="1.01" kateversion="2.1" name="Scheme" section="Sources" extensions="*.scm;*.ss;*.scheme" mimetype="text/x-scheme">
  <highlighting>
    <list name="blocks">
      <item> begin </item>
      <item> declare </item>
      <item> define </item>
      <item> define-syntax </item>
      <item> define-structure </item>
      <item> do </item>
      <item> let </item>
      <item> let* </item>
      <item> letrec </item>
      <item> let-syntax </item>
      <item> letrec-syntax </item>
      <item> lambda </item>
    </list>
    <list name="predicates">
      <item> boolean </item>
      <item> char-alphabetic </item>
      <item> char-numeric </item>
      <item> char-lower-case </item>
      <item> char-ready </item>
      <item> char-upper-case </item>
      <item> char-whitespace </item>
      <item> complex </item>
      <item> eof-object </item>
      <item> eq </item>
      <item> eqv </item>
      <item> equal </item>
      <item> even </item>
      <item> input-port </item>
      <item> integer </item>
      <item> list </item>
      <item> negative </item>
      <item> null </item>
      <item> number </item>
      <item> odd </item>
      <item> output-port </item>
      <item> pair </item>
      <item> port </item>
      <item> positive </item>
      <item> procedure </item>
      <item> rational </item>
      <item> real </item>
      <item> symbol </item>
      <item> vector </item>
      <item> zero </item>
    </list>
    <list name="predicates2">
      <item> char </item>
      <item> char-ci </item>
      <item> string </item>
      <item> string-ci </item>
    </list>
    <list name="assignments">
      <item> append </item>
      <item> set </item>
      <item> set-car </item>
      <item> set-cdr </item>
      <item> string-fill </item>
      <item> string-set </item>
    </list>
    <list name="mathops">
      <item> abs </item>
      <item> and </item>
      <item> angle </item>
      <item> acos </item>
      <item> asin </item>
      <item> atan </item>
      <item> cos </item>
      <item> denominator </item>
      <item> expt </item>
      <item> exp </item>
      <item> floor </item>
      <item> gcd </item>
      <item> lcm </item>
      <item> log </item>
      <item> magnitude </item>
      <item> max </item>
      <item> min </item>
      <item> modulo </item>
      <item> not </item>
      <item> numerator </item>
      <item> or </item>
      <item> round </item>
      <item> sin </item>
      <item> sqrt </item>
      <item> tan </item>
      <item> truncate </item>
    </list>
    <list name="keywords">
      <item> apply </item>
      <item> assq </item>
      <item> assv </item>
      <item> assoc </item>
      <item> call-with-current-continuation </item>
      <item> call-with-input-file </item>
      <item> call-with-output-file </item>
      <item> call-with-values </item>
      <item> car </item>
      <item> case </item>
      <item> cdr </item>
      <item> ceiling </item>
      <item> char-upcase </item>
      <item> char-downcase </item>
      <item> close-input-file </item>
      <item> close-output-file </item>
      <item> cond </item>
      <item> cons </item>
      <item> cons* </item>
      <item> current-input-port </item>
      <item> current-output-port </item>
      <item> delay </item>
      <item> display </item>
      <item> dynamic-wind </item>
      <item> else </item>
      <item> eval </item>
      <item> force </item>
      <item> for-each </item>
      <item> if </item>
      <item> imag-part </item>
      <item> interaction-environment </item>
      <item> length </item>
      <item> list </item>
      <item> list-ref </item>
      <item> list-tail </item>
      <item> memq </item>
      <item> memv </item>
      <item> member </item>
      <item> load </item>
      <item> make-polar </item>
      <item> make-rectangular </item>
      <item> make-string </item>
      <item> make-vector </item>
      <item> map </item>
      <item> newline </item>
      <item> null-environment </item>
      <item> open-input-file </item>
      <item> open-output-file </item>
      <item> peek-char </item>
      <item> quasiquote </item>
      <item> quote </item>
      <item> quotient </item>
      <item> rationalize </item>
      <item> read </item>
      <item> read-char </item>
      <item> real-part </item>
      <item> remainder </item>
      <item> reverse </item>
      <item> scheme-report-environment </item>
      <item> space </item>
      <item> string-append </item>
      <item> string-copy </item>
      <item> string-length </item>
      <item> string-ref </item>
      <item> substring </item>
      <item> syntax-rules </item>
      <item> transcript-on </item>
      <item> transcript-off </item>
      <item> unquote </item>
      <item> unquote-splicing </item>
      <item> values </item>
      <item> with-input-from-file </item>
      <item> with-output-to-file </item>
      <item> write </item>
      <item> write-char </item>
    </list>
    <contexts>
      <context name="Intro" attribute="Error" lineEndContext="#stay">
        <DetectChar attribute="Comment" context="Comment" char=";"/>
        <Detect2Chars attribute="Comment" context="MultiLineComment" char="|" char1="#"/>
        <DetectChar attribute="Operator" context="Normal" char="("/>
      </context>
      <context name="Normal" attribute="Normal" lineEndContext="#stay">
        <DetectChar attribute="Comment" context="Comment" char=";"/>
        <Detect2Chars attribute="Comment" context="MultiLineComment" char="|" char1="#"/>
        <DetectChar attribute="Operator" context="Normal" char="("/>
        <DetectChar attribute="Operator" context="#pop" char=")"/>
        <keyword attribute="String" context="#stay" String="blocks"/>
        <keyword attribute="Keyword" context="#stay" String="keywords"/>
        <keyword attribute="Keyword" context="Predicates" String="predicates"/>
        <keyword attribute="Keyword" context="Predicates2" String="predicates2"/>
        <keyword attribute="Keyword" context="Assignments" String="assignments"/>
        <keyword attribute="MathOps" context="#stay" String="mathops"/>
        <RegExpr attribute="MathOps" context="#stay" String="[\+\-\*\/]?\s"/>
        <StringDetect attribute="Special" context="#stay" String="list-&gt;string"/>
        <StringDetect attribute="Special" context="#stay" String="string-&gt;list"/>
        <StringDetect attribute="Special" context="#stay" String="char-&gt;integer"/>
        <StringDetect attribute="Special" context="#stay" String="integer-&gt;char"/>
        <StringDetect attribute="Special" context="#stay" String="string-&gt;symbol"/>
        <StringDetect attribute="Special" context="#stay" String="symbol-&gt;string"/>
        <StringDetect attribute="Special" context="#stay" String="exact-&gt;inexact"/>
        <StringDetect attribute="Special" context="#stay" String="inexact-&gt;exact"/>
        <StringDetect attribute="Special" context="#stay" String="number-&gt;string"/>
        <StringDetect attribute="Special" context="#stay" String="string-&gt;number"/>
        <RegExpr attribute="Predicate" context="#stay" String="[&lt;&gt;]?=?\s"/>
        <DetectChar attribute="Comment" context="String" char="&quot;"/>
        <StringDetect attribute="Decimal" context="#stay" String="'()"/>
        <RegExpr attribute="Special" context="#stay" String="['`]"/>
        <RegExpr attribute="Char" context="SpecialNumber" String="#[bodxei]"/>
        <RegExpr attribute="Decimal" context="#stay" String="#[tf]"/>
        <Float attribute="Float" context="#stay"/>
        <Int attribute="Decimal" context="#stay"/>
      </context>
      <context name="Comment" attribute="Comment" lineEndContext="#pop"/>
      <context name="MultiLineComment" attribute="Comment" lineEndContext="#stay">
        <Detect2Chars attribute="Comment" context="#pop" char="#" char1="|"/>
      </context>
      <context name="Predicates" attribute="Normal" lineEndContext="#pop">
        <DetectChar attribute="Predicate" context="#pop" char="?"/>
      </context>
      <context name="Predicates2" attribute="Normal" lineEndContext="#pop">
        <RegExpr attribute="Predicate" context="#pop" String="[&lt;&gt;]?=?\?"/>
      </context>
      <context name="Assignments" attribute="Normal" lineEndContext="#pop">
        <DetectChar attribute="Assignments" context="#pop" char="!"/>
      </context>
      <context name="SpecialNumber" attribute="Normal" lineEndContext="#pop">
        <Float attribute="Float" context="#pop"/>
        <Int attribute="Decimal" context="#pop"/>
        <HlCOct attribute="BaseN" context="#pop"/>
        <HlCHex attribute="Float" context="#pop"/>
      </context>
      <context name="String" attribute="String" lineEndContext="#stay">
        <DetectChar attribute="Comment" context="#pop" char="&quot;"/>
      </context>
    </contexts>
    <itemDatas>
      <itemData name="Normal"      defStyleNum="dsNormal"/>
      <itemData name="Keyword"     defStyleNum="dsKeyword"/>
      <itemData name="Data"        defStyleNum="dsDataType"/>
      <itemData name="Decimal"     defStyleNum="dsDecVal"/>
      <itemData name="BaseN"       defStyleNum="dsBaseN"/>
      <itemData name="Float"       defStyleNum="dsFloat"/>
      <itemData name="Char"        defStyleNum="dsChar"/>
      <itemData name="String"      defStyleNum="dsString"/>
      <itemData name="Comment"     defStyleNum="dsComment"/>
      <itemData name="Operator"    defStyleNum="dsNormal" color="#008100" selColor="#00ff00" bold="1" italic="0"/>
      <itemData name="Predicate"   defStyleNum="dsNormal" color="#ff00ff" selColor="#ff00ff" bold="1" italic="0"/>
      <itemData name="Assignments" defStyleNum="dsNormal" color="#ff0000" selColor="#ff0000" bold="1" italic="0"/>
      <itemData name="MathOps"     defStyleNum="dsNormal" color="#00aaff" selColor="#fffa00" bold="0" italic="0"/>
      <itemData name="Special"     defStyleNum="dsNormal" color="#543491" selColor="#fffa00" bold="1" italic="0"/>
      <itemData name="Error"       defStyleNum="dsNormal" color="#845322" selColor="#fffa00" bold="1" italic="1"/>
    </itemDatas>
  </highlighting>
  <general>
    <keywords casesensitive="1" weakDeliminator="-"/>
    <comments>
      <comment name="singleLine" start=";" />
      <comment name="multiLine" start="#|" end="|#" />
    </comments>
  </general>
</language>
