1(function(a){if(typeof exports=="object"&&typeof module=="object")a(require("../../lib/codemirror"));else if(typeof define=="function"&&define.amd)define(["../../lib/codemirror"],a);else a(CodeMirror)})(function(a){"use strict";function b(a){var b={},c=a.split(",");for(var d=0;d<c.length;++d){var e=c[d].toUpperCase();var f=c[d].charAt(0).toUpperCase()+c[d].slice(1);b[c[d]]=true;b[e]=true;b[f]=true}return b}function c(a){a.eatWhile(/[\w\$_]/);return"meta"}a.defineMode("vhdl",function(a,d){var e=a.indentUnit,f=d.atoms||b("null"),g=d.hooks||{"`":c,$:c},h=d.multiLineStrings;var i=b("abs,access,after,alias,all,and,architecture,array,assert,attribute,begin,block,"+"body,buffer,bus,case,component,configuration,constant,disconnect,downto,else,elsif,end,end block,end case,"+"end component,end for,end generate,end if,end loop,end process,end record,end units,entity,exit,file,for,"+"function,generate,generic,generic map,group,guarded,if,impure,in,inertial,inout,is,label,library,linkage,"+"literal,loop,map,mod,nand,new,next,nor,null,of,on,open,or,others,out,package,package body,port,port map,"+"postponed,procedure,process,pure,range,record,register,reject,rem,report,return,rol,ror,select,severity,signal,"+"sla,sll,sra,srl,subtype,then,to,transport,type,unaffected,units,until,use,variable,wait,when,while,with,xnor,xor");var j=b("architecture,entity,begin,case,port,else,elsif,end,for,function,if");var k=/[&|~><!\)\(*#%@+\/=?\:;}{,\.\^\-\[\]]/;var l;function m(a,b){var c=a.next();if(g[c]){var d=g[c](a,b);if(d!==false)return d}if(c=='"'){b.tokenize=o(c);return b.tokenize(a,b)}if(c=="'"){b.tokenize=n(c);return b.tokenize(a,b)}if(/[\[\]{}\(\),;\:\.]/.test(c)){l=c;return null}if(/[\d']/.test(c)){a.eatWhile(/[\w\.']/);return"number"}if(c=="-"){if(a.eat("-")){a.skipToEnd();return"comment"}}if(k.test(c)){a.eatWhile(k);return"operator"}a.eatWhile(/[\w\$_]/);var e=a.current();if(i.propertyIsEnumerable(e.toLowerCase())){if(j.propertyIsEnumerable(e))l="newstatement";return"keyword"}if(f.propertyIsEnumerable(e))return"atom";return"variable"}function n(a){return function(b,c){var d=false,e,f=false;while((e=b.next())!=null){if(e==a&&!d){f=true;break}d=!d&&e=="--"}if(f||!(d||h))c.tokenize=m;return"string"}}function o(a){return function(b,c){var d=false,e,f=false;while((e=b.next())!=null){if(e==a&&!d){f=true;break}d=!d&&e=="--"}if(f||!(d||h))c.tokenize=m;return"string-2"}}function p(a,b,c,d,e){this.indented=a;this.column=b;this.type=c;this.align=d;this.prev=e}function q(a,b,c){return a.context=new p(a.indented,b,c,null,a.context)}function r(a){var b=a.context.type;if(b==")"||b=="]"||b=="}")a.indented=a.context.indented;return a.context=a.context.prev}return{startState:function(a){return{tokenize:null,context:new p((a||0)-e,0,"top",false),indented:0,startOfLine:true}},token:function(a,b){var c=b.context;if(a.sol()){if(c.align==null)c.align=false;b.indented=a.indentation();b.startOfLine=true}if(a.eatSpace())return null;l=null;var d=(b.tokenize||m)(a,b);if(d=="comment"||d=="meta")return d;if(c.align==null)c.align=true;if((l==";"||l==":")&&c.type=="statement")r(b);else if(l=="{")q(b,a.column(),"}");else if(l=="[")q(b,a.column(),"]");else if(l=="(")q(b,a.column(),")");else if(l=="}"){while(c.type=="statement")c=r(b);if(c.type=="}")c=r(b);while(c.type=="statement")c=r(b)}else if(l==c.type)r(b);else if(c.type=="}"||c.type=="top"||c.type=="statement"&&l=="newstatement")q(b,a.column(),"statement");b.startOfLine=false;return d},indent:function(a,b){if(a.tokenize!=m&&a.tokenize!=null)return 0;var c=b&&b.charAt(0),d=a.context,f=c==d.type;if(d.type=="statement")return d.indented+(c=="{"?0:e);else if(d.align)return d.column+(f?0:1);else return d.indented+(f?0:e)},electricChars:"{}"}});a.defineMIME("text/x-vhdl","vhdl")});
2//# sourceMappingURL=vhdl.min.js.map