212 lines
2.9 KiB
Plaintext
212 lines
2.9 KiB
Plaintext
|
# JOE syntax highlight file for VHDL
|
||
|
|
||
|
# Define colors
|
||
|
|
||
|
=Idle
|
||
|
=Comment green
|
||
|
=Constant cyan
|
||
|
=Escape bold cyan
|
||
|
=Keyword bold
|
||
|
=Operator bold
|
||
|
|
||
|
# All following states are for when we're not in a preprocessor line
|
||
|
|
||
|
:idle Idle
|
||
|
* idle
|
||
|
"-" maybe_comment
|
||
|
"'" char recolor=-1
|
||
|
"\"" string recolor=-1
|
||
|
"0-9" first_digit recolor=-1
|
||
|
"." maybe_float
|
||
|
"\"" string recolor=-1
|
||
|
"Bb" maybe_binary buffer
|
||
|
"Oo" maybe_octal buffer
|
||
|
"Xx" maybe_hex buffer
|
||
|
"ac-np-wyzAC-NP-WYZ" ident buffer
|
||
|
|
||
|
:maybe_comment Idle
|
||
|
* idle noeat
|
||
|
"-" comment recolor=-2
|
||
|
|
||
|
:comment Comment
|
||
|
* comment
|
||
|
"\n" idle
|
||
|
|
||
|
|
||
|
# Character constant
|
||
|
|
||
|
:char Constant
|
||
|
* char
|
||
|
"'" idle
|
||
|
|
||
|
# Strings
|
||
|
|
||
|
:maybe_binary Idle
|
||
|
* ident noeat
|
||
|
"\"" string recolor=-2
|
||
|
|
||
|
:maybe_octal Idle
|
||
|
* ident noeat
|
||
|
"\"" string recolor=-2
|
||
|
|
||
|
:maybe_hex Idle
|
||
|
* ident noeat
|
||
|
"\"" string recolor=-2
|
||
|
|
||
|
:string Constant
|
||
|
* string
|
||
|
"\n" idle
|
||
|
"\"" idle
|
||
|
"\\" string_escape recolor=-1
|
||
|
|
||
|
:string_escape Escape
|
||
|
* string
|
||
|
"\n" string recolor=-2
|
||
|
|
||
|
# Integer constants
|
||
|
|
||
|
:first_digit Constant
|
||
|
* idle noeat
|
||
|
"." float
|
||
|
"_" first_digit
|
||
|
"0-9" first_digit
|
||
|
|
||
|
# Floating point
|
||
|
|
||
|
:maybe_float Constant
|
||
|
* idle recolor=-2 noeat
|
||
|
"0-9" float recolor=-2
|
||
|
|
||
|
:float Constant
|
||
|
* idle noeat
|
||
|
"eE" epart
|
||
|
"0-9" float
|
||
|
|
||
|
:epart Constant
|
||
|
* idle noeat
|
||
|
"0-9+\-" enum
|
||
|
|
||
|
:enum Constant
|
||
|
* idle noeat
|
||
|
"0-9" enum
|
||
|
|
||
|
# Identifiers
|
||
|
|
||
|
:ident Idle
|
||
|
* quote noeat istrings
|
||
|
"abs" operator
|
||
|
"access" kw
|
||
|
"after" kw
|
||
|
"alias" kw
|
||
|
"all" kw
|
||
|
"and" operator
|
||
|
"architecture" kw
|
||
|
"array" kw
|
||
|
"assert" kw
|
||
|
"attribute" kw
|
||
|
"begin" kw
|
||
|
"block" kw
|
||
|
"body" kw
|
||
|
"buffer" kw
|
||
|
"bus" kw
|
||
|
"case" kw
|
||
|
"component" kw
|
||
|
"configuration" kw
|
||
|
"constant" kw
|
||
|
"disconnect" kw
|
||
|
"downto" kw
|
||
|
"else" kw
|
||
|
"elsif" kw
|
||
|
"end" kw
|
||
|
"entity" kw
|
||
|
"exit" kw
|
||
|
"file" kw
|
||
|
"for" kw
|
||
|
"function" kw
|
||
|
"generate" kw
|
||
|
"generic" kw
|
||
|
"group" kw
|
||
|
"guarded" kw
|
||
|
"if" kw
|
||
|
"impure" kw
|
||
|
"in" kw
|
||
|
"inertial" kw
|
||
|
"inout" kw
|
||
|
"is" kw
|
||
|
"label" kw
|
||
|
"library" kw
|
||
|
"linkage" kw
|
||
|
"literal" kw
|
||
|
"loop" kw
|
||
|
"map" kw
|
||
|
"mod" operator
|
||
|
"nand" operator
|
||
|
"new" kw
|
||
|
"next" kw
|
||
|
"nor" operator
|
||
|
"not" operator
|
||
|
"null" kw
|
||
|
"of" kw
|
||
|
"on" kw
|
||
|
"open" kw
|
||
|
"or" operator
|
||
|
"others" kw
|
||
|
"out" kw
|
||
|
"package" kw
|
||
|
"port" kw
|
||
|
"postponed" kw
|
||
|
"procedure" kw
|
||
|
"process" kw
|
||
|
"process" kw
|
||
|
"pure" kw
|
||
|
"range" kw
|
||
|
"record" kw
|
||
|
"register" kw
|
||
|
"reject" kw
|
||
|
"rem" operator
|
||
|
"report" kw
|
||
|
"return" kw
|
||
|
"rol" operator
|
||
|
"ror" operator
|
||
|
"select" kw
|
||
|
"severity" kw
|
||
|
"signal" kw
|
||
|
"sla" operator
|
||
|
"sll" operator
|
||
|
"sra" operator
|
||
|
"srl" operator
|
||
|
"subtype" kw
|
||
|
"then" kw
|
||
|
"to" kw
|
||
|
"transport" kw
|
||
|
"type" kw
|
||
|
"unaffected" kw
|
||
|
"units" kw
|
||
|
"until" kw
|
||
|
"use" kw
|
||
|
"variable" kw
|
||
|
"wait" kw
|
||
|
"when" kw
|
||
|
"while" kw
|
||
|
"with" kw
|
||
|
"xnor" operator
|
||
|
"xor" operator
|
||
|
done
|
||
|
"a-zA-Z0-9_" ident
|
||
|
|
||
|
:operator Operator
|
||
|
* idle noeat
|
||
|
|
||
|
:kw Keyword
|
||
|
* idle noeat
|
||
|
|
||
|
# identifiers separated with quote '
|
||
|
|
||
|
:quote Idle
|
||
|
* idle noeat
|
||
|
"'" quote_word
|
||
|
|
||
|
:quote_word Idle
|
||
|
* idle noeat
|
||
|
"a-zA-Z" ident buffer
|