vhdl.jsf (3138B)
1 # JOE syntax highlight file for VHDL 2 3 # Define colors 4 5 =Idle 6 =Ident 7 =Comment 8 =Constant 9 =Number +Constant 10 =String +Constant 11 =Character +String 12 =Escape 13 =StringEscape +Escape +String 14 =CharacterEscape +StringEscape 15 =Keyword 16 =Operator +Keyword 17 18 # All following states are for when we're not in a preprocessor line 19 20 :idle Idle 21 * idle 22 "-" maybe_comment 23 "'" char recolor=-1 24 "\"" string recolor=-1 25 "0-9" first_digit recolor=-1 26 "." maybe_float 27 "\"" string recolor=-1 28 "Bb" maybe_binary buffer 29 "Oo" maybe_octal buffer 30 "Xx" maybe_hex buffer 31 "ac-np-wyzAC-NP-WYZ" ident buffer 32 33 :maybe_comment Idle 34 * idle noeat 35 "-" comment recolor=-2 36 37 :comment Comment 38 * comment 39 "BFHNTX" comment noeat call=comment_todo.comment_todo() 40 "\n" idle 41 42 43 # Character constant 44 45 :char Character 46 * char 47 "'" idle 48 49 # Strings 50 51 :maybe_binary Idle 52 * ident noeat 53 "\"" string recolor=-2 54 55 :maybe_octal Idle 56 * ident noeat 57 "\"" string recolor=-2 58 59 :maybe_hex Idle 60 * ident noeat 61 "\"" string recolor=-2 62 63 :string String string 64 * string 65 "\n" idle 66 "\"" idle 67 "\\" string_escape recolor=-1 68 69 :string_escape StringEscape string 70 * string 71 "\n" string recolor=-2 72 73 # Integer constants 74 75 :first_digit Number 76 * idle noeat 77 "." float 78 "_" first_digit 79 "0-9" first_digit 80 81 # Floating point 82 83 :maybe_float Number 84 * idle recolor=-2 noeat 85 "0-9" float recolor=-2 86 87 :float Number 88 * idle noeat 89 "eE" epart 90 "0-9" float 91 92 :epart Number 93 * idle noeat 94 "0-9+\-" enum 95 96 :enum Number 97 * idle noeat 98 "0-9" enum 99 100 # Identifiers 101 102 :ident Ident 103 * quote noeat istrings 104 "abs" operator 105 "access" kw 106 "after" kw 107 "alias" kw 108 "all" kw 109 "and" operator 110 "architecture" kw 111 "array" kw 112 "assert" kw 113 "attribute" kw 114 "begin" kw 115 "block" kw 116 "body" kw 117 "buffer" kw 118 "bus" kw 119 "case" kw 120 "component" kw 121 "configuration" kw 122 "constant" kw 123 "disconnect" kw 124 "downto" kw 125 "else" kw 126 "elsif" kw 127 "end" kw 128 "entity" kw 129 "exit" kw 130 "file" kw 131 "for" kw 132 "function" kw 133 "generate" kw 134 "generic" kw 135 "group" kw 136 "guarded" kw 137 "if" kw 138 "impure" kw 139 "in" kw 140 "inertial" kw 141 "inout" kw 142 "is" kw 143 "label" kw 144 "library" kw 145 "linkage" kw 146 "literal" kw 147 "loop" kw 148 "map" kw 149 "mod" operator 150 "nand" operator 151 "new" kw 152 "next" kw 153 "nor" operator 154 "not" operator 155 "null" kw 156 "of" kw 157 "on" kw 158 "open" kw 159 "or" operator 160 "others" kw 161 "out" kw 162 "package" kw 163 "port" kw 164 "postponed" kw 165 "procedure" kw 166 "process" kw 167 "process" kw 168 "pure" kw 169 "range" kw 170 "record" kw 171 "register" kw 172 "reject" kw 173 "rem" operator 174 "report" kw 175 "return" kw 176 "rol" operator 177 "ror" operator 178 "select" kw 179 "severity" kw 180 "shared" kw 181 "signal" kw 182 "sla" operator 183 "sll" operator 184 "sra" operator 185 "srl" operator 186 "subtype" kw 187 "then" kw 188 "to" kw 189 "transport" kw 190 "type" kw 191 "unaffected" kw 192 "units" kw 193 "until" kw 194 "use" kw 195 "variable" kw 196 "wait" kw 197 "when" kw 198 "while" kw 199 "with" kw 200 "xnor" operator 201 "xor" operator 202 done 203 "a-zA-Z0-9_" ident 204 205 :operator Operator 206 * idle noeat 207 208 :kw Keyword 209 * idle noeat 210 211 # identifiers separated with quote ' 212 213 :quote Idle 214 * idle noeat 215 "'" quote_word 216 217 :quote_word Idle 218 * idle noeat 219 "a-zA-Z" ident buffer