openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

vhdl.min.js (3700B)


      1 (function(e){if(typeof exports=="object"&&typeof module=="object")e(require("../../lib/codemirror"));else if(typeof define=="function"&&define.amd)define(["../../lib/codemirror"],e);else e(CodeMirror)})(function(e){"use strict";function t(e){var r={},n=e.split(",");for(var t=0;t<n.length;++t){var i=n[t].toUpperCase(),o=n[t].charAt(0).toUpperCase()+n[t].slice(1);r[n[t]]=!0;r[i]=!0;r[o]=!0};return r};function n(e){e.eatWhile(/[\w\$_]/);return"meta"};e.defineMode("vhdl",function(e,i){var u=e.indentUnit,h=i.atoms||t("null"),f=i.hooks||{"`":n,"$":n},c=i.multiLineStrings;var p=t("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"),m=t("architecture,entity,begin,case,port,else,elsif,end,for,function,if"),s=/[&|~><!\)\(*#%@+\/=?\:;}{,\.\^\-\[\]]/,r;function a(e,t){var n=e.next();if(f[n]){var o=f[n](e,t);if(o!==!1)return o};if(n=="\""){t.tokenize=b(n);return t.tokenize(e,t)};if(n=="'"){t.tokenize=y(n);return t.tokenize(e,t)};if(/[\[\]{}\(\),;\:\.]/.test(n)){r=n;return null};if(/[\d']/.test(n)){e.eatWhile(/[\w\.']/);return"number"};if(n=="-"){if(e.eat("-")){e.skipToEnd();return"comment"}};if(s.test(n)){e.eatWhile(s);return"operator"};e.eatWhile(/[\w\$_]/);var i=e.current();if(p.propertyIsEnumerable(i.toLowerCase())){if(m.propertyIsEnumerable(i))r="newstatement";return"keyword"};if(h.propertyIsEnumerable(i))return"atom";return"variable"};function y(e){return function(t,n){var r=!1,i,o=!1;while((i=t.next())!=null){if(i==e&&!r){o=!0;break};r=!r&&i=="--"};if(o||!(r||c))n.tokenize=a;return"string"}};function b(e){return function(t,n){var r=!1,i,o=!1;while((i=t.next())!=null){if(i==e&&!r){o=!0;break};r=!r&&i=="--"};if(o||!(r||c))n.tokenize=a;return"string-2"}};function d(e,t,n,r,i){this.indented=e;this.column=t;this.type=n;this.align=r;this.prev=i};function l(e,t,n){return e.context=new d(e.indented,t,n,null,e.context)};function o(e){var t=e.context.type;if(t==")"||t=="]"||t=="}")e.indented=e.context.indented;return e.context=e.context.prev};return{startState:function(e){return{tokenize:null,context:new d((e||0)-u,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var n=t.context;if(e.sol()){if(n.align==null)n.align=!1;t.indented=e.indentation();t.startOfLine=!0};if(e.eatSpace())return null;r=null;var i=(t.tokenize||a)(e,t);if(i=="comment"||i=="meta")return i;if(n.align==null)n.align=!0;if((r==";"||r==":")&&n.type=="statement")o(t);else if(r=="{")l(t,e.column(),"}");else if(r=="[")l(t,e.column(),"]");else if(r=="(")l(t,e.column(),")");else if(r=="}"){while(n.type=="statement")n=o(t);if(n.type=="}")n=o(t);while(n.type=="statement")n=o(t)}
      2 else if(r==n.type)o(t);else if(n.type=="}"||n.type=="top"||(n.type=="statement"&&r=="newstatement"))l(t,e.column(),"statement");t.startOfLine=!1;return i},indent:function(e,t){if(e.tokenize!=a&&e.tokenize!=null)return 0;var r=t&&t.charAt(0),n=e.context,i=r==n.type;if(n.type=="statement")return n.indented+(r=="{"?0:u);else if(n.align)return n.column+(i?0:1);else return n.indented+(i?0:u)},electricChars:"{}"}});e.defineMIME("text/x-vhdl","vhdl")});