4gl.jsf.in (3456B)
1 # JOE syntax highlight file for Progress 4GL 2 # by Gediminas http://proc.w3.lt 3 # Version 1.04 4 5 # bold inverse blink dim underline italic 6 # white cyan magenta blue yellow green red black 7 # bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black 8 9 =Idle 10 =Comment green 11 =Constant cyan 12 =Type magenta 13 # conditional operators, blocks 14 =Condition bold 15 # buffer repositioning 16 =KeyDB bold green 17 # create, delete record 18 =CreateDel bold yellow 19 # preprocessor include, definition, reference 20 =Include yellow 21 =Preproc yellow 22 =PreRef 23 24 :idle Idle 25 * idle 26 "/" slash 27 "{" brace 28 "&" prep buffer 29 "a-zA-Z" ident buffer 30 "'" string recolor=-1 31 "\"" string2 recolor=-1 32 "0-9" number recolor=-1 33 "?" question recolor=-1 34 35 # Comments - 2 levels of nesting allowed 36 37 :slash Idle 38 * idle noeat 39 "*" comment recolor=-2 40 :comment Comment 41 * comment 42 "/" slash2 43 "*" maybe_end_comment 44 :maybe_end_comment Comment 45 * comment 46 "/" idle 47 "*" maybe_end_comment 48 49 :slash2 Idle 50 * comment noeat 51 "*" comment2 recolor=-2 52 :comment2 Comment 53 * comment2 54 "*" maybe_end_comment2 55 :maybe_end_comment2 Comment 56 * comment2 57 "/" comment 58 "*" maybe_end_comment2 59 60 # Preprocessor 61 # Allow preprocessor name reference inside include file reference: 62 # {include/trace {&FILE-NAME} {&LINE-NUMBER}} 63 64 :brace Include 65 * include noeat 66 "&" scoped recolor=-2 67 "}" idle 68 69 :include Include 70 * include recolor=-2 71 "{" brace2 72 "}" idle 73 74 :brace2 Include 75 * include2 noeat 76 "}" idle 77 78 :include2 Include 79 * include2 recolor=-2 80 "}" include 81 82 :scoped PreRef 83 * scoped 84 "}" idle 85 86 :prep Preproc 87 * idle noeat istrings 88 "&IF" predir 89 "&THEN" predir 90 "&ELSEIF" predir 91 "&ELSE" predir 92 "&ENDIF" predir 93 "&SCOPED-DEFINE" predir 94 "&SCOP" predir 95 "&GLOBAL-DEFINE" predir 96 "&GLOB" predir 97 "&MESSAGE" predir 98 "&UNDEFINE" predir 99 "&UNDEF" predir 100 done 101 "-a-zA-Z0-9_" prep 102 103 :predir Preproc 104 * idle noeat 105 106 107 # String constants, copied from pascal.jsf with " added 108 109 :string Constant 110 * string 111 "\n" idle 112 "'" maybe_end_string 113 114 :maybe_end_string Constant 115 * idle recolor=-1 noeat 116 "'" string 117 118 :string2 Constant 119 * string2 120 "\n" idle 121 "\"" maybe_end_string2 122 123 :maybe_end_string2 Constant 124 * idle recolor=-1 noeat 125 "\"" string2 126 127 # Numeric constant, same as pascal.jsf 128 129 :number Constant 130 * idle noeat 131 "0-9" number 132 "eE" epart 133 "." dot 134 135 :dot Constant 136 * idle noeat 137 "0-9" float 138 139 :float Constant 140 * idle noeat 141 "eE" epart 142 "0-9" float 143 144 :epart Constant 145 * idle noeat 146 "0-9+\-" enum 147 148 :enum Constant 149 * idle noeat 150 "0-9" enum 151 152 :question Constant 153 * idle noeat 154 155 # Keywords 156 # Available jumps: operator type kw kwdb credel func 157 158 :ident Idle 159 * idle noeat istrings 160 "assign" cond 161 "case" cond 162 "cha" type 163 "char" type 164 "character" type 165 "create" credel 166 "dat" type 167 "date" type 168 "dec" type 169 "decimal" type 170 "defined" predir 171 "delete" credel 172 "do" cond 173 "else" cond 174 "end" cond 175 "find" kwdb 176 "for" kwdb 177 "function" cond 178 "get" kwdb 179 "handle" type 180 "if" cond 181 "int" type 182 "integer" type 183 "leave" cond 184 "log" type 185 "logical" type 186 "memptr" type 187 "next" cond 188 "otherwise" cond 189 "param" cond 190 "parameter" cond 191 "procedure" cond 192 "raw" type 193 "rec" type 194 "repeat" cond 195 "reposition" kwdb 196 "return" cond 197 "rowid" type 198 "run" cond 199 "then" cond 200 "when" cond 201 "widget-handle" type 202 done 203 "-a-zA-Z0-9_" ident 204 205 :cond Condition 206 * idle noeat 207 208 :kwdb KeyDB 209 * idle noeat 210 211 :type Type 212 * idle noeat 213 214 :credel CreateDel 215 * idle noeat 216