jal.syntax 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. #
  2. # Syntax rules for the JAL programming language.
  3. #
  4. caseinsensitive
  5. context default
  6. #=========================
  7. # Variable types
  8. #
  9. keyword whole bit blue white
  10. keyword whole byte blue white
  11. keyword whole sbyte blue white
  12. keyword whole word blue white
  13. keyword whole sword blue white
  14. keyword whole dword blue white
  15. keyword whole sdword blue white
  16. #=========================
  17. # Predefined constants
  18. #
  19. keyword whole false black green
  20. keyword whole true black green
  21. keyword whole off black green
  22. keyword whole on black green
  23. keyword whole low black green
  24. keyword whole high black green
  25. #=========================
  26. # Keywords
  27. #
  28. keyword whole alias yellow
  29. keyword whole at yellow
  30. keyword whole begin yellow
  31. keyword whole const yellow
  32. keyword whole count yellow
  33. keyword whole defined yellow
  34. keyword whole end yellow
  35. keyword whole exit yellow
  36. keyword whole function yellow
  37. keyword whole get yellow
  38. keyword whole in yellow
  39. keyword whole is yellow
  40. keyword whole local yellow
  41. keyword whole of yellow
  42. keyword whole out yellow
  43. keyword whole put yellow
  44. keyword whole procedure yellow
  45. keyword whole record yellow
  46. keyword whole repeat yellow
  47. keyword whole return yellow
  48. keyword whole then yellow
  49. keyword whole until yellow
  50. keyword whole var yellow
  51. keyword whole volatile blue white
  52. keyword whole asm brightred
  53. keyword whole assembler brightred
  54. keyword whole assert brightred
  55. keyword whole include brightred
  56. keyword whole task brightred
  57. #=========================
  58. # Pragma keywords
  59. #
  60. keyword whole pragma\{\t\s\}\[\t\s\]bootloader\{\t\s\}\[\t\s\]bloader brightred
  61. keyword whole pragma\{\t\s\}\[\t\s\]bootloader\{\t\s\}\[\t\s\]long_start brightred
  62. keyword whole pragma\{\t\s\}\[\t\s\]bootloader\{\t\s\}\[\t\s\]loader18 brightred
  63. keyword whole pragma\{\t\s\}\[\t\s\]bootloader\{\t\s\}\[\t\s\]rickpic brightred
  64. keyword whole pragma\{\t\s\}\[\t\s\]clear\{\t\s\}\[\t\s\]no brightred
  65. keyword whole pragma\{\t\s\}\[\t\s\]clear\{\t\s\}\[\t\s\]yes brightred
  66. keyword whole pragma\{\t\s\}\[\t\s\]code brightred
  67. keyword whole pragma\{\t\s\}\[\t\s\]data brightred
  68. keyword whole pragma\{\t\s\}\[\t\s\]debug\{\t\s\}\[\t\s\]codegen\{\t\s\}\[\t\s\]no brightred
  69. keyword whole pragma\{\t\s\}\[\t\s\]debug\{\t\s\}\[\t\s\]codegen\{\t\s\}\[\t\s\]yes brightred
  70. keyword whole pragma\{\t\s\}\[\t\s\]debug\{\t\s\}\[\t\s\]pcode\{\t\s\}\[\t\s\]no brightred
  71. keyword whole pragma\{\t\s\}\[\t\s\]debug\{\t\s\}\[\t\s\]pcode\{\t\s\}\[\t\s\]yes brightred
  72. keyword whole pragma\{\t\s\}\[\t\s\]eedata brightred
  73. keyword whole pragma\{\t\s\}\[\t\s\]eeprom brightred
  74. keyword whole pragma\{\t\s\}\[\t\s\]error brightred
  75. keyword whole pragma\{\t\s\}\[\t\s\]frame brightred
  76. keyword whole pragma\{\t\s\}\[\t\s\]fuse_def brightred
  77. keyword whole pragma\{\t\s\}\[\t\s\]id brightred
  78. keyword whole pragma\{\t\s\}\[\t\s\]iddata brightred
  79. keyword whole pragma\{\t\s\}\[\t\s\]inline brightred
  80. keyword whole pragma\{\t\s\}\[\t\s\]interrupt\{\t\s\}\[\t\s\]fast brightred
  81. keyword whole pragma\{\t\s\}\[\t\s\]interrupt\{\t\s\}\[\t\s\]normal brightred
  82. keyword whole pragma\{\t\s\}\[\t\s\]interrupt\{\t\s\}\[\t\s\]raw brightred
  83. keyword whole pragma\{\t\s\}\[\t\s\]interrupt brightred
  84. keyword whole pragma\{\t\s\}\[\t\s\]jump_table brightred
  85. keyword whole pragma\{\t\s\}\[\t\s\]keep\{\t\s\}\[\t\s\]bank brightred
  86. keyword whole pragma\{\t\s\}\[\t\s\]keep\{\t\s\}\[\t\s\]page brightred
  87. keyword whole pragma\{\t\s\}\[\t\s\]keep brightred
  88. keyword whole pragma\{\t\s\}\[\t\s\]name brightred
  89. keyword whole pragma\{\t\s\}\[\t\s\]nostack brightred
  90. keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]expr_reduce\{\t\s\}\[\t\s\]no brightred
  91. keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]expr_reduce\{\t\s\}\[\t\s\]yes brightred
  92. keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]cexpr_reduce\{\t\s\}\[\t\s\]no brightred
  93. keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]cexpr_reduce\{\t\s\}\[\t\s\]yes brightred
  94. keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]const_detect\{\t\s\}\[\t\s\]no brightred
  95. keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]const_detect\{\t\s\}\[\t\s\]yes brightred
  96. keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]load_reduce\{\t\s\}\[\t\s\]no brightred
  97. keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]load_reduce\{\t\s\}\[\t\s\]yes brightred
  98. keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]temp_reduce\{\t\s\}\[\t\s\]no brightred
  99. keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]temp_reduce\{\t\s\}\[\t\s\]yes brightred
  100. keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]variable_frame\{\t\s\}\[\t\s\]no brightred
  101. keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]variable_frame\{\t\s\}\[\t\s\]yes brightred
  102. keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]variable_reduce\{\t\s\}\[\t\s\]no brightred
  103. keyword whole pragma\{\t\s\}\[\t\s\]opt\{\t\s\}\[\t\s\]variable_reduce\{\t\s\}\[\t\s\]yes brightred
  104. keyword whole pragma\{\t\s\}\[\t\s\]shared brightred
  105. keyword whole pragma\{\t\s\}\[\t\s\]size brightred
  106. keyword whole pragma\{\t\s\}\[\t\s\]speed brightred
  107. keyword whole pragma\{\t\s\}\[\t\s\]stack brightred
  108. keyword whole pragma\{\t\s\}\[\t\s\]target\{\t\s\}\[\t\s\]bank brightred
  109. keyword whole pragma\{\t\s\}\[\t\s\]target\{\t\s\}\[\t\s\]clock brightred
  110. keyword whole pragma\{\t\s\}\[\t\s\]target\{\t\s\}\[\t\s\]chip brightred
  111. keyword whole pragma\{\t\s\}\[\t\s\]target\{\t\s\}\[\t\s\]cpu brightred
  112. keyword whole pragma\{\t\s\}\[\t\s\]target\{\t\s\}\[\t\s\]fuses brightred
  113. keyword whole pragma\{\t\s\}\[\t\s\]target\{\t\s\}\[\t\s\]fuses_def brightred
  114. keyword whole pragma\{\t\s\}\[\t\s\]target\{\t\s\}\[\t\s\]page brightred
  115. keyword whole pragma\{\t\s\}\[\t\s\]target brightred
  116. keyword whole pragma\{\t\s\}\[\t\s\]task brightred
  117. keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]all\{\t\s\}\[\t\s\]no brightred
  118. keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]all\{\t\s\}\[\t\s\]yes brightred
  119. keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]backend\{\t\s\}\[\t\s\]no brightred
  120. keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]backend\{\t\s\}\[\t\s\]yes brightred
  121. keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]conversion\{\t\s\}\[\t\s\]no brightred
  122. keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]conversion\{\t\s\}\[\t\s\]yes brightred
  123. keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]directives\{\t\s\}\[\t\s\]no brightred
  124. keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]directives\{\t\s\}\[\t\s\]yes brightred
  125. keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]misc\{\t\s\}\[\t\s\]no brightred
  126. keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]misc\{\t\s\}\[\t\s\]yes brightred
  127. keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]range\{\t\s\}\[\t\s\]no brightred
  128. keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]range\{\t\s\}\[\t\s\]yes brightred
  129. keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]stack_overflow\{\t\s\}\[\t\s\]no brightred
  130. keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]stack_overflow\{\t\s\}\[\t\s\]yes brightred
  131. keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]truncate\{\t\s\}\[\t\s\]no brightred
  132. keyword whole pragma\{\t\s\}\[\t\s\]warn\{\t\s\}\[\t\s\]truncate\{\t\s\}\[\t\s\]yes brightred
  133. keyword whole block brightcyan
  134. keyword whole case brightcyan
  135. keyword whole else brightcyan
  136. keyword whole elsif brightcyan
  137. keyword whole for brightcyan
  138. keyword whole forever brightcyan
  139. keyword whole if brightcyan
  140. keyword whole loop brightcyan
  141. keyword whole otherwise brightcyan
  142. keyword whole start brightcyan
  143. keyword whole suspend brightcyan
  144. keyword whole using brightcyan
  145. keyword whole while brightcyan
  146. keyword whole _debug yellow
  147. keyword whole _error yellow
  148. keyword whole _warn yellow
  149. keyword whole _code_size brightred
  150. keyword whole _fuses brightred
  151. keyword whole _fuses_base brightred
  152. keyword whole target_chip brightred
  153. keyword whole target_cpu brightred
  154. keyword whole target_clock brightred
  155. keyword whole _usec_delay yellow
  156. wholechars 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_
  157. #=========================
  158. # Numbers
  159. #
  160. keyword whole 0b\{01_\}\[01_\] brightgreen
  161. keyword whole 0q\{0123456_\}\[0123456_\] brightgreen
  162. keyword whole \[-\]\{0123456789_\}\[0123456789_\] brightgreen
  163. keyword whole 0x\{0123456789ABCDEFabcdef_\}\[0123456789ABCDEFabcdef_\] brightgreen
  164. #=========================
  165. # Comments
  166. #
  167. keyword --*\n white magenta
  168. keyword ;*\n white magenta
  169. #=========================
  170. # Special symbols
  171. #
  172. keyword - yellow
  173. keyword \* yellow
  174. keyword / yellow
  175. keyword % yellow
  176. keyword \+ yellow
  177. keyword << yellow
  178. keyword >> yellow
  179. keyword ~ brightmagenta
  180. keyword !! brightmagenta
  181. keyword & brightmagenta
  182. keyword | brightmagenta
  183. keyword ^ brightmagenta
  184. keyword ' brightmagenta
  185. keyword : brightred
  186. keyword != brightred
  187. keyword == brightred
  188. keyword <= brightred
  189. keyword >= brightred
  190. keyword < brightred
  191. keyword > brightred
  192. keyword = yellow
  193. keyword ! brightmagenta
  194. #=========================
  195. # Separators
  196. #
  197. keyword ( brightcyan
  198. keyword ) brightcyan
  199. keyword [ brightcyan
  200. keyword ] brightcyan
  201. keyword { brightcyan
  202. keyword } brightcyan
  203. keyword , brightcyan
  204. keyword . brightcyan
  205. #=========================
  206. # Assembler lines
  207. #
  208. context exclusive asm\{\t\s\}\[\t\s\] \n blue cyan
  209. #=========================
  210. # Strings
  211. #
  212. context " " black green
  213. spellcheck
  214. keyword \\" red
  215. keyword \\\\ red
  216. keyword \\\{abfnrtv?\} red
  217. keyword \\0\{0123456789ABCDEFabcdef\}\{0123456789ABCDEFabcdef\}\{0123456789ABCDEFabcdef\} red
  218. keyword \\\x\{0123456789ABCDEFabcdef\}\{0123456789ABCDEFabcdef\} red