/usr/share/usermin/authentic-theme/unauthenticated/js/codemirror/mode/verilog
Edit: /usr/share/usermin/authentic-theme/unauthenticated/js/codemirror/mode/verilog/verilog.js (10597B)
!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("verilog",function(t,n){var i=t.indentUnit,r=n.statementIndentUnit||i,a=n.dontAlignCalls,o=n.compilerDirectivesUseRegularIndentation,l=n.noIndentKeywords||[],s=n.multiLineStrings,c=n.hooks||{};function d(e){for(var t={},n=e.split(" "),i=0;i
]/,v=/[\[\]{}()]/,g=/\d[0-9_]*/,h=/\d*\s*'s?d\s*\d[0-9_]*/i,y=/\d*\s*'s?b\s*[xz01][xz01_]*/i,k=/\d*\s*'s?o\s*[xz0-7][xz0-7_]*/i,b=/\d*\s*'s?h\s*[0-9a-fxz?][0-9a-fxz?_]*/i,w=/(\d[\d_]*(\.\d[\d_]*)?E-?[\d_]+)|(\d[\d_]*\.\d[\d_]*)/i,_=/^((`?\w+)|[)}\]])/,x=/[)}\]]/,I=new RegExp("^(`(?:ifdef|ifndef|elsif|else|endif|undef|undefineall|define|include|begin_keywords|celldefine|default|nettype|end_keywords|endcelldefine|line|nounconnected_drive|pragma|resetall|timescale|unconnected_drive))\\b"),z=/^(`(?:ifdef|ifndef|elsif|else))\b/,C=/^(`(?:elsif|else|endif))\b/,S=d("case checker class clocking config function generate interface module package primitive program property specify sequence table task"),j={};for(var E in S)j[E]="end"+E;for(var M in j.begin="end",j.casex="endcase",j.casez="endcase",j.do="while",j.fork="join;join_any;join_none",j.covergroup="endgroup",j.macro_begin="macro_end",l)E=l[M],j[E]&&(j[E]=void 0);var $=d("always always_comb always_ff always_latch assert assign assume else export for foreach forever if import initial repeat while extern typedef");function q(e,t){var n,i,r=e.peek();if(c[r]&&0!=(n=c[r](e,t)))return n;if(c.tokenBase&&0!=(n=c.tokenBase(e,t)))return n;if(/[,;:\.]/.test(r))return f=e.next(),null;if(v.test(r))return f=e.next(),"bracket";if("`"==r){if(e.next(),e.eatWhile(/[\w\$_]/)){var a=e.current();if(u=a,a.startsWith("`uvm_")&&a.endsWith("_begin")){var o=u.substr(0,u.length-5)+"end";j[a]=o,f="newblock"}else{e.eatSpace(),"("==e.peek()&&(f="newmacro");var l=e.current();e.backUp(l.length-a.length)}return"def"}return null}if("$"==r)return e.next(),e.eatWhile(/[\w\$_]/)?"meta":null;if("#"==r)return e.next(),e.eatWhile(/[\d_.]/),"def";if("@"==r)return e.next(),e.eatWhile(/[@]/),"def";if('"'==r)return e.next(),t.tokenize=(i=r,function(e,t){for(var n,r=!1,a=!1;null!=(n=e.next());){if(n==i&&!r){a=!0;break}r=!r&&"\\"==n}return(a||!r&&!s)&&(t.tokenize=q),"string"}),t.tokenize(e,t);if("/"==r){if(e.next(),e.eat("*"))return t.tokenize=A,A(e,t);if(e.eat("/"))return e.skipToEnd(),"comment";e.backUp(1)}return e.match(w)||e.match(h)||e.match(y)||e.match(k)||e.match(b)||e.match(g)||e.match(w)?"number":e.eatWhile(p)?(f=e.current(),"meta"):e.eatWhile(/[\w\$_]/)?(a=e.current(),m[a]?(j[a]&&(f="newblock","fork"===a&&(e.eatSpace(),";"==e.peek()&&(f="newstatement"),e.backUp(e.current().length-a.length))),$[a]&&(f="newstatement"),u=a,"keyword"):"variable"):(e.next(),null)}function A(e,t){for(var n,i=!1;n=e.next();){if("/"==n&&i){t.tokenize=q;break}i="*"==n}return"comment"}function B(e,t,n,i,r,a){this.indented=e,this.column=t,this.type=n,this.scopekind=i,this.align=r,this.prev=a}function W(e,t,n,i){var r=new B(e.indented,t,n,i||"",null,e.context);return e.context=r}function U(e){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}function D(e,t){if(e==t)return!0;var n=t.split(";");for(var i in n)if(e==n[i])return!0;return!1}return{electricInput:function(){var e=[];for(var t in j)if(j[t]){var n=j[t].split(";");for(var i in n)e.push(n[i])}return new RegExp("[{}()\\[\\]]|("+e.join("|")+")$")}(),startState:function(e){var t={tokenize:null,context:new B((e||0)-i,0,"top","top",!1),indented:0,compilerDirectiveIndented:0,startOfLine:!0};return c.startState&&c.startState(t),t},token:function(e,t){var n,i=t.context;if(e.sol()&&(null==i.align&&(i.align=!1),t.indented=e.indentation(),t.startOfLine=!0),c.token&&void 0!==(n=c.token(e,t)))return n;if(e.eatSpace())return null;if(f=null,u=null,"comment"==(n=(t.tokenize||q)(e,t))||"meta"==n||"variable"==n)return"="!==f&&"<="!==f||function e(t,n){return null!=t&&(t.scopekind===n||e(t.prev,n))}(i,"assignment")||(W(t,e.column()+f.length,"assignment","assignment"),null==i.align&&(i.align=!0)),n;null==i.align&&(i.align=!0);var a="assignment"==i.type&&x.test(f)&&i.prev&&i.prev.type===f;if(f==i.type||a){if(a&&(i=U(t)),i=U(t),")"==f){if(i&&"macro"===i.type)for(i=U(t);i&&("statement"==i.type||"assignment"==i.type);)i=U(t)}else if("}"==f&&i&&"statement"===i.type)for(;i&&"statement"==i.type;)i=U(t)}else if((";"==f||","==f)&&("statement"==i.type||"assignment"==i.type)||i.type&&D(u,i.type))for(i=U(t);i&&("statement"==i.type||"assignment"==i.type);)i=U(t);else if("{"==f)W(t,e.column(),"}");else if("["==f)W(t,e.column(),"]");else if("("==f)W(t,e.column(),")");else if(i&&"endcase"==i.type&&":"==f)W(t,e.column(),"statement","case");else if("newstatement"==f)W(t,e.column(),"statement",u);else if("newblock"==f){if("function"!=u||!i||"statement"!=i.type&&"endgroup"!=i.type)if("task"==u&&i&&"statement"==i.type);else if("class"==u&&i&&"statement"==i.type);else{var o=j[u];W(t,e.column(),o,u)}}else("newmacro"==f||u&&u.match(I))&&("newmacro"==f&&W(t,e.column(),"macro","macro"),u.match(C)&&(t.compilerDirectiveIndented-=r),u.match(z)&&(t.compilerDirectiveIndented+=r));return t.startOfLine=!1,n},indent:function(t,n){if(t.tokenize!=q&&null!=t.tokenize)return e.Pass;if(c.indent){var l=c.indent(t);if(l>=0)return l}var s=t.context,d=n&&n.charAt(0);"statement"==s.type&&"}"==d&&(s=s.prev);var f=!1,u=n.match(_);return u&&(f=D(u[0],s.type)),!o&&n.match(I)?n.match(C)?t.compilerDirectiveIndented-r:t.compilerDirectiveIndented:"statement"==s.type?s.indented+("{"==d?0:r):!x.test(s.type)&&"assignment"!=s.type||!s.align||a?")"!=s.type||f?s.indented+(f?0:i):s.indented+r:s.column+(f?0:1)},blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",fold:"indent"}}),e.defineMIME("text/x-verilog",{name:"verilog"}),e.defineMIME("text/x-systemverilog",{name:"verilog"});var t={"|":"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"},n={"/":"beh-hier",">":"beh-hier","-":"phys-hier","|":"pipe","?":"when","@":"stage","\\":"keyword"},i=3,r=/^([~!@#\$%\^&\*-\+=\?\/\\\|'"<>]+)([\d\w_]*)/,a=/^[! ] /,o=/^[! ] */,l=/^\/[\/\*]/;function s(e,t,n){var r=t/i;return"tlv-"+e.tlvIndentationStyle[r]+"-"+n}e.defineMIME("text/x-tlv",{name:"verilog",hooks:{electricInput:!1,token:function(e,c){var d,f=void 0;if(e.sol()&&!c.tlvInBlockComment){"\\"==e.peek()&&(f="def",e.skipToEnd(),e.string.match(/\\SV/)?c.tlvCodeActive=!1:e.string.match(/\\TLV/)&&(c.tlvCodeActive=!0)),c.tlvCodeActive&&0==e.pos&&0==c.indented&&(d=e.match(o,!1))&&(c.indented=d[0].length);var u=c.indented,m=u/i;if(m<=c.tlvIndentationStyle.length){var p=e.string.length==u,v=m*i;if(v0||(c.tlvIndentationStyle[m]=n[h],m++))}if(!p)for(;c.tlvIndentationStyle.length>m;)c.tlvIndentationStyle.pop()}c.tlvNextIndent=u}if(c.tlvCodeActive)if(void 0!==f)f+=" "+s(c,0,"scope-ident");else if(e.pos/i0}(e)&&(f+=" "+s(c,e.pos,"before-scope-ident"));else if(c.tlvInBlockComment)e.match(/^.*?\*\//)?c.tlvInBlockComment=!1:e.skipToEnd(),f="comment";else if((d=e.match(l))&&!c.tlvInBlockComment)"//"==d[0]?e.skipToEnd():c.tlvInBlockComment=!0,f="comment";else if(d=e.match(r)){var y=d[1],k=d[2];t.hasOwnProperty(y)&&(k.length>0||e.eol())?(f=t[y],e.column()==c.indented&&(f+=" "+s(c,e.column(),"scope-ident"))):(e.backUp(e.current().length-1),f="tlv-default")}else e.match(/^\t+/)?f="tlv-tab":e.match(/^[\[\]{}\(\);\:]+/)?f="meta":(d=e.match(/^[mM]4([\+_])?[\w\d_]*/))?f="+"==d[1]?"tlv-m4-plus":"tlv-m4":e.match(/^ +/)?f=e.eol()?"error":"tlv-default":e.match(/^[\w\d_]+/)?f="number":(e.next(),f="tlv-default");else e.match(/^[mM]4([\w\d_]*)/)&&(f="tlv-m4");return f},indent:function(e){return 1==e.tlvCodeActive?e.tlvNextIndent:-1},startState:function(e){e.tlvIndentationStyle=[],e.tlvCodeActive=!0,e.tlvNextIndent=-1,e.tlvInBlockComment=!1}}})});