KXStudio Website https://kx.studio/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

145 lines
5.1KB

  1. <?php
  2. /*************************************************************************************
  3. * vhdl.php
  4. * --------
  5. * Author: Alexander 'E-Razor' Krause (admin@erazor-zone.de)
  6. * Copyright: (c) 2005 Alexander Krause
  7. * Release Version: 1.0.8.10
  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. $language_data = array (
  43. 'LANG_NAME' => 'VHDL',
  44. 'COMMENT_SINGLE' => array(1 => '--'),
  45. 'COMMENT_MULTI' => array('%' => '%'),
  46. 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
  47. 'QUOTEMARKS' => array('"'),
  48. 'ESCAPE_CHAR' => '',
  49. 'KEYWORDS' => array(
  50. /*keywords*/
  51. 1 => array(
  52. 'access','after','alias','all','assert','attribute','architecture','begin',
  53. 'block','body','buffer','bus','case','component','configuration','constant',
  54. 'disconnect','downto','else','elsif','end','entity','exit','file','for',
  55. 'function','generate','generic','group','guarded','if','impure','in',
  56. 'inertial','inout','is','label','library','linkage','literal','loop',
  57. 'map','new','next','null','of','on','open','others','out','package',
  58. 'port','postponed','procedure','process','pure','range','record','register',
  59. 'reject','report','return','select','severity','signal','shared','subtype',
  60. 'then','to','transport','type','unaffected','units','until','use','variable',
  61. 'wait','when','while','with','note','warning','error','failure','and',
  62. 'or','xor','not','nor','used','memory','segments','dff','dffe','help_id',
  63. 'mod','info','latch','rising_edge','falling_edge'
  64. ),
  65. /*types*/
  66. 2 => array(
  67. 'bit','bit_vector','character','boolean','integer','real','time','string',
  68. 'severity_level','positive','natural','signed','unsigned','line','text',
  69. 'std_logic','std_logic_vector','std_ulogic','std_ulogic_vector','qsim_state',
  70. 'qsim_state_vector','qsim_12state','qsim_12state_vector','qsim_strength',
  71. 'mux_bit','mux_vector','reg_bit','reg_vector','wor_bit','wor_vector',
  72. 'work','ieee','std_logic_signed','std_logic_1164','std_logic_arith',
  73. 'numeric_std'
  74. ),
  75. /*operators*/
  76. ),
  77. 'SYMBOLS' => array(
  78. '[', ']', '(', ')',
  79. ';',':',
  80. '<','>','=','<=',':=','=>','=='
  81. ),
  82. 'CASE_SENSITIVE' => array(
  83. GESHI_COMMENTS => false,
  84. 1 => false,
  85. 2 => false
  86. ),
  87. 'STYLES' => array(
  88. 'KEYWORDS' => array(
  89. 1 => 'color: #000080; font-weight: bold;',
  90. 2 => 'color: #0000ff;'
  91. ),
  92. 'COMMENTS' => array(
  93. 1 => 'color: #008000; font-style: italic;',
  94. 'MULTI' => 'color: #008000; font-style: italic;'
  95. ),
  96. 'ESCAPE_CHAR' => array(
  97. 0 => 'color: #000099; font-weight: bold;'
  98. ),
  99. 'BRACKETS' => array(
  100. 0 => 'color: #000066;'
  101. ),
  102. 'STRINGS' => array(
  103. 0 => 'color: #7f007f;'
  104. ),
  105. 'NUMBERS' => array(
  106. 0 => 'color: #ff0000;'
  107. ),
  108. 'METHODS' => array(
  109. ),
  110. 'SYMBOLS' => array(
  111. 0 => 'color: #000066;'
  112. ),
  113. 'REGEXPS' => array(
  114. 0 => 'color: #ff0000;',
  115. 1 => 'color: #ff0000;'
  116. ),
  117. 'SCRIPT' => array(
  118. )
  119. ),
  120. 'URLS' => array(
  121. 1 => '',
  122. 2 => ''
  123. ),
  124. 'OOLANG' => false,
  125. 'OBJECT_SPLITTERS' => array(
  126. ),
  127. 'REGEXPS' => array(
  128. //Hex numbers and scientific notation for numbers
  129. 0 => '(\b0x[0-9a-fA-F]+|\b\d[0-9a-fA-F]+[hH])|'.
  130. '(\b\d+?(\.\d+?)?E[+\-]?\d+)|(\bns)|'.
  131. "('[0-9a-zA-Z]+(?!'))",
  132. //Number characters?
  133. 1 => "\b(''\d'')"
  134. ),
  135. 'STRICT_MODE_APPLIES' => GESHI_NEVER,
  136. 'SCRIPT_DELIMITERS' => array(
  137. ),
  138. 'HIGHLIGHT_STRICT_BLOCK' => array(
  139. )
  140. );
  141. ?>