diff -bruBN mc.orig mc
diff -bruBN mc.orig/misc/syntax/jal.syntax mc/misc/syntax/jal.syntax
--- mc.orig/misc/syntax/jal.syntax	1970-01-01 01:00:00.000000000 +0100
+++ mc/misc/syntax/jal.syntax	2012-07-21 09:58:36.000000000 +0200
@@ -0,0 +1,375 @@
+#
+# Syntax rules for the JAL programming language.
+#
+
+context default
+
+    #=========================
+    # Variable types
+    #
+    keyword whole bit blue white
+    keyword whole BIT blue white
+    keyword whole byte blue white
+    keyword whole BYTE blue white
+    keyword whole sbyte blue white
+    keyword whole SBYTE blue white
+    keyword whole word blue white
+    keyword whole WORD blue white
+    keyword whole sword blue white
+    keyword whole WORD blue white
+    keyword whole dword blue white
+    keyword whole DWORD blue white
+    keyword whole sdword blue white
+    keyword whole SDWORD blue white
+
+    #=========================
+    # Predefined constants
+    #
+    keyword whole false black green
+    keyword whole FALSE black green
+    keyword whole true black green
+    keyword whole TRUE black green
+    keyword whole off black green
+    keyword whole OFF black green
+    keyword whole on black green
+    keyword whole ON black green
+    keyword whole low black green
+    keyword whole LOW black green
+    keyword whole high black green
+    keyword whole HIGH black green
+
+    #=========================
+    # Keywords
+    #
+    keyword whole alias yellow
+    keyword whole ALIAS yellow
+    keyword whole at yellow
+    keyword whole AT yellow
+    keyword whole begin yellow
+    keyword whole BEGIN yellow
+    keyword whole const yellow
+    keyword whole CONST yellow
+    keyword whole count yellow
+    keyword whole COUNT yellow
+    keyword whole defined yellow
+    keyword whole DEFINED yellow
+    keyword whole end yellow
+    keyword whole END yellow
+    keyword whole exit yellow
+    keyword whole EXIT yellow
+    keyword whole function yellow
+    keyword whole FINCTION yellow
+    keyword whole get yellow
+    keyword whole GET yellow
+    keyword whole in yellow
+    keyword whole IN yellow
+    keyword whole is yellow
+    keyword whole IS yellow
+    keyword whole local yellow
+    keyword whole LOCAL yellow
+    keyword whole of yellow
+    keyword whole OF yellow
+    keyword whole out yellow
+    keyword whole OUT yellow
+    keyword whole put yellow
+    keyword whole PUT yellow
+    keyword whole procedure yellow
+    keyword whole PROCEDURE yellow
+    keyword whole record yellow
+    keyword whole RECORD yellow
+    keyword whole repeat yellow
+    keyword whole REPEAT yellow
+    keyword whole return yellow
+    keyword whole RETURN yellow
+    keyword whole then yellow
+    keyword whole THEN yellow
+    keyword whole until yellow
+    keyword whole UNTIL yellow
+    keyword whole var yellow
+    keyword whole VAR yellow
+
+    keyword whole volatile blue white
+    keyword whole VOLATILE blue white
+
+    keyword whole asm brightred
+    keyword whole ASM brightred
+    keyword whole assembler brightred
+    keyword whole ASSEMBLER brightred
+    keyword whole assert brightred
+    keyword whole ASSERT brightred
+    keyword whole include brightred
+    keyword whole INCLUDE brightred
+    keyword whole task brightred
+    keyword whole TASK brightred
+
+    #=========================
+    # Pragma keywords
+    #
+    keyword whole pragma\{\t\s\}\[\t\s\]bootloader\{\t\s\}\[\t\s\]bloader brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]BOOTLOADER\{\t\s\}\[\t\s\]BLOADER brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]bootloader\{\t\s\}\[\t\s\]long_start brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]BOOTLOADER\{\t\s\}\[\t\s\]LONG_START brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]bootloader\{\t\s\}\[\t\s\]loader18 brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]BOOTLOADER\{\t\s\}\[\t\s\]LOADER18 brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]bootloader\{\t\s\}\[\t\s\]rickpic brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]BOOTLOADER\{\t\s\}\[\t\s\]RICKPIC brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]clear\{\t\s\}\[\t\s\]no brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]CLEAR\{\t\s\}\[\t\s\]NO brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]clear\{\t\s\}\[\t\s\]yes brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]CLEAR\{\t\s\}\[\t\s\]YES brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]code brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]CODE brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]data brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]DATA brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]debug\{\t\s\}\[\t\s\]codegen\{\t\s\}\[\t\s\]no brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]DEBUG\{\t\s\}\[\t\s\]CODEGEN\{\t\s\}\[\t\s\]NO brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]debug\{\t\s\}\[\t\s\]codegen\{\t\s\}\[\t\s\]yes brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]DEBUG\{\t\s\}\[\t\s\]CODEGEN\{\t\s\}\[\t\s\]YES brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]debug\{\t\s\}\[\t\s\]pcode\{\t\s\}\[\t\s\]no brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]DEBUG\{\t\s\}\[\t\s\]PCODE\{\t\s\}\[\t\s\]NO brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]debug\{\t\s\}\[\t\s\]pcode\{\t\s\}\[\t\s\]yes brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]DEBUG\{\t\s\}\[\t\s\]PCODE\{\t\s\}\[\t\s\]YES brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]eedata brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]EEDATA brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]eeprom brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]EEPROM brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]error brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]ERROR brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]frame brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]FRAME brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]fuse_def brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]FUSE_DEF brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]id brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]ID brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]iddata brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]IDDATA brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]inline brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]INLINE brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]interrupt\{\t\s\}\[\t\s\]fast brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]INTERRUPT\{\t\s\}\[\t\s\]FAST brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]interrupt\{\t\s\}\[\t\s\]normal brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]INTERRUPT\{\t\s\}\[\t\s\]NORMAL brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]interrupt\{\t\s\}\[\t\s\]raw brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]INTERRUPT\{\t\s\}\[\t\s\]RAW brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]interrupt brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]INTERRUPT brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]jump_table brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]JUMP_TABLE brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]keep\{\t\s\}\[\t\s\]bank brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]KEEP\{\t\s\}\[\t\s\]BANK brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]keep\{\t\s\}\[\t\s\]page brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]KEEP\{\t\s\}\[\t\s\]PAGE brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]keep brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]KEEP brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]name brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]NAME brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]nostack brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]NOSTACK brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]expr_reduce\{\t\s\}\[\t\s\]no brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]OPT\{\t\s\}\[\t\s\]EXPR_REDUCE\{\t\s\}\[\t\s\]NO brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]expr_reduce\{\t\s\}\[\t\s\]yes brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]OPT\{\t\s\}\[\t\s\]EXPR_REDUCE\{\t\s\}\[\t\s\]YES brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]cexpr_reduce\{\t\s\}\[\t\s\]no brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]OPT\{\t\s\}\[\t\s\]CEXPR_REDUCE\{\t\s\}\[\t\s\]NO brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]cexpr_reduce\{\t\s\}\[\t\s\]yes brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]OPT\{\t\s\}\[\t\s\]CEXPR_REDUCE\{\t\s\}\[\t\s\]YES brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]const_detect\{\t\s\}\[\t\s\]no brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]OPT\{\t\s\}\[\t\s\]CONST_DETECT\{\t\s\}\[\t\s\]NO brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]const_detect\{\t\s\}\[\t\s\]yes brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]OPT\{\t\s\}\[\t\s\]CONST_DETECT\{\t\s\}\[\t\s\]YES brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]load_reduce\{\t\s\}\[\t\s\]no brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]OPT\{\t\s\}\[\t\s\]LOAD_REDUCE\{\t\s\}\[\t\s\]NO brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]load_reduce\{\t\s\}\[\t\s\]yes brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]OPT\{\t\s\}\[\t\s\]LOAD_REDUCE\{\t\s\}\[\t\s\]YES brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]temp_reduce\{\t\s\}\[\t\s\]no brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]OPT\{\t\s\}\[\t\s\]TEMP_REDUCE\{\t\s\}\[\t\s\]NO brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]temp_reduce\{\t\s\}\[\t\s\]yes brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]OPT\{\t\s\}\[\t\s\]TEMP_REDUCE\{\t\s\}\[\t\s\]YES brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]variable_frame\{\t\s\}\[\t\s\]no brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]OPT\{\t\s\}\[\t\s\]VARIABLE_FRAME\{\t\s\}\[\t\s\]NO brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]variable_frame\{\t\s\}\[\t\s\]yes brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]OPT\{\t\s\}\[\t\s\]VARIABLE_FRAME\{\t\s\}\[\t\s\]YES brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]variable_reduce\{\t\s\}\[\t\s\]no brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]OPT\{\t\s\}\[\t\s\]VARIABLE_REDUCE\{\t\s\}\[\t\s\]NO brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]variable_reduce\{\t\s\}\[\t\s\]yes brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]OPT\{\t\s\}\[\t\s\]VARIABLE_REDUCE\{\t\s\}\[\t\s\]YES brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]shared brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]SHARED brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]size brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]SIZE brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]speed brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]SPEED brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]stack brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]STACK brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]target\{\t\s\}\[\t\s\]bank brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]TARGET\{\t\s\}\[\t\s\]BANK brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]target\{\t\s\}\[\t\s\]clock brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]TARGET\{\t\s\}\[\t\s\]CLOCK brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]target\{\t\s\}\[\t\s\]chip brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]TARGET\{\t\s\}\[\t\s\]CHIP brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]target\{\t\s\}\[\t\s\]cpu brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]TARGET\{\t\s\}\[\t\s\]CPU brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]target\{\t\s\}\[\t\s\]fuses brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]TARGET\{\t\s\}\[\t\s\]FUSES brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]target\{\t\s\}\[\t\s\]fuses_def brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]TARGET\{\t\s\}\[\t\s\]FUSES_DEF brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]target\{\t\s\}\[\t\s\]page brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]TARGET\{\t\s\}\[\t\s\]PAGE brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]target brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]TARGET brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]task brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]TASK brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]all\{\t\s\}\[\t\s\]no brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]WARN\{\t\s\}\[\t\s\]ALL\{\t\s\}\[\t\s\]NO brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]all\{\t\s\}\[\t\s\]yes brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]WARN\{\t\s\}\[\t\s\]ALL\{\t\s\}\[\t\s\]YES brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]backend\{\t\s\}\[\t\s\]no brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]WARN\{\t\s\}\[\t\s\]BACKEND\{\t\s\}\[\t\s\]NO brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]backend\{\t\s\}\[\t\s\]yes brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]WARN\{\t\s\}\[\t\s\]BACKEND\{\t\s\}\[\t\s\]YES brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]conversion\{\t\s\}\[\t\s\]no brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]WARN\{\t\s\}\[\t\s\]CONVERSION\{\t\s\}\[\t\s\]NO brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]conversion\{\t\s\}\[\t\s\]yes brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]WARN\{\t\s\}\[\t\s\]CONVERSION\{\t\s\}\[\t\s\]YES brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]directives\{\t\s\}\[\t\s\]no brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]WARN\{\t\s\}\[\t\s\]DIRECTIVES\{\t\s\}\[\t\s\]NO brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]directives\{\t\s\}\[\t\s\]yes brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]WARN\{\t\s\}\[\t\s\]DIRECTIVES\{\t\s\}\[\t\s\]YES brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]misc\{\t\s\}\[\t\s\]no brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]WARN\{\t\s\}\[\t\s\]MISC\{\t\s\}\[\t\s\]NO brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]misc\{\t\s\}\[\t\s\]yes brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]WARN\{\t\s\}\[\t\s\]MISC\{\t\s\}\[\t\s\]YES brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]range\{\t\s\}\[\t\s\]no brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]WARN\{\t\s\}\[\t\s\]RANGE\{\t\s\}\[\t\s\]NO brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]range\{\t\s\}\[\t\s\]yes brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]WARN\{\t\s\}\[\t\s\]RANGE\{\t\s\}\[\t\s\]YES brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]stack_overflow\{\t\s\}\[\t\s\]no brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]WARN\{\t\s\}\[\t\s\]STACK_OVERFLOW\{\t\s\}\[\t\s\]NO brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]stack_overflow\{\t\s\}\[\t\s\]yes brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]WARN\{\t\s\}\[\t\s\]STACK_OVERFLOW\{\t\s\}\[\t\s\]YES brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]truncate\{\t\s\}\[\t\s\]no brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]WARN\{\t\s\}\[\t\s\]TRUNCATE\{\t\s\}\[\t\s\]NO brightred
+    keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]truncate\{\t\s\}\[\t\s\]yes brightred
+    keyword whole PRAGMA\{\t\s\}\[\t\s\]WARN\{\t\s\}\[\t\s\]TRUNCATE\{\t\s\}\[\t\s\]YES brightred
+
+    keyword whole block brightcyan
+    keyword whole BLOCK brightcyan
+    keyword whole case brightcyan
+    keyword whole CASE brightcyan
+    keyword whole else brightcyan
+    keyword whole ELSE brightcyan
+    keyword whole elsif brightcyan
+    keyword whole ELSIF brightcyan
+    keyword whole for brightcyan
+    keyword whole FOR brightcyan
+    keyword whole forever brightcyan
+    keyword whole FOREVER brightcyan
+    keyword whole if brightcyan
+    keyword whole IF brightcyan
+    keyword whole loop brightcyan
+    keyword whole LOOP brightcyan
+    keyword whole otherwise brightcyan
+    keyword whole OTHERWISE brightcyan
+    keyword whole start brightcyan
+    keyword whole START brightcyan
+    keyword whole suspend brightcyan
+    keyword whole SUSPEND brightcyan
+    keyword whole using brightcyan
+    keyword whole USING brightcyan
+    keyword whole while brightcyan
+    keyword whole WHILE brightcyan
+
+    keyword whole _debug yellow
+    keyword whole _DEBUG yellow
+    keyword whole _error yellow
+    keyword whole _ERROR yellow
+    keyword whole _warn yellow
+    keyword whole _WARN yellow
+
+    keyword whole _code_size brightred
+    keyword whole _CODE_SIZE brightred
+    keyword whole _fuses brightred
+    keyword whole _FUSES brightred
+    keyword whole _fuses_base brightred
+    keyword whole _FUSES_BASE brightred
+    keyword whole target_chip brightred
+    keyword whole TARGET_CHIP brightred
+    keyword whole target_cpu brightred
+    keyword whole TARGET_CPU brightred
+    keyword whole target_clock brightred
+    keyword whole TARGET_CLOCK brightred
+
+    keyword whole _usec_delay yellow
+
+wholechars 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_
+
+    #=========================
+    # Numbers
+    #
+    keyword whole 0b\{01_\}\[01_\] brightgreen
+    keyword whole 0q\{0123456_\}\[0123456_\] brightgreen
+    keyword whole \[-\]\{0123456789_\}\[0123456789_\] brightgreen
+    keyword whole 0x\{0123456789ABCDEFabcdef_\}\[0123456789ABCDEFabcdef_\] brightgreen
+
+    #=========================
+    # Comments
+    #
+    keyword --*\n white magenta
+    keyword ;*\n white magenta
+
+    #=========================
+    # Special symbols
+    #
+    keyword - yellow
+    keyword \* yellow
+    keyword / yellow
+    keyword % yellow
+    keyword \+ yellow
+    keyword << yellow
+    keyword >> yellow
+
+    keyword ~ brightmagenta
+    keyword !! brightmagenta
+    keyword & brightmagenta
+    keyword | brightmagenta
+    keyword ^ brightmagenta
+    keyword ' brightmagenta
+
+    keyword : brightred
+    keyword != brightred
+    keyword == brightred
+    keyword <= brightred
+    keyword >= brightred
+    keyword < brightred
+    keyword > brightred
+
+    keyword = yellow
+    keyword ! brightmagenta
+
+    #=========================
+    # Separators
+    #
+    keyword ( brightcyan
+    keyword ) brightcyan
+    keyword [ brightcyan
+    keyword ] brightcyan
+    keyword { brightcyan
+    keyword } brightcyan
+    keyword , brightcyan
+    keyword . brightcyan
+
+    #=========================
+    # Assembler lines
+    #
+context exclusive asm\{\t\s\}\[\t\s\] \n blue cyan
+
+    #=========================
+    # Strings
+    #
+context " " black green
+    spellcheck
+    keyword \\" red
+    keyword \\\\ red
+    keyword \\\{abfnrtv?\} red
+    keyword \\0\{0123456789ABCDEFabcdef\}\{0123456789ABCDEFabcdef\}\{0123456789ABCDEFabcdef\} red
+    keyword \\\x\{0123456789ABCDEFabcdef\}\{0123456789ABCDEFabcdef\} red
diff -bruBN mc.orig/misc/syntax/lkr.syntax mc/misc/syntax/lkr.syntax
--- mc.orig/misc/syntax/lkr.syntax	1970-01-01 01:00:00.000000000 +0100
+++ mc/misc/syntax/lkr.syntax	2012-07-24 22:11:23.000000000 +0200
@@ -0,0 +1,76 @@
+# Syntax rules for the gputils .lkr files.
+
+context default
+
+    #=========================
+    # Predefined constants
+    #
+    keyword whole _CRUNTIME black green
+    keyword whole _DEBUG black green
+    keyword whole _DEBUGCODESTART black green
+    keyword whole _DEBUGCODELEN black green
+    keyword whole _DEBUGDATASTART black green
+    keyword whole _DEBUGDATALEN black green
+    keyword whole _EXTENDEDMODE black green
+
+    #=========================
+    # Keywords
+    #
+    keyword whole LIBPATH brightgreen
+    keyword whole LKRPATH brightgreen
+    keyword whole FILES brightgreen
+
+    keyword whole #DEFINE brightred
+    keyword whole #IFDEF brightred
+    keyword whole #ELSE brightred
+    keyword whole #FI brightred
+
+    keyword whole ACCESSBANK yellow
+    keyword whole CODEPAGE yellow
+    keyword whole DATABANK yellow
+    keyword whole LINEARMEM yellow
+    keyword whole PROTECTED yellow
+    keyword whole RESERVED yellow
+    keyword whole SECTION yellow
+    keyword whole SHAREBANK yellow
+    keyword whole SHADOW yellow
+    keyword whole STACK yellow
+
+    keyword whole END brightmagenta
+    keyword whole NAME brightmagenta
+    keyword whole SIZE brightmagenta
+    keyword whole START brightmagenta
+
+    keyword whole RAM brown
+    keyword whole ROM brown
+
+wholechars 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_
+
+    #=========================
+    # Numbers
+    #
+    keyword whole 0b\{01_\}\[01_\] brightgreen
+    keyword whole 0q\{0123456_\}\[0123456_\] brightgreen
+    keyword whole \[-\]\{0123456789_\}\[0123456789_\] brightgreen
+    keyword whole 0x\{0123456789ABCDEFabcdef_\}\[0123456789ABCDEFabcdef_\] brightgreen
+
+    #=========================
+    # Comments
+    #
+    keyword //*\n white magenta
+
+    #=========================
+    # Special symbols
+    #
+    keyword - brightcyan
+    keyword \* brightcyan
+    keyword / brightcyan
+    keyword % brightcyan
+    keyword \+ brightcyan
+    keyword << brightcyan
+    keyword >> brightcyan
+    keyword = brightcyan
+    keyword ( brightcyan
+    keyword ) brightcyan
+    keyword . brightcyan
+    keyword : brightcyan
diff -bruBN mc.orig/misc/syntax/Syntax mc/misc/syntax/Syntax
--- mc.orig/misc/syntax/Syntax	2012-07-08 20:15:25.000000000 +0200
+++ mc/misc/syntax/Syntax	2012-07-25 09:15:43.121000073 +0200
@@ -244,5 +244,11 @@
 file ..\*\\.(l|y|yxx|ypp)$ Lex/Flex/Yacc/Bison\ssource
 include yxx.syntax
 
+file ..\*\\.([jJ][aA][lL][tT]?)$ Jal\ssource
+include jal.syntax
+
+file ..\*\\.([lL][kK][rR])$ PIC\slinker\sscript\sfile
+include lkr.syntax
+
 file .\* unknown
 include unknown.syntax
