1 <?php 2 /************************************************************************************* 3 * vhdl.php 4 * -------- 5 * Author: Alexander 'E-Razor' Krause (admin (at) erazor-zone.de) 6 * Copyright: (c) 2005 Alexander Krause 7 * Release Version: 1.0.8.3 8 * Date Started: 2005/06/15 9 * 10 * VHDL (VHSICADL, very high speed integrated circuit HDL) language file for GeSHi. 11 * 12 * CHANGES 13 * ------- 14 * 2008/05/23 (1.0.7.22) 15 * - Added description of extra language features (SF#1970248) 16 * - Optimized regexp group 0 somewhat 17 * 2006/06/15 (1.0.0) 18 * - First Release 19 * 20 * TODO 21 * ---- 22 * 23 ************************************************************************************* 24 * 25 * This file is part of GeSHi. 26 * 27 * GeSHi is free software; you can redistribute it and/or modify 28 * it under the terms of the GNU General Public License as published by 29 * the Free Software Foundation; either version 2 of the License, or 30 * (at your option) any later version. 31 * 32 * GeSHi is distributed in the hope that it will be useful, 33 * but WITHOUT ANY WARRANTY; without even the implied warranty of 34 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 35 * GNU General Public License for more details. 36 * 37 * You should have received a copy of the GNU General Public License 38 * along with GeSHi; if not, write to the Free Software 39 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 40 * 41 ************************************************************************************/ 42 43 $language_data = array ( 44 'LANG_NAME' => 'VHDL', 45 'COMMENT_SINGLE' => array(1 => '--'), 46 'COMMENT_MULTI' => array('%' => '%'), 47 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 48 'QUOTEMARKS' => array('"'), 49 'ESCAPE_CHAR' => '', 50 'KEYWORDS' => array( 51 /*keywords*/ 52 1 => array( 53 'access','after','alias','all','assert','attribute','architecture','begin', 54 'block','body','buffer','bus','case','component','configuration','constant', 55 'disconnect','downto','else','elsif','end','entity','exit','file','for', 56 'function','generate','generic','group','guarded','if','impure','in', 57 'inertial','inout','is','label','library','linkage','literal','loop', 58 'map','new','next','null','of','on','open','others','out','package', 59 'port','postponed','procedure','process','pure','range','record','register', 60 'reject','report','return','select','severity','signal','shared','subtype', 61 'then','to','transport','type','unaffected','units','until','use','variable', 62 'wait','when','while','with','note','warning','error','failure','and', 63 'or','xor','not','nor','used','memory','segments','dff','dffe','help_id', 64 'mod','info','latch','rising_edge','falling_edge' 65 ), 66 /*types*/ 67 2 => array( 68 'bit','bit_vector','character','boolean','integer','real','time','string', 69 'severity_level','positive','natural','signed','unsigned','line','text', 70 'std_logic','std_logic_vector','std_ulogic','std_ulogic_vector','qsim_state', 71 'qsim_state_vector','qsim_12state','qsim_12state_vector','qsim_strength', 72 'mux_bit','mux_vector','reg_bit','reg_vector','wor_bit','wor_vector', 73 'work','ieee','std_logic_signed','std_logic_1164','std_logic_arith', 74 'numeric_std' 75 76 ), 77 /*operators*/ 78 ), 79 'SYMBOLS' => array( 80 '[', ']', '(', ')', 81 ';',':', 82 '<','>','=','<=',':=','=>','==' 83 ), 84 'CASE_SENSITIVE' => array( 85 GESHI_COMMENTS => false, 86 1 => false, 87 2 => false 88 ), 89 'STYLES' => array( 90 'KEYWORDS' => array( 91 1 => 'color: #000080; font-weight: bold;', 92 2 => 'color: #0000ff;' 93 ), 94 'COMMENTS' => array( 95 1 => 'color: #008000; font-style: italic;', 96 'MULTI' => 'color: #008000; font-style: italic;' 97 ), 98 'ESCAPE_CHAR' => array( 99 0 => 'color: #000099; font-weight: bold;' 100 ), 101 'BRACKETS' => array( 102 0 => 'color: #000066;' 103 ), 104 'STRINGS' => array( 105 0 => 'color: #7f007f;' 106 ), 107 'NUMBERS' => array( 108 0 => 'color: #ff0000;' 109 ), 110 'METHODS' => array( 111 ), 112 'SYMBOLS' => array( 113 0 => 'color: #000066;' 114 ), 115 'REGEXPS' => array( 116 0 => 'color: #ff0000;', 117 1 => 'color: #ff0000;' 118 ), 119 'SCRIPT' => array( 120 ) 121 ), 122 'URLS' => array( 123 1 => '', 124 2 => '' 125 ), 126 'OOLANG' => false, 127 'OBJECT_SPLITTERS' => array( 128 ), 129 'REGEXPS' => array( 130 //Hex numbers and scientific notation for numbers 131 0 => '(\b0x[0-9a-fA-F]+|\b\d[0-9a-fA-F]+[hH])|'. 132 '(\b\d+?(\.\d+?)?E[+\-]?\d+)|(\bns)|'. 133 "('[0-9a-zA-Z]+(?!'))", 134 //Number characters? 135 1 => "\b(''\d'')" 136 ), 137 'STRICT_MODE_APPLIES' => GESHI_NEVER, 138 'SCRIPT_DELIMITERS' => array( 139 ), 140 'HIGHLIGHT_STRICT_BLOCK' => array( 141 ) 142 ); 143 144 ?> 145