diff options
Diffstat (limited to '')
-rw-r--r-- | misc/syntax/jal.syntax | 240 |
1 files changed, 240 insertions, 0 deletions
diff --git a/misc/syntax/jal.syntax b/misc/syntax/jal.syntax new file mode 100644 index 0000000..100644f --- /dev/null +++ b/misc/syntax/jal.syntax @@ -0,0 +1,240 @@ +# +# Syntax rules for the JAL programming language. +# + +caseinsensitive + +context default + + #========================= + # Variable types + # + keyword whole bit blue white + keyword whole byte blue white + keyword whole sbyte blue white + keyword whole word blue white + keyword whole sword blue white + keyword whole dword blue white + keyword whole sdword blue white + + #========================= + # Predefined constants + # + keyword whole false black green + keyword whole true black green + keyword whole off black green + keyword whole on black green + keyword whole low black green + keyword whole high black green + + #========================= + # Keywords + # + keyword whole alias yellow + keyword whole at yellow + keyword whole begin yellow + keyword whole const yellow + keyword whole count yellow + keyword whole defined yellow + keyword whole end yellow + keyword whole exit yellow + keyword whole function yellow + keyword whole get yellow + keyword whole in yellow + keyword whole is yellow + keyword whole local yellow + keyword whole of yellow + keyword whole out yellow + keyword whole put yellow + keyword whole procedure yellow + keyword whole record yellow + keyword whole repeat yellow + keyword whole return yellow + keyword whole then yellow + keyword whole until yellow + keyword whole var yellow + + keyword whole volatile blue white + + keyword whole asm brightred + keyword whole assembler brightred + keyword whole assert brightred + keyword whole include 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\]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\]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\]yes 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\]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\]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\]eedata 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\]frame 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\]iddata 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\]normal 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\]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\]page 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\]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\]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\]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\]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\]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\]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\]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\]yes 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\]speed 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\]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\]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_def 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\]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\]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\]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\]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\]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\]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\]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\]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\]yes brightred + + keyword whole block brightcyan + keyword whole case brightcyan + keyword whole else brightcyan + keyword whole elsif brightcyan + keyword whole for brightcyan + keyword whole forever brightcyan + keyword whole if brightcyan + keyword whole loop brightcyan + keyword whole otherwise brightcyan + keyword whole start brightcyan + keyword whole suspend brightcyan + keyword whole using brightcyan + keyword whole while brightcyan + + keyword whole _debug yellow + keyword whole _error yellow + keyword whole _warn yellow + + keyword whole _code_size brightred + keyword whole _fuses brightred + keyword whole _fuses_base brightred + keyword whole target_chip brightred + keyword whole target_cpu 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 |