prism-vhdl.js 1.3 KB

1234567891011121314151617181920212223242526
  1. Prism.languages.vhdl = {
  2. 'comment': /--.+/,
  3. // support for all logic vectors
  4. 'vhdl-vectors': {
  5. 'pattern': /\b[oxb]"[\da-f_]+"|"[01uxzwlh-]+"/i,
  6. 'alias': 'number'
  7. },
  8. // support for operator overloading included
  9. 'quoted-function': {
  10. pattern: /"\S+?"(?=\()/,
  11. alias: 'function'
  12. },
  13. 'string': /"(?:[^\\"\r\n]|\\(?:\r\n|[\s\S]))*"/,
  14. 'attribute': {
  15. pattern: /\b'\w+/,
  16. alias: 'attr-name'
  17. },
  18. // support for predefined attributes included
  19. 'keyword': /\b(?:access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|private|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|view|wait|when|while|with)\b/i,
  20. 'boolean': /\b(?:false|true)\b/i,
  21. 'function': /\w+(?=\()/,
  22. // decimal, based, physical, and exponential numbers supported
  23. 'number': /'[01uxzwlh-]'|\b(?:\d+#[\da-f_.]+#|\d[\d_.]*)(?:e[-+]?\d+)?/i,
  24. 'operator': /[<>]=?|:=|[-+*/&=]|\b(?:abs|and|mod|nand|nor|not|or|rem|rol|ror|sla|sll|sra|srl|xnor|xor)\b/i,
  25. 'punctuation': /[{}[\];(),.:]/
  26. };