summaryrefslogtreecommitdiffstats
path: root/misc/syntax/jal.syntax
diff options
context:
space:
mode:
Diffstat (limited to 'misc/syntax/jal.syntax')
-rw-r--r--misc/syntax/jal.syntax240
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