Commit 9fb1e8b74528901571d480641762cf4902bf6e4d

a-rey 2015-06-13T14:58:11

requested changes/optimizations

diff --git a/components/prism-vhdl.js b/components/prism-vhdl.js
index 41bff16..71bd533 100644
--- a/components/prism-vhdl.js
+++ b/components/prism-vhdl.js
@@ -1,14 +1,14 @@
 Prism.languages.vhdl = {
-	'comment': /(--[^\r\n]+)/,
+	'comment': /--.+/,
 	// support for all logic vectors
 	'vhdl-vectors': {
-		'pattern': /(\b[oOxXbB]"[\dA-Fa-f_]+"|"[UuXx01ZzWwLlHh-]+")/,
+		'pattern': /(\b[oxb]"[\da-f_]+"|"[01uxzwlh-]+")/i,
 		'alias': 'number'
 	},
-	'string': /(")(\\\n|\\?.)*?"/,
+	'string': /"(\\\n|\\?.)*?"/,
 	'constant': /\b(use|library)\b/i,
 	// support for predefined attributes included
-	'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|procedure|process|pure|range|record|register|reject|report|return|select|severity|signal|shared|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with|'base|'left|'right|'high|'low|'ascending|'image|'value|'pos|'val|'succ|'pred|'leftof|'rightof|'left|'left|'right|'right|'high|'high|'low|'low|'range|'range|'reverse_range|'reverse_range|'length|'length|'ascending|'ascending|'delayed|'stable|'stable|'quiet|'quiet|'transaction|'event|'active|'last_event|'last_active|'last_value|'driving|'driving_value|'simple_name|'instance_name|'path_name)\b/i,
+	'keyword': /\b('active|'ascending|'base|'delayed|'driving|'driving_value|'event|'high|'image|'instance_name|'last_active|'last_event|'last_value|'left|'leftof|'length|'low|'path_name|'pos|'pred|'quiet|'range|'reverse_range|'right|'rightof|'simple_name|'stable|'succ|'transaction|'val|'value|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|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with)\b/i,
 	'boolean': /\b(true|false)\b/i,
 	'function': {
 		// support for operator overloading included
@@ -18,7 +18,7 @@ Prism.languages.vhdl = {
 		}
 	},
 	// decimal, based, physical, and exponential numbers supported
-	'number': /('[UuXx01ZzWwLlHh-]'|\b\d+([_.]+)?(#[\dA-Fa-f_.]+#)?([eE][-+]?\d+)?)/,
-	'operator': /[-+]{1}|<=?|>=?|=|:=|&|\*|\/|\b(abs|not|mod|rem|sll|srl|sla|sra|rol|ror|and|or|nand|xnor|xor|nor)\b/i,
+	'number': /'[01uxzwlh-]'|\b\d+[_.]*(#[\da-f_.]+#)?([e][-+]?\d+)?/i,
+	'operator': /<=?|>=?|:=|[-+*/&=]|\b(abs|not|mod|rem|sll|srl|sla|sra|rol|ror|and|or|nand|xnor|xor|nor)\b/i,
 	'punctuation': /[{}[\];(),.:]/
 };