1/** 2 * Name: vhdl 3 * Description: VHSIC Hardware Description Language (VHDL) 4 * Highlights keywords, comments and special vhdl 5 * constructs. Please send comments or suggestions. 6 * 7 * Author: Brian Silveira (brian@nortel.ca) 8 * 9 */ 10 11state vhdl extends HighlightEntry 12{ 13 /* Comments. */ 14 /--/ { 15 comment_face (true); 16 language_print ($0); 17 call (eat_one_line); 18 comment_face (false); 19 } 20 21 /* String constants. */ 22 /\"/ { 23 string_face (true); 24 language_print ($0); 25 call (c_string); 26 string_face (false); 27 } 28 29 /* Keywords. 30 (build-re '(abs access after alias all and architecture array 31 assert attribute begin begin block body body buffer bus case 32 component configuration configuration constant disconnect downto 33 else elsif end entity exit file for function function generate 34 generic guarded if in inout is label library linkage loop map 35 mod nand new next nor not null of on open or others out package 36 port procedure process range record register rem report return 37 reverse select severity signal subtype then to transport type 38 units until use variable wait when while with with xor) 39 t) 40 */ 41 /\b([aA]([bB][sS]|[cC][cC][eE][sS][sS]|[fF][tT][eE][rR]\ 42|[lL]([iI][aA][sS]|[lL])|[nN][dD]\ 43|[rR]([cC][hH][iI][tT][eE][cC][tT][uU][rR][eE]|[rR][aA][yY])\ 44|[sS][sS][eE][rR][tT]|[tT][tT][rR][iI][bB][uU][tT][eE])\ 45|[bB]([eE][gG][iI][nN]()|[lL][oO][cC][kK]|[oO][dD][yY]()\ 46|[uU]([fF][fF][eE][rR]|[sS]))\ 47|[cC]([aA][sS][eE]\ 48|[oO]([mM][pP][oO][nN][eE][nN][tT]\ 49|[nN]([fF][iI][gG][uU][rR][aA][tT][iI][oO][nN]()|[sS][tT][aA][nN][tT])))\ 50|[dD]([iI][sS][cC][oO][nN][nN][eE][cC][tT]|[oO][wW][nN][tT][oO])\ 51|[eE]([lL][sS]([eE]|[iI][fF])|[nN]([dD]|[tT][iI][tT][yY])|[xX][iI][tT])\ 52|[fF]([iI][lL][eE]|[oO][rR]|[uU][nN][cC][tT][iI][oO][nN]())\ 53|[gG]([eE][nN][eE][rR]([aA][tT][eE]|[iI][cC])|[uU][aA][rR][dD][eE][dD])\ 54|[iI]([fF]|[nN](|[oO][uU][tT])|[sS])\ 55|[lL]([aA][bB][eE][lL]|[iI]([bB][rR][aA][rR][yY]|[nN][kK][aA][gG][eE])\ 56|[oO][oO][pP])\ 57|[mM]([aA][pP]|[oO][dD])\ 58|[nN]([aA][nN][dD]|[eE]([wW]|[xX][tT])|[oO]([rR]|[tT])|[uU][lL][lL])\ 59|[oO]([fF]|[nN]|[pP][eE][nN]|[rR]|[tT][hH][eE][rR][sS]|[uU][tT])\ 60|[pP]([aA][cC][kK][aA][gG][eE]|[oO][rR][tT]\ 61|[rR][oO][cC][eE]([dD][uU][rR][eE]|[sS][sS]))\ 62|[rR]([aA][nN][gG][eE]\ 63|[eE]([cC][oO][rR][dD]|[gG][iI][sS][tT][eE][rR]|[mM]|[pP][oO][rR][tT]\ 64|[tT][uU][rR][nN]|[vV][eE][rR][sS][eE]))\ 65|[sS]([eE]([lL][eE][cC][tT]|[vV][eE][rR][iI][tT][yY])|[iI][gG][nN][aA][lL]\ 66|[uU][bB][tT][yY][pP][eE])\ 67|[tT]([hH][eE][nN]|[oO]|[rR][aA][nN][sS][pP][oO][rR][tT]|[yY][pP][eE])\ 68|[uU]([nN]([iI][tT][sS]|[tT][iI][lL])|[sS][eE])\ 69|[vV][aA][rR][iI][aA][bB][lL][eE]\ 70|[wW]([aA][iI][tT]|[hH]([eE][nN]|[iI][lL][eE])|[iI][tT][hH]())\ 71|[xX][oO][rR])\b/ { 72 keyword_face (true); 73 language_print ($0); 74 keyword_face (false); 75 } 76 77 /<=|=>/ { 78 reference_face (true); 79 language_print ($0); 80 reference_face(false); 81 } 82} 83 84 85/* 86Local variables: 87mode: c 88End: 89*/ 90