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";a.defineMode("verilog",function(b,c){var d=b.indentUnit,e=c.statementIndentUnit||d,f=c.dontAlignCalls,g=c.noIndentKeywords||[],h=c.multiLineStrings,i=c.hooks||{};function j(a){var b={},c=a.split(" ");for(var d=0;d<c.length;++d)b[c[d]]=true;return b}var k=j("accept_on alias always always_comb always_ff always_latch and assert assign assume automatic before begin bind "+"bins binsof bit break buf bufif0 bufif1 byte case casex casez cell chandle checker class clocking cmos config "+"const constraint context continue cover covergroup coverpoint cross deassign default defparam design disable "+"dist do edge else end endcase endchecker endclass endclocking endconfig endfunction endgenerate endgroup "+"endinterface endmodule endpackage endprimitive endprogram endproperty endspecify endsequence endtable endtask "+"enum event eventually expect export extends extern final first_match for force foreach forever fork forkjoin "+"function generate genvar global highz0 highz1 if iff ifnone ignore_bins illegal_bins implements implies import "+"incdir include initial inout input inside instance int integer interconnect interface intersect join join_any "+"join_none large let liblist library local localparam logic longint macromodule matches medium modport module "+"nand negedge nettype new nexttime nmos nor noshowcancelled not notif0 notif1 null or output package packed "+"parameter pmos posedge primitive priority program property protected pull0 pull1 pulldown pullup "+"pulsestyle_ondetect pulsestyle_onevent pure rand randc randcase randsequence rcmos real realtime ref reg "+"reject_on release repeat restrict return rnmos rpmos rtran rtranif0 rtranif1 s_always s_eventually s_nexttime "+"s_until s_until_with scalared sequence shortint shortreal showcancelled signed small soft solve specify "+"specparam static string strong strong0 strong1 struct super supply0 supply1 sync_accept_on sync_reject_on "+"table tagged task this throughout time timeprecision timeunit tran tranif0 tranif1 tri tri0 tri1 triand trior "+"trireg type typedef union unique unique0 unsigned until until_with untyped use uwire var vectored virtual void "+"wait wait_order wand weak weak0 weak1 while wildcard wire with within wor xnor xor");var l=/[\+\-\*\/!~&|^%=?:]/;var m=/[\[\]{}()]/;var n=/\d[0-9_]*/;var o=/\d*\s*'s?d\s*\d[0-9_]*/i;var p=/\d*\s*'s?b\s*[xz01][xz01_]*/i;var q=/\d*\s*'s?o\s*[xz0-7][xz0-7_]*/i;var r=/\d*\s*'s?h\s*[0-9a-fxz?][0-9a-fxz?_]*/i;var s=/(\d[\d_]*(\.\d[\d_]*)?E-?[\d_]+)|(\d[\d_]*\.\d[\d_]*)/i;var t=/^((\w+)|[)}\]])/;var u=/[)}\]]/;var v;var w;var x=j("case checker class clocking config function generate interface module package "+"primitive program property specify sequence table task");var y={};for(var z in x){y[z]="end"+z}y["begin"]="end";y["casex"]="endcase";y["casez"]="endcase";y["do"]="while";y["fork"]="join;join_any;join_none";y["covergroup"]="endgroup";for(var A in g){var z=g[A];if(y[z]){y[z]=undefined}}var B=j("always always_comb always_ff always_latch assert assign assume else export for foreach forever if import initial repeat while");function C(a,b){var c=a.peek(),d;if(i[c]&&(d=i[c](a,b))!=false)return d;if(i.tokenBase&&(d=i.tokenBase(a,b))!=false)return d;if(/[,;:\.]/.test(c)){v=a.next();return null}if(m.test(c)){v=a.next();return"bracket"}if(c=="`"){a.next();if(a.eatWhile(/[\w\$_]/)){return"def"}else{return null}}if(c=="$"){a.next();if(a.eatWhile(/[\w\$_]/)){return"meta"}else{return null}}if(c=="#"){a.next();a.eatWhile(/[\d_.]/);return"def"}if(c=='"'){a.next();b.tokenize=D(c);return b.tokenize(a,b)}if(c=="/"){a.next();if(a.eat("*")){b.tokenize=E;return E(a,b)}if(a.eat("/")){a.skipToEnd();return"comment"}a.backUp(1)}if(a.match(s)||a.match(o)||a.match(p)||a.match(q)||a.match(r)||a.match(n)||a.match(s)){return"number"}if(a.eatWhile(l)){return"meta"}if(a.eatWhile(/[\w\$_]/)){var e=a.current();if(k[e]){if(y[e]){v="newblock"}if(B[e]){v="newstatement"}w=e;return"keyword"}return"variable"}a.next();return null}function D(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=C;return"string"}}function E(a,b){var c=false,d;while(d=a.next()){if(d=="/"&&c){b.tokenize=C;break}c=d=="*"}return"comment"}function F(a,b,c,d,e){this.indented=a;this.column=b;this.type=c;this.align=d;this.prev=e}function G(a,b,c){var d=a.indented;var e=new F(d,b,c,null,a.context);return a.context=e}function H(a){var b=a.context.type;if(b==")"||b=="]"||b=="}"){a.indented=a.context.indented}return a.context=a.context.prev}function I(a,b){if(a==b){return true}else{var c=b.split(";");for(var d in c){if(a==c[d]){return true}}return false}}function J(){var a=[];for(var b in y){if(y[b]){var c=y[b].split(";");for(var d in c){a.push(c[d])}}}var e=new RegExp("[{}()\\[\\]]|("+a.join("|")+")$");return e}return{electricInput:J(),startState:function(a){var b={tokenize:null,context:new F((a||0)-d,0,"top",false),indented:0,startOfLine:true};if(i.startState)i.startState(b);return b},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(i.token){var d=i.token(a,b);if(d!==undefined){return d}}if(a.eatSpace())return null;v=null;w=null;var d=(b.tokenize||C)(a,b);if(d=="comment"||d=="meta"||d=="variable")return d;if(c.align==null)c.align=true;if(v==c.type){H(b)}else if(v==";"&&c.type=="statement"||c.type&&I(w,c.type)){c=H(b);while(c&&c.type=="statement")c=H(b)}else if(v=="{"){G(b,a.column(),"}")}else if(v=="["){G(b,a.column(),"]")}else if(v=="("){G(b,a.column(),")")}else if(c&&c.type=="endcase"&&v==":"){G(b,a.column(),"statement")}else if(v=="newstatement"){G(b,a.column(),"statement")}else if(v=="newblock"){if(w=="function"&&c&&(c.type=="statement"||c.type=="endgroup")){}else if(w=="task"&&c&&c.type=="statement"){}else{var e=y[w];G(b,a.column(),e)}}b.startOfLine=false;return d},indent:function(b,c){if(b.tokenize!=C&&b.tokenize!=null)return a.Pass;if(i.indent){var g=i.indent(b);if(g>=0)return g}var h=b.context,j=c&&c.charAt(0);if(h.type=="statement"&&j=="}")h=h.prev;var k=false;var l=c.match(t);if(l)k=I(l[0],h.type);if(h.type=="statement")return h.indented+(j=="{"?0:e);else if(u.test(h.type)&&h.align&&!f)return h.column+(k?0:1);else if(h.type==")"&&!k)return h.indented+e;else return h.indented+(k?0:d)},blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",fold:"indent"}});a.defineMIME("text/x-verilog",{name:"verilog"});a.defineMIME("text/x-systemverilog",{name:"verilog"});var b={"|":"link",">":"property",$:"variable",$$:"variable","?$":"qualifier","?*":"qualifier","-":"hr","/":"property","/-":"property","@":"variable-3","@-":"variable-3","@++":"variable-3","@+=":"variable-3","@+=-":"variable-3","@--":"variable-3","@-=":"variable-3","%+":"tag","%-":"tag","%":"tag",">>":"tag","<<":"tag","<>":"tag","#":"tag","^":"attribute","^^":"attribute","^!":"attribute","*":"variable-2","**":"variable-2","\\":"keyword",'"':"comment"};var c={"/":"beh-hier",">":"beh-hier","-":"phys-hier","|":"pipe","?":"when","@":"stage","\\":"keyword"};var d=3;var e=false;var f=/^([~!@#\$%\^&\*-\+=\?\/\\\|'"<>]+)([\d\w_]*)/;var g=/^[! ]  /;var h=/^[! ] */;var i=/^\/[\/\*]/;function j(a,b,c){var e=b/d;return"tlv-"+a.tlvIndentationStyle[e]+"-"+c}function k(a){var b;return(b=a.match(f,false))&&b[2].length>0}a.defineMIME("text/x-tlv",{name:"verilog",hooks:{electricInput:false,token:function(a,l){var m=undefined;var n;if(a.sol()&&!l.tlvInBlockComment){if(a.peek()=="\\"){m="def";a.skipToEnd();if(a.string.match(/\\SV/)){l.tlvCodeActive=false}else if(a.string.match(/\\TLV/)){l.tlvCodeActive=true}}if(l.tlvCodeActive&&a.pos==0&&l.indented==0&&(n=a.match(h,false))){l.indented=n[0].length}var o=l.indented;var p=o/d;if(p<=l.tlvIndentationStyle.length){var q=a.string.length==o;var r=p*d;if(r<a.string.length){var s=a.string.slice(r);var t=s[0];if(c[t]&&((n=s.match(f))&&b[n[1]])){o+=d;if(!(t=="\\"&&r>0)){l.tlvIndentationStyle[p]=c[t];if(e){l.statementComment=false}p++}}}if(!q){while(l.tlvIndentationStyle.length>p){l.tlvIndentationStyle.pop()}}}l.tlvNextIndent=o}if(l.tlvCodeActive){var u=false;if(e){u=a.peek()!=" "&&m===undefined&&!l.tlvInBlockComment&&a.column()==l.tlvIndentationStyle.length*d;if(u){if(l.statementComment){u=false}l.statementComment=a.match(i,false)}}var n;if(m!==undefined){m+=" "+j(l,0,"scope-ident")}else if(a.pos/d<l.tlvIndentationStyle.length&&(n=a.match(a.sol()?g:/^   /))){m="tlv-indent-"+(a.pos%2==0?"even":"odd")+" "+j(l,a.pos-d,"indent");if(n[0].charAt(0)=="!"){m+=" tlv-alert-line-prefix"}if(k(a)){m+=" "+j(l,a.pos,"before-scope-ident")}}else if(l.tlvInBlockComment){if(a.match(/^.*?\*\//)){l.tlvInBlockComment=false;if(e&&!a.eol()){l.statementComment=false}}else{a.skipToEnd()}m="comment"}else if((n=a.match(i))&&!l.tlvInBlockComment){if(n[0]=="//"){a.skipToEnd()}else{l.tlvInBlockComment=true}m="comment"}else if(n=a.match(f)){var v=n[1];var w=n[2];if(b.hasOwnProperty(v)&&(w.length>0||a.eol())){m=b[v];if(a.column()==l.indented){m+=" "+j(l,a.column(),"scope-ident")}}else{a.backUp(a.current().length-1);m="tlv-default"}}else if(a.match(/^\t+/)){m="tlv-tab"}else if(a.match(/^[\[\]{}\(\);\:]+/)){m="meta"}else if(n=a.match(/^[mM]4([\+_])?[\w\d_]*/)){m=n[1]=="+"?"tlv-m4-plus":"tlv-m4"}else if(a.match(/^ +/)){if(a.eol()){m="error"}else{m="tlv-default"}}else if(a.match(/^[\w\d_]+/)){m="number"}else{a.next();m="tlv-default"}if(u){m+=" tlv-statement"}}else{if(a.match(/^[mM]4([\w\d_]*)/)){m="tlv-m4"}}return m},indent:function(a){return a.tlvCodeActive==true?a.tlvNextIndent:-1},startState:function(a){a.tlvIndentationStyle=[];a.tlvCodeActive=true;a.tlvNextIndent=-1;a.tlvInBlockComment=false;if(e){a.statementComment=false}}}})});
2//# sourceMappingURL=verilog.min.js.map