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("ttcn",function(a,b){var c=a.indentUnit,d=b.keywords||{},e=b.builtin||{},f=b.timerOps||{},g=b.portOps||{},h=b.configOps||{},i=b.verdictOps||{},j=b.sutOps||{},k=b.functionOps||{},l=b.verdictConsts||{},m=b.booleanConsts||{},n=b.otherConsts||{},o=b.types||{},p=b.visibilityModifiers||{},q=b.templateMatch||{},r=b.multiLineStrings,s=b.indentStatements!==false;var t=/[+\-*&@=<>!\/]/;var u;function v(a,b){var c=a.next();if(c=='"'||c=="'"){b.tokenize=w(c);return b.tokenize(a,b)}if(/[\[\]{}\(\),;\\:\?\.]/.test(c)){u=c;return"punctuation"}if(c=="#"){a.skipToEnd();return"atom preprocessor"}if(c=="%"){a.eatWhile(/\b/);return"atom ttcn3Macros"}if(/\d/.test(c)){a.eatWhile(/[\w\.]/);return"number"}if(c=="/"){if(a.eat("*")){b.tokenize=x;return x(a,b)}if(a.eat("/")){a.skipToEnd();return"comment"}}if(t.test(c)){if(c=="@"){if(a.match("try")||a.match("catch")||a.match("lazy")){return"keyword"}}a.eatWhile(t);return"operator"}a.eatWhile(/[\w\$_\xa1-\uffff]/);var r=a.current();if(d.propertyIsEnumerable(r))return"keyword";if(e.propertyIsEnumerable(r))return"builtin";if(f.propertyIsEnumerable(r))return"def timerOps";if(h.propertyIsEnumerable(r))return"def configOps";if(i.propertyIsEnumerable(r))return"def verdictOps";if(g.propertyIsEnumerable(r))return"def portOps";if(j.propertyIsEnumerable(r))return"def sutOps";if(k.propertyIsEnumerable(r))return"def functionOps";if(l.propertyIsEnumerable(r))return"string verdictConsts";if(m.propertyIsEnumerable(r))return"string booleanConsts";if(n.propertyIsEnumerable(r))return"string otherConsts";if(o.propertyIsEnumerable(r))return"builtin types";if(p.propertyIsEnumerable(r))return"builtin visibilityModifiers";if(q.propertyIsEnumerable(r))return"atom templateMatch";return"variable"}function w(a){return function(b,c){var d=false,e,f=false;while((e=b.next())!=null){if(e==a&&!d){var g=b.peek();if(g){g=g.toLowerCase();if(g=="b"||g=="h"||g=="o")b.next()}f=true;break}d=!d&&e=="\\"}if(f||!(d||r))c.tokenize=null;return"string"}}function x(a,b){var c=false,d;while(d=a.next()){if(d=="/"&&c){b.tokenize=null;break}c=d=="*"}return"comment"}function y(a,b,c,d,e){this.indented=a;this.column=b;this.type=c;this.align=d;this.prev=e}function z(a,b,c){var d=a.indented;if(a.context&&a.context.type=="statement")d=a.context.indented;return a.context=new y(d,b,c,null,a.context)}function A(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 y((a||0)-c,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;u=null;var d=(b.tokenize||v)(a,b);if(d=="comment")return d;if(c.align==null)c.align=true;if((u==";"||u==":"||u==",")&&c.type=="statement"){A(b)}else if(u=="{")z(b,a.column(),"}");else if(u=="[")z(b,a.column(),"]");else if(u=="(")z(b,a.column(),")");else if(u=="}"){while(c.type=="statement")c=A(b);if(c.type=="}")c=A(b);while(c.type=="statement")c=A(b)}else if(u==c.type)A(b);else if(s&&((c.type=="}"||c.type=="top")&&u!=";"||c.type=="statement"&&u=="newstatement"))z(b,a.column(),"statement");b.startOfLine=false;return d},electricChars:"{}",blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",fold:"brace"}});function b(a){var b={},c=a.split(" ");for(var d=0;d<c.length;++d)b[c[d]]=true;return b}function c(b,c){if(typeof b=="string")b=[b];var d=[];function e(a){if(a)for(var b in a)if(a.hasOwnProperty(b))d.push(b)}e(c.keywords);e(c.builtin);e(c.timerOps);e(c.portOps);if(d.length){c.helperType=b[0];a.registerHelper("hintWords",b[0],d)}for(var f=0;f<b.length;++f)a.defineMIME(b[f],c)}c(["text/x-ttcn","text/x-ttcn3","text/x-ttcnpp"],{name:"ttcn",keywords:b("activate address alive all alt altstep and and4b any"+" break case component const continue control deactivate"+" display do else encode enumerated except exception"+" execute extends extension external for from function"+" goto group if import in infinity inout interleave"+" label language length log match message mixed mod"+" modifies module modulepar mtc noblock not not4b nowait"+" of on optional or or4b out override param pattern port"+" procedure record recursive rem repeat return runs select"+" self sender set signature system template testcase to"+" type union value valueof var variant while with xor xor4b"),builtin:b("bit2hex bit2int bit2oct bit2str char2int char2oct encvalue"+" decomp decvalue float2int float2str hex2bit hex2int"+" hex2oct hex2str int2bit int2char int2float int2hex"+" int2oct int2str int2unichar isbound ischosen ispresent"+" isvalue lengthof log2str oct2bit oct2char oct2hex oct2int"+" oct2str regexp replace rnd sizeof str2bit str2float"+" str2hex str2int str2oct substr unichar2int unichar2char"+" enum2int"),types:b("anytype bitstring boolean char charstring default float"+" hexstring integer objid octetstring universal verdicttype timer"),timerOps:b("read running start stop timeout"),portOps:b("call catch check clear getcall getreply halt raise receive"+" reply send trigger"),configOps:b("create connect disconnect done kill killed map unmap"),verdictOps:b("getverdict setverdict"),sutOps:b("action"),functionOps:b("apply derefers refers"),verdictConsts:b("error fail inconc none pass"),booleanConsts:b("true false"),otherConsts:b("null NULL omit"),visibilityModifiers:b("private public friend"),templateMatch:b("complement ifpresent subset superset permutation"),multiLineStrings:true})});
2//# sourceMappingURL=ttcn.min.js.map