##################################################################################
# ML (CamlLight) syntax hilighting by Carlos Rodrigues <a9566@lei.di.fct.unl.pt> #
##################################################################################

context default
    keyword whole and yellow
    keyword whole as yellow
    keyword whole begin yellow
    keyword whole do yellow
    keyword whole done yellow
    keyword whole downto yellow
    keyword whole else yellow
    keyword whole end yellow
    keyword whole exception yellow
    keyword whole for yellow
    keyword whole fun yellow
    keyword whole function yellow
    keyword whole if yellow
    keyword whole in yellow
    keyword whole let yellow
    keyword whole match yellow
    keyword whole mutable yellow
    keyword whole not yellow
    keyword whole of yellow
    keyword whole or yellow
    keyword whole prefix yellow
    keyword whole rec yellow
    keyword whole then yellow
    keyword whole to yellow
    keyword whole try yellow
    keyword whole type yellow
    keyword whole value yellow
    keyword whole where yellow
    keyword whole while yellow
    keyword whole mod yellow
    keyword whole with yellow
    keyword whole true yellow
    keyword whole false yellow

    keyword (\* brown
    keyword \*) brown

    keyword `\s` brightcyan
    keyword `+` brightcyan
    keyword > cyan
    keyword <> cyan
    keyword < cyan
    keyword . cyan
    keyword -> brightgreen
    keyword <- cyan
    keyword \+ cyan
    keyword - cyan
    keyword \* cyan
    keyword / cyan
    keyword % cyan
    keyword = cyan
    keyword | cyan
    keyword # cyan
    keyword @ cyan
    keyword ^ cyan
    keyword { cyan
    keyword } cyan
    keyword ( cyan
    keyword ) cyan
    keyword [ cyan
    keyword ] cyan
    keyword , cyan
    keyword : cyan
    keyword & cyan
    
    keyword wholeright ;; brightred
    keyword wholeright ; brightred
    
    keyword ; cyan

context exclusive (\* \*) brown

    keyword \\\n yellow
    keyword "+" brown
    keyword <+> brown

context " " brightcyan
    keyword \\" brightmagenta
    keyword \\n brightmagenta
    keyword %% brightmagenta
    keyword %\[#0\s-\+,\]\[0123456789\]\[.\]\[0123456789\]\[L\]\{eEfgGoxX\} brightmagenta
    keyword %\[0\s-\+,\]\[0123456789\]\[.\]\[0123456789\]\[hl\]\{diuxX\} brightmagenta
    keyword %\[hl\]n brightmagenta
    keyword %\[.\]\[0123456789\]s brightmagenta
    keyword %[*] brightmagenta
    keyword %c brightmagenta
    keyword \\\{0123\}\{01234567\}\{01234567\} brightmagenta
    keyword \\\\ brightmagenta
    keyword \\' brightmagenta
    keyword \\\{abtnvfr\} brightmagenta


###################################################################################
# (GNU) SmallTalk syntax hilighting by Carlos Rodrigues <a9566@lei.di.fct.unl.pt> #
###################################################################################

file ..\*\\.(st)$ SmallTalk\sProgram

# I guess this is not very syntax strict, but it makes the code
# a lot more readable.

context default
    keyword whole methodsFor yellow
    keyword whole subclass yellow
    keyword whole class yellow
    keyword whole nil yellow
    keyword whole self yellow
    keyword whole instanceVariableNames yellow
    keyword whole classVariableNames yellow
    keyword whole poolDictionaries yellow
    keyword whole category yellow
    keyword whole super yellow
    keyword whole category yellow
    keyword whole variableSubclass yellow
    keyword whole variableByteSubclass yellow
    keyword whole variableWordSubclass yellow
    keyword whole superclass yellow

    keyword whole not brightmagenta
    keyword whole comment brightmagenta
    keyword whole error brightmagenta
    keyword whole at brightmagenta
    keyword whole put brightmagenta
    keyword whole add brightmagenta
    keyword whole remove brightmagenta
    keyword whole new brightmagenta
    keyword whole ifTrue brightmagenta
    keyword whole ifFalse brightmagenta
    keyword whole whileTrue brightmagenta
    keyword whole whileFalse brightmagenta
    keyword whole ifAbsent brightmagenta
    keyword whole init brightmagenta
    keyword whole do brightmagenta
    keyword whole from brightmagenta
    keyword whole with brightmagenta
    keyword whole do brightmagenta
    keyword whole true brightmagenta
    keyword whole false brightmagenta
    keyword whole or brightmagenta
    keyword whole and brightmagenta
    keyword whole to brightmagenta
    keyword whole by brightmagenta
    
    keyword whole Smalltalk brightgreen
    keyword whole Object brightgreen
    keyword whole Autoload brightgreen
    keyword whole Behavior brightgreen
    keyword whole ClassDescription brightgreen
    keyword whole Class brightgreen
    keyword whole MetaClass brightgreen
    keyword whole BlockContext brightgreen
    keyword whole Boolean brightgreen
    keyword whole False brightgreen
    keyword whole True brightgreen
    keyword whole CFunctionDescriptor brightgreen
    keyword whole CObject brightgreen
    keyword whole Collection brightgreen
    keyword whole Bag brightgreen
    keyword whole MappedCollection brightgreen
    keyword whole SequenceableCollection brightgreen
    keyword whole ArrayedCollection brightgreen
    keyword whole Array brightgreen
    keyword whole ByteArray brightgreen
    keyword whole CompiledCollection brightgreen
    keyword whole String brightgreen
    keyword whole Symbol brightgreen
    keyword whole Interval brightgreen
    keyword whole LinkedList brightgreen
    keyword whole Semaphore brightgreen
    keyword whole OrderedCollection brightgreen
    keyword whole SortedCollection brightgreen
    keyword whole Set brightgreen
    keyword whole Dictionary brightgreen
    keyword whole IdentityDictionary brightgreen
    keyword whole SystemDictionary brightgreen
    keyword whole Delay brightgreen
    keyword whole FileSegment brightgreen
    keyword whole Link brightgreen
    keyword whole Process brightgreen
    keyword whole SymLink brightgreen
    keyword whole Magnitude brightgreen
    keyword whole Character brightgreen
    keyword whole Date brightgreen
    keyword whole LookupKey brightgreen
    keyword whole Association brightgreen
    keyword whole Number brightgreen
    keyword whole Float brightgreen
    keyword whole Integer brightgreen
    keyword whole Time brightgreen
    keyword whole Memory brightgreen
    keyword whole ByteMemory brightgreen
    keyword whole WordMemory brightgreen
    keyword whole Message brightgreen
    keyword whole MethodContext brightgreen
    keyword whole MethodInfo brightgreen
    keyword whole ProcessorScheduler brightgreen
    keyword whole SharedQueue brightgreen
    keyword whole Stream brightgreen
    keyword whole PositionableStream brightgreen
    keyword whole ReadStream brightgreen
    keyword whole WriteStream brightgreen
    keyword whole ReadWriteStream brightgreen
    keyword whole FileStream brightgreen
    keyword whole Random brightgreen
    keyword whole TokenStream brightgreen
    keyword whole UndefinedObject brightgreen

    keyword wholeright !! brightred
    keyword wholeright ! brightred
    keyword wholeleft ! brightred
    keyword wholeright . brightred

    keyword > cyan
    keyword <> cyan
    keyword < cyan
    keyword \+ cyan
    keyword - cyan
    keyword \* cyan
    keyword / cyan
    keyword % cyan
    keyword = cyan
    keyword | cyan
    keyword # cyan
    keyword @ cyan
    keyword ^ cyan
    keyword { cyan
    keyword } cyan
    keyword ( cyan
    keyword ) cyan
    keyword [ cyan
    keyword ] cyan
    keyword , cyan
    keyword : cyan
    keyword & cyan
    keyword $ cyan
    keyword . cyan
    keyword ! cyan
    keyword ; cyan
    keyword _ cyan
    keyword ~ cyan
    keyword ? cyan

context $ ; cyan

context " " brown

context ' ' brightcyan

    keyword \\\n brightmagenta
    keyword \\" brightmagenta
    keyword \\\\ brightmagenta
    keyword \\' brightmagenta