# mcedit syntax file
#
# Copyright (c) 2004 The University of Wroclaw.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#    1. Redistributions of source code must retain the above copyright
#       notice, this list of conditions and the following disclaimer.
#    2. Redistributions in binary form must reproduce the above copyright
#       notice, this list of conditions and the following disclaimer in the
#       documentation and/or other materials provided with the distribution.
#    3. The name of the University may not be used to endorse or promote
#       products derived from this software without specific prior
#       written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY ``AS IS'' AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
# NO EVENT SHALL THE UNIVERSITY BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# Adapted from java.syntax by Jacek Sliwerski.

context default
    keyword whole abstract yellow
    keyword whole and yellow
    keyword whole array yellow
    keyword whole as yellow
    keyword whole base yellow
    keyword whole bool yellow
    keyword whole catch yellow
    keyword whole const yellow
    keyword whole continue yellow
    keyword whole def yellow
    keyword whole else yellow
    keyword whole enum yellow
    keyword whole extends yellow
    keyword whole extern yellow
    keyword whole false yellow
    keyword whole finally yellow
    keyword whole float yellow
    keyword whole for yellow
    keyword whole foreach yellow
    keyword whole fun yellow
    keyword whole if yellow
    keyword whole implements yellow
    keyword whole in yellow
    keyword whole int yellow
    keyword whole interface yellow
    keyword whole internal yellow
    keyword whole list yellow
    keyword whole macro yellow
    keyword whole match yellow
    keyword whole module yellow
    keyword whole mutable yellow
    keyword whole namespace yellow
    keyword whole new yellow
    keyword whole null yellow
    keyword whole object yellow
    keyword whole option yellow
    keyword whole out yellow
    keyword whole override yellow
    keyword whole params yellow
    keyword whole private yellow
    keyword whole protected yellow
    keyword whole public yellow
    keyword whole ref yellow
    keyword whole sealed yellow
    keyword whole static yellow
    keyword whole string yellow
    keyword whole syntax yellow
    keyword whole this yellow
    keyword whole throw yellow
    keyword whole true yellow
    keyword whole try yellow
    keyword whole tymatch yellow
    keyword whole type yellow
    keyword whole typeof yellow
    keyword whole unless yellow
    keyword whole using yellow
    keyword whole variant yellow
    keyword whole virtual yellow
    keyword whole void yellow
    keyword whole when yellow
    keyword whole where yellow
    keyword whole while yellow
    keyword whole with yellow

    keyword /\* brown
    keyword \*/ brown
    keyword // brown

    keyword '\\\{"abtnvfr\}' brightgreen
    keyword '\\\{0123\}\{01234567\}\{01234567\}' brightgreen
    keyword '\\'' brightgreen
    keyword '\\\\' brightgreen
    keyword '\\0' brightgreen
    keyword '\{\s!"#$%&()\*\+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\}' brightgreen


    keyword %&& brightcyan
    keyword || brightcyan
    keyword && brightcyan
    keyword %| brightcyan
    keyword %& brightcyan
    keyword %^ brightcyan
    keyword :> brightcyan
    keyword <[ brightcyan
    keyword ]> brightcyan
    keyword > yellow
    keyword < yellow
    keyword \+ yellow
    keyword - yellow
    keyword \* yellow
    keyword / yellow
    keyword % yellow
    keyword = yellow
    keyword != yellow
    keyword == yellow
    keyword { brightcyan
    keyword } brightcyan
    keyword ( brightcyan
    keyword ) brightcyan
    keyword [ brightcyan
    keyword ] brightcyan
    keyword , brightcyan
    keyword : brightcyan
    keyword ? brightcyan
    keyword | brightcyan
    keyword ~ brightcyan
    keyword ! brightcyan
    keyword ; brightmagenta

context exclusive /\* \*/ brown
    spellcheck

context exclusive // \n brown
    spellcheck

context linestart # \n brightred
    keyword \\\n yellow
    keyword /\**\*/ brown
    keyword //*\n brown
    keyword "+" red
    keyword <+> red

context " " green
    spellcheck
    keyword $\[().abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_\*\] brightgreen
    keyword \\" brightgreen
    keyword %% brightgreen
    keyword %\[#0\s-\+,\]\[0123456789\*\]\[.\]\[0123456789\*\]\[L\]\{eEfgGoxX\} brightgreen
    keyword %\[0\s-\+,\]\[0123456789\*\]\[.\]\[0123456789\*\]\[hl\]\{diuxX\} brightgreen
    keyword %\[hl\]n brightgreen
    keyword %\[-\]\[0123456789\*\]\[.\]\[0123456789\*\]s brightgreen
    keyword %[*] brightgreen
    keyword %c brightgreen
    keyword %p brightgreen
    keyword \\\{0123\}\{01234567\}\{01234567\} brightgreen
    keyword \\\\ brightgreen
    keyword \\' brightgreen
    keyword \\\{abtnvfr\} brightgreen
