12 |
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.ivprogCore=t():e.ivprogCore=t()}(window,(function(){return function(e){function t(t){for(var i,r,s=t[0],l=t[1],c=t[2],d=0,p=[];d<s.length;d++)r=s[d],Object.prototype.hasOwnProperty.call(o,r)&&o[r]&&p.push(o[r][0]),o[r]=0;for(i in l)Object.prototype.hasOwnProperty.call(l,i)&&(e[i]=l[i]);for(u&&u(t);p.length;)p.shift()();return a.push.apply(a,c||[]),n()}function n(){for(var e,t=0;t<a.length;t++){for(var n=a[t],i=!0,s=1;s<n.length;s++){var l=n[s];0!==o[l]&&(i=!1)}i&&(a.splice(t--,1),e=r(r.s=n[0]))}return e}var i={},o={0:0},a=[];function r(t){if(i[t])return i[t].exports;var n=i[t]={i:t,l:!1,exports:{}};return e[t].call(n.exports,n,n.exports,r),n.l=!0,n.exports}r.m=e,r.c=i,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="";var s=window.webpackJsonpivprogCore=window.webpackJsonpivprogCore||[],l=s.push.bind(s);s.push=t,s=s.slice();for(var c=0;c<s.length;c++)t(s[c]);var u=l;return a.push([82,1]),n()}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=n(72),o=n(3),a=n(32),r=new i.Type("integer",0),s=new i.Type("real",1),l=new i.Type("text",2),c=new i.Type("boolean",3),u=new i.Type("void",4),d=new i.Type("undefined",5),p=new o.MultiType([r,s,l,c]);t.Types=Object.freeze({INTEGER:r,REAL:s,STRING:l,BOOLEAN:c,VOID:u,UNDEFINED:d,ALL:p}),t.fromOrdToType=function(e){const n=t.Types;for(let t in n)if(n[t].ord===e)return a.Maybe.some(n[t]);return a.Maybe.none()}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Modes=Object.freeze({RETURN:Symbol("mode:return"),BREAK:Symbol("mode:break"),PAUSE:Symbol("mode:pause"),RUN:Symbol("mode:run"),ABORT:Symbol("mode:abort")})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.StoreValue=class{constructor(e,t,n,i=!1){this.type=e,this.id=n,this.isConst=i,this.value=t}get(){return this.value}inStore(){return null!=this.id}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.MultiType=class{constructor(e){this.types=e}get value(){}get ord(){}stringInfo(){let e=[];for(let t=0;t<this.types.length;t++){const n=this.types[t];e=e.concat(n.stringInfo())}return e}isCompatible(e){for(let t=0;t<this.types.length;t++){const n=this.types[t];if(e.isCompatible(n))return!0}return!1}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class i{constructor(e,t){this.dimensions=t,this.innerType=e}get isVector(){return 1==this.dimensions}isCompatible(e){return e instanceof i&&(this.dimensions===e.dimensions&&this.innerType.isCompatible(e.innerType))}stringInfo(){const e=this.innerType.stringInfo();return e.forEach(e=>{e.dim=this.dimensions}),e}get value(){}get ord(){}canAccept(e,t){const n=this.dimensions-t;return e instanceof i?n==e.dimensions&&this.innerType.isCompatible(e.innerType):0==n&&this.innerType.isCompatible(e)}}t.ArrayType=i},,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=n(1),o=n(0),a=n(36),r=n(77),s=n(4),l=n(17),c=n(16),u=n(50),d=n(2),p=n(26),_=n(33),f=n(37),m=n(78);class v{constructor(e){this.name=e,this.store=new Map,this.mode=i.Modes.RUN}static canImplicitTypeCast(e,t){return!(!e.isCompatible(o.Types.INTEGER)&&!e.isCompatible(o.Types.REAL)||!t.isCompatible(o.Types.INTEGER)&&!t.isCompatible(o.Types.REAL))}static doImplicitCasting(e,t){if(!v.canImplicitTypeCast(e,t.type))throw new Error("!!!Critical error: attempted to type cast invalid types");return e.isCompatible(o.Types.INTEGER)?new d.StoreValue(o.Types.INTEGER,t.get().trunc()):new d.StoreValue(o.Types.REAL,t.get())}extendStore(e){this.nextStore=e}applyStore(e){if(!this.store.has(e)){if(null!=this.nextStore)return this.nextStore.applyStore(e);throw new Error(`Variable ${e} not found.`)}const t=this.store.get(e);let n=null;if(t.type instanceof s.ArrayType){const e=t,i=e.type;let o=0,a=0;const r=e.value.map(t=>e.isVector?new p.StoreValueAddress(i.innerType,t,o++,void 0,e.id,e.readOnly):(a>=e.columns&&(a=0,o+=1),new p.StoreValueAddress(i.innerType,t,o,a++,e.id,e.readOnly)));n=new l.ArrayStoreValue(i,r,e.lines,e.columns,t.id,t.readOnly)}else n=new d.StoreValue(t.type,t.value,t.id,t.readOnly);return n}updateStore(e,t){if(this.store.has(e)){const n=this.store.get(e);if(n.readOnly)throw new Error("Cannot change value of a read only variable: "+e);if(n instanceof u.StoreObjectArray){const e=t;if(n.isCompatible(e)){if(n.isVector)e.get().forEach((e,t)=>{n.setAt(e,t,void 0)});else{let t=0,i=0;e.get().forEach(e=>{n.setAt(e,t,i),(i+=1)>=n.columns&&(t+=1,i=0)})}return this}}else if(n.isCompatible(t)){const e=n.locAddress;return c.Location.updateAddress(e,t.get()),this}const i=n.type,o=t.type;throw new Error(`${i.value} is not compatible with type ${o.value} given`)}if(null!=this.nextStore)return this.nextStore.updateStore(e,t),this;throw new Error(`Variable ${e} not found.`)}updateStoreArray(e,t,n,i){if(this.store.has(e)){const o=this.store.get(e);if(o.readOnly)throw new Error("Cannot change value of a read only variable: "+e);if(!(o instanceof u.StoreObjectArray))throw new Error("Cannot update a non-array variable using updateStoreArray");if(t instanceof l.ArrayStoreValue){const a=t.get();if(o.isVector&&t.isVector())for(let e=0;e<t.lines;e+=1){const t=a[e];o.setAt(t,e,void 0)}else{if(o.isVector||null!=i||!t.isVector())throw new Error(`Attempting to assign an invalid value to array ${e}`);for(let e=0;e<o.columns;e+=1){const t=a[e];o.setAt(t,n,e)}}}else{if(!o.isVector&&null==i)throw new Error(`Attempting to assign an invalid value to array ${e}`);o.setAt(t,n,i)}return this}if(null!=this.nextStore)return this.nextStore.updateStoreArray(e,t,n,i),this;throw new Error(`Variable ${e} not found.`)}insertStore(e,t){if(this.store.has(e))throw new Error(`${e} is already defined`);let n;if(t instanceof _.StoreValueRef)n=new r.StoreObjectRef(t);else if(t instanceof f.ArrayStoreValueRef)n=new m.StoreObjectArrayRef(t,t.lines,t.columns);else if(t instanceof l.ArrayStoreValue){const e=t.isVector()?0:t.columns,i=[],o=t.get();if(o.length>0)for(let e=0;e<t.get().length;e+=1){const t=o[e].get();i.push(c.Location.allocate(t))}else{let n=t.lines;n=t.isVector()?n:n*e;for(let e=0;e<n;e+=1)i.push(c.Location.allocate(null))}n=new u.StoreObjectArray(t.type,t.lines,e,i,t.isConst)}else{const e=c.Location.allocate(t.get());n=new a.StoreObject(t.type,e,t.isConst)}return n.setID(e),this.store.set(e,n),this}getStoreObject(e){if(!this.store.has(e)){if(null!=this.nextStore)return this.nextStore.getStoreObject(e);throw new Error(`Variable ${e} not found.`)}return this.store.get(e)}destroy(){this.store.forEach(e=>e.destroy(),this)}}t.Store=v},,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Context=Object.freeze({BASE:Symbol("context:base"),BREAKABLE:Symbol("context:breakable"),FUNCTION:Symbol("context:function")})},,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=n(76);const o=new class{constructor(){this.data=[],this.address_id=0}allocate(e){const t=this.address_id,n=new i.Address(t,e);return this.data.push(n),this.address_id+=1,t}deallocate(e){const t=this.findIndex(e);return-1!==t&&(this.data.splice(t,1),!0)}find(e){let t=0,n=this.data.length;for(;t<n;){const i=Math.floor((t+n)/2),o=this.getAddressAt(i);if(o.id===e)return o;e>o.id?t=i:n=i}}getAddressAt(e){return this.data[e]}findIndex(e){let t=0,n=this.data.length;for(;t<n;){const i=Math.floor((t+n)/2),o=this.getAddressAt(i);if(o.id===e)return i;e>o.id?t=i:n=i}return-1}updateAddress(e,t){const n=this.findIndex(e);if(-1===n)throw new Error("Invalid address..."+e);this.data[n].value=t}clear(){for(let e=0;e<this.data.length;e+=1)delete this.data[e];this.data=[],this.address_id=0}};t.Location=Object.freeze({allocate:o.allocate.bind(o),deallocate:o.deallocate.bind(o),find:o.find.bind(o),updateAddress:o.updateAddress.bind(o),clear:o.clear.bind(o),size:()=>o.data.length})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=n(4),o=n(26);class a{constructor(e,t,n,i,o,a=!1){this.type=e,this.id=o,this.isConst=a,this.values=t,this.lines=n,this.columns=i}get(){return this.values}getAt(e,t){if(console.log("Column ",t),this.isVector()){if(null!=t)throw new Error(this.id+" is not a matrix!");t=e,e=0}else if(null==t){const t=[];for(let n=0;n<this.columns;n+=1){const i=e*this.lines+n;t.push(this.values[i])}const n=this.type,o=new i.ArrayType(n.innerType,n.dimensions-1);return new a(o,t,this.columns,0,this.id,this.isConst)}const n=e*this.lines+t;return console.log("Get at: ",n),this.values[n]}setAt(e,t,n){let i=1;null!=n&&(i+=1);let r=t,s=n;if(!this.type.canAccept(e.type,i))throw new Error("!!!Internal Error: Attempting to insert an invalid value inside array "+this.id);if(this.isVector){if(null!=n)throw new Error(this.id+" is not a matrix!");s=r,r=0}else if(null==n){if(!(e instanceof a))throw new Error("Attempting to insert a single value as a line of matrix "+this.id);const t=e.get();for(let n=0;n<this.columns;n+=1){const i=r*this.columns+n,a=t[n];this.values[i]=new o.StoreValueAddress(e.type,a.get(),r,n,this.id,this.isConst)}}const l=r*(null==this.columns?0:this.columns)+s;this.values[l]=new o.StoreValueAddress(e.type,e.get(),t,n,this.id,this.isConst)}inStore(){return null!=this.id}isVector(){return 1==this.type.dimensions}}t.ArrayStoreValue=a},,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=n(2);class o extends i.StoreValue{constructor(e,t,n,i,o,a=!1){super(e,t,o,a),this.line=n,this.column=i}}t.StoreValueAddress=o},,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class i{constructor(e){this.value=e}static some(e){if(!e)throw Error("Provided value must not be empty");return new i(e)}static none(){return new i(null)}static fromValue(e){return e?i.some(e):i.none()}getOrElse(e){return null===this.value?e:this.value}map(e){return null===this.value?i.none():i.fromValue(e(this.value))}}t.Maybe=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.StoreValueRef=class{constructor(e,t,n,i){this.type=e,this.value=t,this.loc_address=n,this.id=i,this.isConst=!1,this.reference_dimesion=0}get(){return this.value}getRefAddress(){return this.loc_address}inStore(){return null!=this.id}getReferenceDimension(){return this.reference_dimesion}setReferenceDimension(e){this.reference_dimesion=e}}},,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=n(16);t.StoreObject=class{constructor(e,t,n=!1){this._loc_address=t,this._type=e,this._readOnly=n,this._id=void 0}setID(e){this._id=e}get id(){return this._id}get inStore(){return null!==this.id}get type(){return this._type}get value(){const e=i.Location.find(this._loc_address);if(null!=e)return e.value;throw new Error("!!!Critical Error: variable "+this.id+" does not have a valid address. Loc-Address "+this.locAddress)}get number(){throw new Error("DOT NOT USE THIS PROPERTY!")}get readOnly(){return this._readOnly}set readOnly(e){this._readOnly=e}isCompatible(e){return this.type.isCompatible(e.type)}destroy(){return i.Location.deallocate(this._loc_address)}get locAddress(){return this._loc_address}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.ArrayStoreValueRef=class{constructor(e,t,n,i,o,a){this.type=e,this.values=t,this.addresses=n,this.lines=i,this.columns=o,this.id=a,this.isConst=!1}get(){return this.values}getAddresses(){return this.addresses}inStore(){return null!=this.id}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=n(73),o=n(74),a=n(75),r={};for(const e in o){const t={};t.error=a[e],t.message=i[e],t.ui=o[e],r[e]=t}t.default=r},,,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=n(36),o=n(17),a=n(16);class r extends i.StoreObject{constructor(e,t,n,i,o=!1){super(e,-1,o),this._lines=t,this._columns=n,this.loc_addresses=i}get lines(){return this._lines}get columns(){return this._columns}isCompatible(e){if(e instanceof o.ArrayStoreValue){const t=null==e.columns?0:e.columns;if(this.lines===e.lines&&this.columns===t)return super.isCompatible(e)}return!1}get isVector(){return 1===this.type.dimensions}get value(){const e=[];for(let t=0;t<this.addresses.length;t+=1){const n=a.Location.find(this.addresses[t]);if(null==n)throw new Error("!!!Critical Error: variable "+this.id+" does not have a valid address. Loc-Address "+this.locAddress);e.push(n.value)}return e}destroy(){let e=!0;for(let t=0;t<this.addresses.length;t+=1)e=e&&a.Location.deallocate(this.addresses[t]);return e}get locAddress(){throw new Error("!!!Internal Error: Cannot invoke locAddress on StoreObjectArray")}get addresses(){return this.loc_addresses}getAt(e,t){if(this.isVector){if(null!=t)throw new Error(this.id+" is not a matrix!");t=e,e=0}else if(null==t){const t=[];for(let n=0;n<this.columns;n+=1){const i=this.getIndexOf(e,n),o=a.Location.find(this.addresses[i]);t.push(o.value)}return t}const n=this.getIndexOf(e,t);return a.Location.find(this.addresses[n]).value}setAt(e,t,n){let i=1;if(null!=n&&(i+=1),!this.type.canAccept(e.type,i))throw new Error("!!!Internal Error: Attempting to insert an invalid value inside array "+this.id);if(this.isVector){if(null!=n)throw new Error(this.id+" is not a matrix!");n=t,t=0}else if(null==n)throw new Error("!!!Internal Error: Attempting to insert a line into matrix "+this.id);const o=this.getIndexOf(t,n);a.Location.updateAddress(this.addresses[o],e.get())}getIndexOf(e,t){return e*this.columns+t}getLocAddressOf(e,t){if(this.isVector){if(null!=t)throw new Error(this.id+" is not a matrix!");t=e,e=0}else if(null==t){const t=[];for(let n=0;n<this.columns;n+=1){const i=this.getIndexOf(e,n);t.push(this.addresses[i])}return t}const n=this.getIndexOf(e,t);return this.addresses[n]}}t.StoreObjectArray=r},function(e,t,n){e.exports=function(e){var t={};function n(i){if(t[i])return t[i].exports;var o=t[i]={i:i,l:!1,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.i=function(e){return e},n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=1)}([function(e,t,n){var i=n(2),o=["悋Ꜫ脳맭䅼㯧瞆奤","6Ȥ\b\t\t","\t\t\t\t","\b\t\b\t\t\t\n\t\n\v\t\v","\f\t\f\r\t\r\t\t","\t\t\t\t","\t\t\t","\t\t\t\t","\t\t\t",'\t\t \t !\t!"\t"#',"\t#$\t$%\t%&\t&'\t'(\t()\t)","*\t*+\t+,\t,-\t-.\t./\t/0\t0","1\t12\t23\t34\t45\t56\t67\t7","8\t89\t9:\t:;\t;<\t<=\t=>\t>","?\t?@\t@","","","","","","","\b\b\b\b\b\b","\b\b\b\b\t\t\t\t\t","\t\t\t\n\n\n\n\n\v","\v\v\v\v\v\v","\v\v\v\f\f\f\f","\f\f\r\r\r\r\r\r","\r","","","","","","","","","","","","","","","","","",""," ",' !!""##$$%',"%&&''(((((","(ť\n())**++,,","----------Ÿ","\n-..//000ƀ\n0\f0","0ƃ\v0111122Ɗ\n2\r","22Ƌ22222ƒ\n22","2ƕ\n2\r22Ɩ22222Ɲ","\n222Ơ\n2\r22ơ2Ƥ\n23","3Ƨ\n3\r33ƨ333ƭ\n3\r33Ʈ","33Ʋ\n3\r33Ƴ333Ƹ\n","3\f33ƻ\v333ƾ\n344","4ǂ\n444Dž\n4\r44dž55","5Nj\n5\f55ǎ\v55566","6ǔ\n67777Ǚ\n777","888899::Ǥ\n:\r:",":ǥ::ǩ\n:;;<<=","====dz\n=>>>>>",">>>>>>>Ȁ\n>??","?????@@@@@ȍ","\n@\f@@Ȑ\v@@@ȓ\n@@@","@@@@Ț\n@\f@@ȝ\v@@","@@ȡ\n@@@țA","\t\v\r\b\t\n\v","\f\r!","#%')+-/135","79;=?AC E!G\"I#K$M%O&Q'S(U)W*Y","+[,]-_.a/c0e1gi2km3o4qs5uwy{","}6--//'',,1","1>>@@C\\aac|2;C\\aac|","2;23GGgg\f\f$$^^",'\f\f))^^\v\v""\f',"\f2;CHch29\n$$))^^ddhhppt","tvv25ȹ","","\t\v","\r","","","","","!#%","')","+-","/1","35","7?A","CE","GI","KM","OQ","SUW","Y[","]_","ac","ei","mos","","","\t\v","\r£«","µ½","ÂÌ","ÒÙ","áæ","!ò#õ","%ù'ÿ",")Ą+ċ","-ē/Ĝ1Ĭ","3į5ĵ","7Ļ9ņ",";Ŋ=Ō","?ŏAő","CœEŕGŗ","IřKś","MŝOŤ","QŦSŨ","UŪWŬ","Yŷ[Ź]Ż","_ŽaƄ","cƣeƽ","gƿiLj","kǓmǕ","oǜqǠsǨ","uǪwǬ","yDz{ǿ","}ȁȠ","rt","q
i","
tc","oc","t","gc","n","xc|","kq","\bn","qi","ke","q\ne","cf"," g ¡k¡","¢c¢\f£¤","k¤¥p¥¦","v¦§g§¨k","¨©t©ªq","ª«¬e","¬c®t®","¯c¯°e°±","v±²g²³","t³´g´","µ¶g¶·u","·¸e¸¹q","¹ºnº»j»","¼c¼½","¾e¾¿c¿À","uÀÁqÁ","ÂÃeÃÄ","qÄÅpÅÆv","ÆÇtÇÈc","ÈÉtÉÊkÊ","ËqËÌ","ÍeÍÎqÎÏ","pÏÐuÐÑ","vÑÒÓ","hÓÔwÔÕp","ÕÖeÖ×c","×ØqØ","ÙÚfÚÛgÛ","ÜxÜÝqÝÞ","nÞßxßà","càáâ","râãcãät","äåcå","æçtçèg","èéréêkê","ëvëìcìí","aíîrîï","cïðtðñc","ñ òóf",'óôgô"õ',"öcö÷v÷ø","gø$ùú","rúûcûüu","üýuýþq","þ&ÿĀrĀ","ācāĂtĂă","gă(Ąą","tąĆgĆćr","ćĈkĈĉv","ĉĊcĊ*ċ","ČcČčvčĎ","gĎďaďĐ","sĐđwđĒg","Ē,ēĔg","ĔĕpĕĖsĖ","ėwėĘcĘę","pęĚvĚě","qě.Ĝĝt","ĝĞgĞğr","ğĠkĠġvġ","ĢcĢģaģĤ","gĤĥpĥĦ","sĦħwħĨc","ĨĩpĩĪv","Īīqī0Ĭ","ĭuĭĮgĮ2","įİuİı","gıIJpIJijc","ijĴqĴ4","ĵĶhĶķcķ","ĸnĸĹuĹĺ","qĺ6Ļļ","xļĽgĽľt","ľĿfĿŀc","ŀŁfŁłgł","ŃkŃńtńŅ","qŅ8ņŇ","pŇňcňʼnq","ʼn:ŊŋG","ŋ<ŌōQō","ŎWŎ>ŏŐ","(Ő@őŒ","*ŒBœŔ+","ŔDŕŖ]","ŖFŗŘ_Ř","HřŚ}ŚJ","śŜŜL","ŝŞ.ŞN","şŠ>Šť/","šŢŢţ","ţťŤş","ŤšťP","Ŧŧ\tŧR","Ũũ\tũTŪ","ū;ūVŬŭ","=ŭXŮů","@ůŸ?Űű?","űŸ?Ųų>","ųŸ?ŴŸ\tŵ","Ŷ#ŶŸ?ŷŮ","ŷŰŷŲ","ŷŴŷŵ","ŸZŹź","<ź\\Żż","9ż^ŽƁ\t","žƀ\tſž","ƀƃƁſ","ƁƂƂ`","ƃƁƄƅ_0","ƅƆ0ƆƇ_0Ƈb","ƈƊ\tƉƈ","ƊƋƋƉ","ƋƌƌƤ","ƍƎ2Ǝƒ","zƏƐ2ƐƒZ","ƑƍƑƏ","ƒƔƓƕu;","ƔƓƕƖ","ƖƔƖƗ","ƗƤƘƙ2","ƙƝdƚƛ2ƛ","ƝDƜƘƜ","ƚƝƟƞ","Ơ\t\bƟƞƠơ","ơƟơƢ","ƢƤƣƉ","ƣƑƣƜ","ƤdƥƧ","\tƦƥƧƨ","ƨƦƨƩ","ƩƪƪƬ","0ƫƭ\tƬƫ","ƭƮƮƬ","ƮƯƯƾ","ưƲ\tƱư","ƲƳƳƱ","ƳƴƴƵ","Ƶƹ0ƶƸ\t","ƷƶƸƻ","ƹƷƹƺ","ƺƼƻƹ","Ƽƾg4ƽƦ","ƽƱƾf","ƿǁ\t\tǀǂ\tǁ","ǀǁǂǂ","DŽǃDž\tDŽ","ǃDždždž","DŽdžLJLJ","hLjnj$ljNj","k6NJljNjǎ","njNJnjǍ","ǍǏǎnj","Ǐǐ$ǐj","Ǒǔ\n\nǒǔy=Ǔ","ǑǓǒǔ","lǕǘ)ǖǙ","y=ǗǙ\n\vǘǖ","ǘǗǙǚ","ǚǛ)Ǜn","ǜǝ\t\fǝǞ","Ǟǟ\b8ǟpǠǡ","=ǡrǢǤ\t\r","ǣǢǤǥ","ǥǣǥǦ","Ǧǩǧǩq9","ǨǣǨǧ","ǩtǪǫ\tǫ","vǬǭ\tǭx","Ǯǯ^ǯdz\t","ǰdz}?DZdz{>Dz","ǮDzǰDz","DZdzzǴ","ǵ^ǵǶ\tǶǷ","w<ǷǸw<ǸȀ","ǹǺ^Ǻǻw<ǻ","Ǽw<ǼȀǽǾ","^ǾȀw<ǿǴ","ǿǹǿǽ","Ȁ|ȁȂ^","ȂȃwȃȄu;Ȅ","ȅu;ȅȆu;Ȇȇu;","ȇ~Ȉȉ1ȉ","Ȋ1ȊȎȋ","ȍ\n\rȌȋȍȐ","ȎȌȎȏ","ȏȒȐȎ","ȑȓȒȑ","ȒȓȓȔ","Ȕȡ\fȕȖ","1Ȗȗ,ȗț","ȘȚ\vșȘ","ȚȝțȜ","țșȜȞ","ȝțȞȟ",",ȟȡ1ȠȈ","ȠȕȡȢ","Ȣȣ\b@ȣ","ŤŷƁƋƑƖƜơƣ","ƨƮƳƹƽǁdžnjǓǘǥǨ","DzǿȎȒțȠ\b",""].join(""),a=(new i.atn.ATNDeserializer).deserialize(o),r=a.decisionToState.map((function(e,t){return new i.dfa.DFA(e,t)}));function s(e){return i.Lexer.call(this,e),this._interp=new i.atn.LexerATNSimulator(this,a,r,new i.PredictionContextCache),this}s.prototype=Object.create(i.Lexer.prototype),s.prototype.constructor=s,s.EOF=i.Token.EOF,s.RK_PROGRAM=1,s.RK_REAL=2,s.RK_VOID=3,s.RK_BOOLEAN=4,s.RK_STRING=5,s.RK_INTEGER=6,s.RK_CHARACTER=7,s.RK_SWITCH=8,s.RK_CASE=9,s.RK_DEFAULT=10,s.RK_CONST=11,s.RK_FUNCTION=12,s.RK_RETURN=13,s.RK_FOR=14,s.RK_FOR_ALT=15,s.RK_FOR_FROM=16,s.RK_FOR_TO=17,s.RK_FOR_PASS=18,s.RK_BREAK=19,s.RK_DO=20,s.RK_DO_UNTIL=21,s.RK_WHILE=22,s.RK_WHILE_ALT=23,s.RK_IF=24,s.RK_ELSE=25,s.RK_FALSE=26,s.RK_TRUE=27,s.RK_REFERENCE=28,s.OPEN_PARENTHESIS=29,s.CLOSE_PARENTHESIS=30,s.OPEN_BRACE=31,s.CLOSE_BRACE=32,s.OPEN_CURLY=33,s.CLOSE_CURLY=34,s.COMMA=35,s.EQUAL=36,s.SUM_OP=37,s.MULTI_OP=38,s.AND_OPERATOR=39,s.OR_OPERATOR=40,s.RELATIONAL_OPERATOR=41,s.COLON=42,s.NOT_OPERATOR=43,s.ID=44,s.LIB_ID=45,s.INTEGER=46,s.REAL=47,s.STRING=48,s.CHARACTER=49,s.WHITESPACE=50,s.EOS=51,s.COMMENTS=52,s.prototype.channelNames=["DEFAULT_TOKEN_CHANNEL","HIDDEN"],s.prototype.modeNames=["DEFAULT_MODE"],s.prototype.literalNames=[null,"'programa'","'real'","'vazio'","'logico'","'cadeia'","'inteiro'","'caractere'","'escolha'","'caso'","'contrario'","'const'","'funcao'","'devolva'","'para'","'repita_para'","'de'","'ate'","'passo'","'pare'","'repita'","'ate_que'","'enquanto'","'repita_enquanto'","'se'","'senao'","'falso'","'verdadeiro'","'&'","'('","')'","'['","']'","'{'","'}'","','",null,null,null,null,null,null,"':'"],s.prototype.symbolicNames=[null,"RK_PROGRAM","RK_REAL","RK_VOID","RK_BOOLEAN","RK_STRING","RK_INTEGER","RK_CHARACTER","RK_SWITCH","RK_CASE","RK_DEFAULT","RK_CONST","RK_FUNCTION","RK_RETURN","RK_FOR","RK_FOR_ALT","RK_FOR_FROM","RK_FOR_TO","RK_FOR_PASS","RK_BREAK","RK_DO","RK_DO_UNTIL","RK_WHILE","RK_WHILE_ALT","RK_IF","RK_ELSE","RK_FALSE","RK_TRUE","RK_REFERENCE","OPEN_PARENTHESIS","CLOSE_PARENTHESIS","OPEN_BRACE","CLOSE_BRACE","OPEN_CURLY","CLOSE_CURLY","COMMA","EQUAL","SUM_OP","MULTI_OP","AND_OPERATOR","OR_OPERATOR","RELATIONAL_OPERATOR","COLON","NOT_OPERATOR","ID","LIB_ID","INTEGER","REAL","STRING","CHARACTER","WHITESPACE","EOS","COMMENTS"],s.prototype.ruleNames=["RK_PROGRAM","RK_REAL","RK_VOID","RK_BOOLEAN","RK_STRING","RK_INTEGER","RK_CHARACTER","RK_SWITCH","RK_CASE","RK_DEFAULT","RK_CONST","RK_FUNCTION","RK_RETURN","RK_FOR","RK_FOR_ALT","RK_FOR_FROM","RK_FOR_TO","RK_FOR_PASS","RK_BREAK","RK_DO","RK_DO_UNTIL","RK_WHILE","RK_WHILE_ALT","RK_IF","RK_ELSE","RK_FALSE","RK_TRUE","RK_LOGICAL_NOT","RK_LOGICAL_AND","RK_LOGICAL_OR","RK_REFERENCE","OPEN_PARENTHESIS","CLOSE_PARENTHESIS","OPEN_BRACE","CLOSE_BRACE","OPEN_CURLY","CLOSE_CURLY","COMMA","EQUAL","SUM_OP","MULTI_OP","AND_OPERATOR","OR_OPERATOR","RELATIONAL_OPERATOR","COLON","NOT_OPERATOR","ID","LIB_ID","INTEGER","REAL","ExponentPart","STRING","STRING_CHARACTER","CHARACTER","WHITESPACE","SEMICOLON","EOS","HEX_DIGIT","OCTAL_DIGIT","ESC_SEQ","ESC_OCTAL","ESC_UNICODE","COMMENTS"],s.prototype.grammarFileName="ivprog.g4",t.ivprog=s},function(e,t,n){e.exports={ivprog:n(0).ivprog}},function(e,t){e.exports=n(24)}])},function(e,t,n){e.exports=function(e){var t={};function n(i){if(t[i])return t[i].exports;var o=t[i]={i:i,l:!1,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.i=function(e){return e},n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=1)}([function(e,t,n){var i=n(2),o=["悋Ꜫ脳맭䅼㯧瞆奤","6ȉ\b\t\t","\t\t\t\t","\b\t\b\t\t\t\n\t\n\v\t\v","\f\t\f\r\t\r\t\t","\t\t\t\t","\t\t\t","\t\t\t\t","\t\t\t",'\t\t \t !\t!"\t"#',"\t#$\t$%\t%&\t&'\t'(\t()\t)","*\t*+\t+,\t,-\t-.\t./\t/0\t0","1\t12\t23\t34\t45\t56\t67\t7","8\t89\t9:\t:;\t;<\t<=\t=>\t>","?\t?@\t@","","","","","","\b\b\b\b\b\t\t\t\t","\t\t\t\n\n\n\n\n\v","\v\v\v\v\v\v","\v\v\v\f\f\f\f","\f\f\r\r\r\r\r\r","\r\r\r","","","","","","","","","","","","","","","","",' !!"',"\"##$$%%&&'","'((((((Ŋ\n())","**++,,---","-------ŝ\n-..","//000ť\n0\f00Ũ\v0","111122ů\n2\r22Ű","22222ŷ\n222ź\n2\r2","2Ż22222Ƃ\n222ƅ","\n2\r22Ɔ2Ɖ\n233ƌ\n3\r3","3ƍ333ƒ\n3\r33Ɠ33","Ɨ\n3\r33Ƙ333Ɲ\n3\f33Ơ","\v333ƣ\n3444Ƨ\n44","4ƪ\n4\r44ƫ555ư\n5\f5","5Ƴ\v555666ƹ\n67","777ƾ\n7778888","99::lj\n:\r::NJ::ǎ","\n:;;<<=====ǘ","\n=>>>>>>>>>",">>>ǥ\n>??????","?@@@@@Dz\n@\f@@ǵ\v","@@@Ǹ\n@@@@@@@ǿ","\n@\f@@Ȃ\v@@@@Ȇ\n@@","@ȀA\t\v","\r\b\t\n\v\f\r","!#%')+","-/13579;=","?AC E!G\"I#K$M%O&Q'S(U)W*Y+[,]-_.a/c0e1gi2k","m3o4qs5uwy{}6","--//'',,11>>@@","C\\aac|2;C\\aac|2;23","GGgg\f\f$$^^\f\f))^",'^\v\v""\f\f',"2;CHch29\n$$))^^ddhhppttvv25Ȟ","","\t","\v\r","","","","","!","#%","')+","-/","13","57","?A","CEG","IK","MO","QS","UW","Y[]","_a","ce","im","os","","\t","\v\r","£","¨¯","´¾","ÄÍ","ÔØ!","ã#è%ë","'ð)ö","+ý-ă","/ĉ1Ė","3ę5Ğ","7Ĥ9ĩ;ĭ","=ı?Ĵ","AĶCĸ","EĺGļ","IľKŀ","MłOʼnQŋ","SōUŏ","WőYŜ","[Ş]Š","_Ţaũ","cƈeƢgƤ","iƭkƸ","mƺoǁ","qDžsǍ","uǏwǑ","yǗ{Ǥ}Ǧ","ȅ","rt","q
i
t","co","t","gc","n","xq","kf\b","dq","qn","\nu","vt","kp","i\f k"," ¡p¡¢v","¢£¤e","¤¥j¥¦c¦","§t§¨","©u©ªyª«","k«¬v¬","e®j®","¯°e°±c","±²u²³g","³´µq","µ¶v¶·j·","¸g¸¹t¹º","yº»k»¼","u¼½g½","¾¿e¿Àq","ÀÁpÁÂu","ÂÃvÃ","ÄÅhÅÆwÆ","ÇpÇÈeÈÉ","vÉÊkÊË","qËÌpÌ","ÍÎtÎÏg","ÏÐvÐÑw","ÑÒtÒÓpÓ","ÔÕhÕ","ÖqÖ×t×","ØÙtÙÚ","gÚÛrÛÜ","gÜÝcÝÞv","Þßaßàh","àáqáâtâ"," ãähäå","tåæqæç",'oç"èév',"éêqê$","ëìrìící","îuîïuï&","ðñdñò","tòógóôc","ôõmõ(","ö÷t÷øgø","ùrùúgúû","cûüvü*","ýþwþÿp","ÿĀvĀāk","āĂnĂ,ă","ĄyĄąjąĆ","kĆćnćĈ","gĈ.ĉĊt","ĊċgċČr","ČčgčĎcĎ","ďvďĐaĐđ","yđĒjĒē","kēĔnĔĕg","ĕ0Ėėk","ėĘhĘ2ę","ĚgĚěněĜ","uĜĝgĝ4","ĞğhğĠc","ĠġnġĢu","Ģģgģ6Ĥ","ĥvĥĦtĦħ","wħĨgĨ8","ĩĪpĪīq","īĬvĬ:","ĭĮCĮįPį","İFİ<ıIJ","QIJijTij>","Ĵĵ(ĵ@","Ķķ*ķB","ĸĹ+ĹDĺ","Ļ]ĻFļĽ","_ĽHľĿ","}ĿJŀŁ","ŁLłŃ.","ŃNńŅ>","ŅŊ/ņŇ","ŇňňŊ","ʼnńʼnņ","ŊPŋŌ\tŌ","RōŎ\tŎT","ŏŐ;ŐV","őŒ=ŒX","œŔ@Ŕŝ?","ŕŖ?Ŗŝ?ŗ","Ř>Řŝ?řŝ","\tŚś#śŝ","?ŜœŜŕ","ŜŗŜř","ŜŚŝZ","Şş<ş\\","Šš9š^","ŢŦ\tţť\t","ŤţťŨ","ŦŤŦŧ","ŧ`ŨŦ","ũŪ_0Ūū0ūŬ","_0Ŭbŭů\t","ŮŭůŰ","ŰŮŰű","űƉŲų2","ųŷzŴŵ2","ŵŷZŶŲ","ŶŴŷŹ","Ÿźu;ŹŸź","ŻŻŹŻ","żżƉŽ","ž2žƂdſƀ","2ƀƂDƁŽ","ƁſƂƄ","ƃƅ\t\bƄƃ","ƅƆƆƄ","ƆƇƇƉ","ƈŮƈŶ","ƈƁƉd","Ɗƌ\tƋƊ","ƌƍƍƋ","ƍƎƎƏ","ƏƑ0Ɛƒ\t","ƑƐƒƓ","ƓƑƓƔ","ƔƣƕƗ\t","ƖƕƗƘ","ƘƖƘƙ","ƙƚƚƞ0","ƛƝ\tƜƛ","ƝƠƞƜ","ƞƟƟơ","Ơƞơƣg4","ƢƋƢƖ","ƣfƤƦ\t\tƥƧ","\tƦƥƦƧ","ƧƩƨƪ","\tƩƨƪƫ","ƫƩƫƬ","ƬhƭƱ","$Ʈưk6ƯƮ","ưƳƱƯ","ƱƲƲƴ","ƳƱƴƵ$","Ƶjƶƹ\n\n","Ʒƹy=ƸƶƸ","Ʒƹlƺ","ƽ)ƻƾy=Ƽƾ\n\v","ƽƻƽƼ","ƾƿƿǀ)","ǀnǁǂ\t\f","ǂǃǃDŽ\b8DŽ","pDždž=džr","LJlj\t\rLjLJ","ljNJNJLj","NJNjNjǎ","njǎq9ǍLj","Ǎnjǎt","Ǐǐ\tǐv","Ǒǒ\tǒxǓ","ǔ^ǔǘ\tǕǘ","}?ǖǘ{>ǗǓ","ǗǕǗǖ","ǘzǙǚ^","ǚǛ\tǛǜw<ǜǝ","w<ǝǥǞǟ","^ǟǠw<Ǡǡw<ǡ","ǥǢǣ^ǣ","ǥw<ǤǙǤǞ","ǤǢǥ|","Ǧǧ^ǧǨ","wǨǩu;ǩǪu;","Ǫǫu;ǫǬu;Ǭ~","ǭǮ1Ǯǯ1","ǯdzǰDz\n\r","DZǰDzǵ","dzDZdzǴ","ǴǷǵdz","ǶǸǷǶ","ǷǸǸǹ","ǹȆ\fǺǻ1ǻ","Ǽ,ǼȀǽ","ǿ\vǾǽǿ","ȂȀȁȀ","ǾȁȃȂ","ȀȃȄ,Ȅ","Ȇ1ȅǭȅ","ǺȆȇȇ","Ȉ\b@Ȉ","ʼnŜŦŰŶŻƁƆƈƍƓƘ","ƞƢƦƫƱƸƽNJǍǗǤdz","ǷȀȅ\b"].join(""),a=(new i.atn.ATNDeserializer).deserialize(o),r=a.decisionToState.map((function(e,t){return new i.dfa.DFA(e,t)}));function s(e){return i.Lexer.call(this,e),this._interp=new i.atn.LexerATNSimulator(this,a,r,new i.PredictionContextCache),this}s.prototype=Object.create(i.Lexer.prototype),s.prototype.constructor=s,s.EOF=i.Token.EOF,s.RK_PROGRAM=1,s.RK_REAL=2,s.RK_VOID=3,s.RK_BOOLEAN=4,s.RK_STRING=5,s.RK_INTEGER=6,s.RK_CHARACTER=7,s.RK_SWITCH=8,s.RK_CASE=9,s.RK_DEFAULT=10,s.RK_CONST=11,s.RK_FUNCTION=12,s.RK_RETURN=13,s.RK_FOR=14,s.RK_FOR_ALT=15,s.RK_FOR_FROM=16,s.RK_FOR_TO=17,s.RK_FOR_PASS=18,s.RK_BREAK=19,s.RK_DO=20,s.RK_DO_UNTIL=21,s.RK_WHILE=22,s.RK_WHILE_ALT=23,s.RK_IF=24,s.RK_ELSE=25,s.RK_FALSE=26,s.RK_TRUE=27,s.RK_REFERENCE=28,s.OPEN_PARENTHESIS=29,s.CLOSE_PARENTHESIS=30,s.OPEN_BRACE=31,s.CLOSE_BRACE=32,s.OPEN_CURLY=33,s.CLOSE_CURLY=34,s.COMMA=35,s.EQUAL=36,s.SUM_OP=37,s.MULTI_OP=38,s.AND_OPERATOR=39,s.OR_OPERATOR=40,s.RELATIONAL_OPERATOR=41,s.COLON=42,s.NOT_OPERATOR=43,s.ID=44,s.LIB_ID=45,s.INTEGER=46,s.REAL=47,s.STRING=48,s.CHARACTER=49,s.WHITESPACE=50,s.EOS=51,s.COMMENTS=52,s.prototype.channelNames=["DEFAULT_TOKEN_CHANNEL","HIDDEN"],s.prototype.modeNames=["DEFAULT_MODE"],s.prototype.literalNames=[null,"'program'","'real'","'void'","'bool'","'string'","'int'","'char'","'switch'","'case'","'otherwise'","'const'","'function'","'return'","'for'","'repeat_for'","'from'","'to'","'pass'","'break'","'repeat'","'until'","'while'","'repeat_while'","'if'","'else'","'false'","'true'","'&'","'('","')'","'['","']'","'{'","'}'","','",null,null,null,null,null,null,"':'"],s.prototype.symbolicNames=[null,"RK_PROGRAM","RK_REAL","RK_VOID","RK_BOOLEAN","RK_STRING","RK_INTEGER","RK_CHARACTER","RK_SWITCH","RK_CASE","RK_DEFAULT","RK_CONST","RK_FUNCTION","RK_RETURN","RK_FOR","RK_FOR_ALT","RK_FOR_FROM","RK_FOR_TO","RK_FOR_PASS","RK_BREAK","RK_DO","RK_DO_UNTIL","RK_WHILE","RK_WHILE_ALT","RK_IF","RK_ELSE","RK_FALSE","RK_TRUE","RK_REFERENCE","OPEN_PARENTHESIS","CLOSE_PARENTHESIS","OPEN_BRACE","CLOSE_BRACE","OPEN_CURLY","CLOSE_CURLY","COMMA","EQUAL","SUM_OP","MULTI_OP","AND_OPERATOR","OR_OPERATOR","RELATIONAL_OPERATOR","COLON","NOT_OPERATOR","ID","LIB_ID","INTEGER","REAL","STRING","CHARACTER","WHITESPACE","EOS","COMMENTS"],s.prototype.ruleNames=["RK_PROGRAM","RK_REAL","RK_VOID","RK_BOOLEAN","RK_STRING","RK_INTEGER","RK_CHARACTER","RK_SWITCH","RK_CASE","RK_DEFAULT","RK_CONST","RK_FUNCTION","RK_RETURN","RK_FOR","RK_FOR_ALT","RK_FOR_FROM","RK_FOR_TO","RK_FOR_PASS","RK_BREAK","RK_DO","RK_DO_UNTIL","RK_WHILE","RK_WHILE_ALT","RK_IF","RK_ELSE","RK_FALSE","RK_TRUE","RK_LOGICAL_NOT","RK_LOGICAL_AND","RK_LOGICAL_OR","RK_REFERENCE","OPEN_PARENTHESIS","CLOSE_PARENTHESIS","OPEN_BRACE","CLOSE_BRACE","OPEN_CURLY","CLOSE_CURLY","COMMA","EQUAL","SUM_OP","MULTI_OP","AND_OPERATOR","OR_OPERATOR","RELATIONAL_OPERATOR","COLON","NOT_OPERATOR","ID","LIB_ID","INTEGER","REAL","ExponentPart","STRING","STRING_CHARACTER","CHARACTER","WHITESPACE","SEMICOLON","EOS","HEX_DIGIT","OCTAL_DIGIT","ESC_SEQ","ESC_OCTAL","ESC_UNICODE","COMMENTS"],s.prototype.grammarFileName="ivprog.g4",t.ivprog=s},function(e,t,n){e.exports={ivprog:n(0).ivprog}},function(e,t){e.exports=n(24)}])},function(e,t,n){e.exports=function(e){var t={};function n(i){if(t[i])return t[i].exports;var o=t[i]={i:i,l:!1,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.i=function(e){return e},n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=1)}([function(e,t,n){var i=n(2),o=["悋Ꜫ脳맭䅼㯧瞆奤","0ǥ\b\t\t","\t\t\t\t","\b\t\b\t\t\t\n\t\n\v\t\v","\f\t\f\r\t\r\t\t","\t\t\t\t","\t\t\t","\t\t\t\t","\t\t\t",'\t\t \t !\t!"\t"#',"\t#$\t$%\t%&\t&'\t'(\t()\t)","*\t*+\t+,\t,-\t-.\t./\t/0\t0","1\t12\t23\t34\t45\t56\t67\t7","8\t89\t9:\t:","","","","","","","\b\b\b\b\b","\b\b\b\b\b\t\t\t\t","\t\t\t\t\n\n\n\n\n","\v\v\v\v\v\v","\v\v\v\v\f\f\f","\f\f\f\r\r\r\r\r\r","\r","","","","","","","","","","","","",' !!""','""""Ħ\n"##$$',"%%&&'''''","'''''Ĺ\n'(()",")***Ł\n*\f**ń\v*+","+++,,ŋ\n,\r,,Ō,",",,,,œ\n,,,Ŗ\n,\r,,ŗ",",,,,,Ş\n,,,š\n,","\r,,Ţ,ť\n,--Ũ\n-\r--ũ","---Ů\n-\r--ů--ų\n","-\r--Ŵ---Ź\n-\f--ż\v","---ſ\n-...ƃ\n..",".Ɔ\n.\r..Ƈ///ƌ\n/\f//Ə","\v///000ƕ\n011","11ƚ\n11122223","344ƥ\n4\r44Ʀ44ƪ\n4","556677777ƴ\n7","8888888888","88ǁ\n89999999",":::::ǎ\n:\f::Ǒ\v:","::ǔ\n:::::::Ǜ\n",":\f::Ǟ\v::::Ǣ\n::",":ǜ;\t\v","\r\b\t\n\v\f\r","!#%')+","-/13579;=","?AC E!G\"I#K$M%O&Q'S(U)W*Y+[],_a-c.e","g/ikmoqs0","--//'',,11>>@@C\\aac|","2;C\\aac|2;23GGgg\f","\f$$^^\f\f))^^\v",'\v""\f\f2;CHch',"29\n$$))^^ddhhppttvv25Ǻ","","\t\v","\r","","","","","!#","%'",")+","35","79;","=?","AC","EG","IK","MOQ","SU","WY","]a","cg","su~","\t","\v\r","©","±¶","ÀÆ","ÍÕ","Ú!ß","#ä%í","'ð)ö","+ü-ć","/ċ1č3Đ","5Ē7Ĕ","9Ė;Ę","=Ě?Ĝ","AĞCĥ","EħGĩIī","KĭMĸ","OĺQļ","SľUŅ","WŤYž","[ƀ]Ɖ_Ɣ","aƖcƝ","eơgƩ","iƫkƭ","mƳoǀ","qǂsǡuv","rvwtwxqxyi","yztz{c{|o","|}c}~t","gc","n","x
c
","|k","q\b","nqi","ke","q\n","ec","fg","kc\f","kp","vg","kt","q ","e ¡c¡¢","t¢£c£¤e","¤¥v¥¦g","¦§t§¨g¨","©ªgª","«u«¬e¬","q®n®¯","j¯°c°","±²e²³c","³´u´µq","µ¶·e","·¸q¸¹p¹","ºvº»t»¼","c¼½t½¾","k¾¿q¿","ÀÁeÁÂq","ÂÃpÃÄu","ÄÅvÅ","ÆÇhÇÈwÈ","ÉpÉÊeÊË","cËÌqÌ","ÍÎtÎÏ","gÏÐvÐÑq","ÑÒtÒÓp","ÓÔgÔ","ÕÖrÖ×c×","ØtØÙcÙ","ÚÛrÛÜ","cÜÝtÝÞ","gÞ ßàh","àácáâe",'âãcã"ä',"ågåæpæç","sçèwèé","céêpêëv","ëìqì$","íîuîïgï","&ðñuñò","gòópóô","côõqõ(","ö÷h÷øc","øùnùúuú","ûqû*üý","xýþgþÿ","tÿĀfĀāc","āĂfĂăg","ăĄkĄątą","ĆqĆ,ćĈ","pĈĉcĉĊ","qĊ.ċČG","Č0čĎQ","ĎďWď2Đ","đ(đ4Ēē","*ē6Ĕĕ","+ĕ8Ėė]","ė:Ęę_","ę<Ěě}ě",">Ĝĝĝ","@Ğğ.ğB","Ġġ>ġĦ","/ĢģģĤ","ĤĦĥĠ","ĥĢĦD","ħĨ\tĨF","ĩĪ\tĪH","īĬ/ĬJ","ĭĮ1ĮLį","İ@İĹ?ıIJ","?IJĹ?ijĴ",">ĴĹ?ĵĹ\t","Ķķ#ķĹ?","ĸįĸı","ĸijĸĵ","ĸĶĹN","ĺĻ<ĻPļ","Ľ-ĽRľł","\tĿŁ\tŀĿ","Łńłŀ","łŃŃT","ńłŅņ","S*ņŇ0ŇňS*ň","Vʼnŋ\tŊʼn","ŋŌŌŊ","Ōōōť","Ŏŏ2ŏœ","zŐő2őœ","ZŒŎŒŐ","œŕŔŖ","i5ŕŔŖŗ","ŗŕŗŘ","ŘťřŚ2","ŚŞdśŜ2","ŜŞDŝř","ŝśŞŠ","şš\t\bŠş","šŢŢŠ","Ţţţť","ŤŊŤŒ","ŤŝťX","ŦŨ\tŧŦ","Ũũũŧ","ũŪŪū","ūŭ0ŬŮ\tŭ","ŬŮůů","ŭůŰŰ","ſűų\tŲ","űųŴŴ","ŲŴŵŵ","ŶŶź0ŷ","Ź\tŸŷŹ","żźŸź","ŻŻŽż","źŽſ[.žŧ","žŲſZ","ƀƂ\t\tƁƃ\t","ƂƁƂƃ","ƃƅƄƆ\t","ƅƄƆƇ","ƇƅƇƈ","ƈ\\Ɖƍ$","Ɗƌ_0ƋƊ","ƌƏƍƋ","ƍƎƎƐ","ƏƍƐƑ$","Ƒ^ƒƕ\n\nƓƕ","m7ƔƒƔƓ","ƕ`Ɩƙ",")Ɨƚm7Ƙƚ\n\v","ƙƗƙƘ","ƚƛƛƜ)","ƜbƝƞ\t\fƞƟ","ƟƠ\b2Ơd","ơƢ=Ƣf","ƣƥ\t\rƤƣ","ƥƦƦƤ","ƦƧƧƪ","ƨƪe3ƩƤƩ","ƨƪhƫ","Ƭ\tƬjƭƮ","\tƮlƯư","^ưƴ\tƱƴq9","Ʋƴo8ƳƯƳ","ƱƳƲƴ","nƵƶ^ƶƷ","\tƷƸk6Ƹƹk6","ƹǁƺƻ^","ƻƼk6Ƽƽk6ƽǁ","ƾƿ^ƿǁ","k6ǀƵǀƺ","ǀƾǁp","ǂǃ^ǃDŽw","DŽDži5Dždži5džLJ","i5LJLji5Ljr","ljNJ1NJNj1Nj","Ǐnjǎ\n\rǍnj","ǎǑǏǍ","ǏǐǐǓ","ǑǏǒǔ","ǓǒǓǔ","ǔǕǕǢ","\fǖǗ1Ǘǘ",",ǘǜǙǛ\v","ǚǙǛǞ","ǜǝǜǚ","ǝǟǞǜ","ǟǠ,ǠǢ","1ǡljǡǖ","ǢǣǣǤ\b",":Ǥtĥĸ","łŌŒŗŝŢŤũůŴźž","ƂƇƍƔƙƦƩƳǀǏǓǜ","ǡ\b"].join(""),a=(new i.atn.ATNDeserializer).deserialize(o),r=a.decisionToState.map((function(e,t){return new i.dfa.DFA(e,t)}));function s(e){return i.Lexer.call(this,e),this._interp=new i.atn.LexerATNSimulator(this,a,r,new i.PredictionContextCache),this}s.prototype=Object.create(i.Lexer.prototype),s.prototype.constructor=s,s.EOF=i.Token.EOF,s.RK_PROGRAM=1,s.RK_REAL=2,s.RK_VOID=3,s.RK_BOOLEAN=4,s.RK_STRING=5,s.RK_INTEGER=6,s.RK_CHARACTER=7,s.RK_SWITCH=8,s.RK_CASE=9,s.RK_DEFAULT=10,s.RK_CONST=11,s.RK_FUNCTION=12,s.RK_RETURN=13,s.RK_FOR=14,s.RK_BREAK=15,s.RK_DO=16,s.RK_WHILE=17,s.RK_IF=18,s.RK_ELSE=19,s.RK_FALSE=20,s.RK_TRUE=21,s.RK_REFERENCE=22,s.OPEN_PARENTHESIS=23,s.CLOSE_PARENTHESIS=24,s.OPEN_BRACE=25,s.CLOSE_BRACE=26,s.OPEN_CURLY=27,s.CLOSE_CURLY=28,s.COMMA=29,s.EQUAL=30,s.SUM_OP=31,s.MULTI_OP=32,s.AND_OPERATOR=33,s.OR_OPERATOR=34,s.RELATIONAL_OPERATOR=35,s.COLON=36,s.NOT_OPERATOR=37,s.ID=38,s.LIB_ID=39,s.INTEGER=40,s.REAL=41,s.STRING=42,s.CHARACTER=43,s.WHITESPACE=44,s.EOS=45,s.COMMENTS=46,s.prototype.channelNames=["DEFAULT_TOKEN_CHANNEL","HIDDEN"],s.prototype.modeNames=["DEFAULT_MODE"],s.prototype.literalNames=[null,"'programa'","'real'","'vazio'","'logico'","'cadeia'","'inteiro'","'caractere'","'escolha'","'caso'","'contrario'","'const'","'funcao'","'retorne'","'para'","'pare'","'faca'","'enquanto'","'se'","'senao'","'falso'","'verdadeiro'","'&'","'('","')'","'['","']'","'{'","'}'","','",null,null,null,null,null,null,"':'"],s.prototype.symbolicNames=[null,"RK_PROGRAM","RK_REAL","RK_VOID","RK_BOOLEAN","RK_STRING","RK_INTEGER","RK_CHARACTER","RK_SWITCH","RK_CASE","RK_DEFAULT","RK_CONST","RK_FUNCTION","RK_RETURN","RK_FOR","RK_BREAK","RK_DO","RK_WHILE","RK_IF","RK_ELSE","RK_FALSE","RK_TRUE","RK_REFERENCE","OPEN_PARENTHESIS","CLOSE_PARENTHESIS","OPEN_BRACE","CLOSE_BRACE","OPEN_CURLY","CLOSE_CURLY","COMMA","EQUAL","SUM_OP","MULTI_OP","AND_OPERATOR","OR_OPERATOR","RELATIONAL_OPERATOR","COLON","NOT_OPERATOR","ID","LIB_ID","INTEGER","REAL","STRING","CHARACTER","WHITESPACE","EOS","COMMENTS"],s.prototype.ruleNames=["RK_PROGRAM","RK_REAL","RK_VOID","RK_BOOLEAN","RK_STRING","RK_INTEGER","RK_CHARACTER","RK_SWITCH","RK_CASE","RK_DEFAULT","RK_CONST","RK_FUNCTION","RK_RETURN","RK_FOR","RK_BREAK","RK_DO","RK_WHILE","RK_IF","RK_ELSE","RK_FALSE","RK_TRUE","RK_LOGICAL_NOT","RK_LOGICAL_AND","RK_LOGICAL_OR","RK_REFERENCE","OPEN_PARENTHESIS","CLOSE_PARENTHESIS","OPEN_BRACE","CLOSE_BRACE","OPEN_CURLY","CLOSE_CURLY","COMMA","EQUAL","SUM_OP","MULTI_OP","AND_OPERATOR","OR_OPERATOR","RELATIONAL_OPERATOR","COLON","NOT_OPERATOR","ID","LIB_ID","INTEGER","REAL","ExponentPart","STRING","STRING_CHARACTER","CHARACTER","WHITESPACE","SEMICOLON","EOS","HEX_DIGIT","OCTAL_DIGIT","ESC_SEQ","ESC_OCTAL","ESC_UNICODE","COMMENTS"],s.prototype.grammarFileName="ivprog.g4",t.ivprog=s},function(e,t,n){e.exports={ivprog:n(0).ivprog}},function(e,t){e.exports=n(24)}])},function(e){e.exports=JSON.parse('{"version":"2020_01_21 15_00"}')},,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.Type=class{constructor(e,t){this.value=e,this.ord=t}stringInfo(){return[{type:this.value,dim:0}]}isCompatible(e){return this.value===e.value&&this.ord===e.ord}}},function(e,t){e.exports={pt:{test_case_success:"<div class='assessment-div-detail' onClick='ivprogCore.openAssessmentDetail(event)' data-page=\"$1\"><span>Caso de teste $0</span>: OK</div>",test_case_duration:"Levou $0ms",test_suite_grade:"A sua solução alcançou $0% da nota.",awaiting_input_message:"O seu programa está em execução e aguardando uma entrada! Digite algo e pressione ENTER...","assessment-empty-expected-tooltip":"A saída gerada foi além do esperado","assessment-empty-generated-tooltip":"O programa não gerou saídas suficientes",testcase_autogen_unused_input:"O caso de teste $0 possui mais entradas do que as leituras feitas no programa.",testcase_autogen_empty:"O caso de teste $0 não gerou qualquer saída.",success_execution:"Programa executado com sucesso!",aborted_execution:"A execução do programa foi interrompida!",unexpected_execution_error:"Erro inesperado durante a execução do programa."},en:{test_case_success:"<div class='assessment-div-detail' onClick='ivprogCore.openAssessmentDetail(event)' data-page=\"$1\"><span>Test case $0</span>: OK</div>",test_case_duration:"Took $0ms",test_suite_grade:"Your solution scored $0% of the grade.",awaiting_input_message:"Your program is running and awaiting for an input. Type something and press ENTER…","assessment-empty-expected-tooltip":"The generated output was beyond the amount expected","assessment-empty-generated-tooltip":"The program did not generate enough outputs",testcase_autogen_unused_input:"The test case $0 has more inputs than output than the number of reads present in the algorithm.",testcase_autogen_empty:"The test case $0 did not generate any output.",success_execution:"Program executed successfully!",aborted_execution:"Program execution was aborted!",unexpected_execution_error:"Unexpected error during program execution."},es:{test_case_success:" ",test_case_duration:" ",test_suite_grade:" ",awaiting_input_message:" ","assessment-empty-expected-tooltip":" ","assessment-empty-generated-tooltip":" ",testcase_autogen_unused_input:" ",testcase_autogen_empty:" ",success_execution:"",aborted_execution:"",unexpected_execution_error:""}}},function(e,t){e.exports={pt:{function:"funcao",btn_clear:"Limpar",btn_function:"Função",btn_arithmetic_plus:"Adição",btn_arithmetic_minus:"Subtração",btn_arithmetic_multiplication:"Multiplicação",btn_arithmetic_division:"Divisão",btn_arithmetic_module:"Módulo",btn_break:"Pare",btn_case:"Caso",start:"inicio",type_void:"vazio",type_integer:"inteiro",logic_operator_and:"E",logic_operator_or:"OU",logic_operator_not:"nao",type_real:"real",program:"programa",type_text:"cadeia",textvar_default_value:"texto",type_boolean:"logico",logic_value_true:"verdadeiro",logic_value_false:"falso",variable:"Variável",command:"Comando",new_parameter:"parametro",new_variable:"variavel",new_global:"global",new_function:"nova_funcao",matrix:"matriz",vector:"vetor",text_comment_start:"Comentário inicial da função...",text_comment_main:"Esta é a função principal...",text_read_var:"Entrada/Leitura de dados",text_write_var:"Saída/Escrita de dados",text_command_read:"leia",text_command_write:"escreva",text_return:"devolva",text_btn_return:"Devolver",text_comment:"Comentário",string_join_or:"ou",matrix_info_string:"matriz de $0",vector_info_string:"vetor de $0",text_attribution:"Atribuição",text_if:"se",text_break:"pare",text_else:"senao",text_for:"repita_para",text_code_while:"repita_enquanto",text_code_do:"repita",text_code_do_until:"ate_que",text_command_do:"repita",text_command_while:"repita enquanto",text_command_do_until:"até que",text_code_switch:"escolha",text_code_case:"caso",text_config_programming:"Programação",text_config_programming_both:"Visual e textual",text_config_programming_textual:"Textual",text_config_programming_visual:"Visual",text_logic_expression:"Lógicos",text_arithmetic_expression:"Aritméticos",text_iftrue:"Se verdadeiro então",text_message_error_activity_file:"Aconteceu um erro ao processar a atividade. <br> Recarregue a página para tentar novamente.",text_message_error_activity_reload:"Recarregar",text_repeatNtimes:"Repita N vezes",text_receives:"recebe",text_whiletrue:"Enquanto verdadeiro",text_dowhiletrue:"Repita até que verdadeiro",text_switch:"Escolha",text_functioncall:"Chamada de função",text_value:"Valor",text_operator:"Operador",text_parentheses:"Parênteses",text_change:"Alterar",text_teacher_algorithm:"Algoritmo",text_teacher_algorithm_include:"Incluir o algoritmo abaixo no exercício",text_teacher_test_case:"Casos de teste",text_teacher_config:"Configurações",text_teacher_data_types:"Tipos de dados",text_teacher_commands:"Comandos",text_teacher_functions:"Funções",text_teacher_create_functions:"Criar novas funções",text_teacher_create_movement_functions:"Movimentar funções",text_teacher_test_case_input:"Entrada",text_teacher_test_case_output:"Saída",text_teacher_test_case_actions:"Ações",text_teacher_test_case_add:"Adicionar caso de teste",text_header_ivprog_functions:"Funções do iVProg",text_menu_functions_math:"Matemática",text_menu_functions_text:"Texto",text_menu_functions_array:"Arranjo",text_menu_functions_conversion:"Conversão",text_no_variable:"Nenhuma variável declarada",text_no_variable_instruction:"Antes de utilizar uma variável, é necessário criá-la",text_ivprog_description:"Programação Visual interativa na Internet",tooltip_visual:"Programação visual",tooltip_textual:"Programação textual",tooltip_upload:"Upload de código fonte",tooltip_download:"Download do código fonte",tooltip_undo:"Desfazer",tooltip_redo:"Refazer",tooltip_run:"Executar o programa",tooltip_evaluate:"Avaliar o programa",tooltip_help:"Ajuda",tooltip_add_global:"Adicionar variável global",tooltip_hide_function:"Ocultar os elementos da função",var_menu_select_var:"Selecione uma variável",var_menu_select_all:"Selecione",var_menu_select_function:"Selecione uma função",expression_menu_select:"Construir uma expressão lógica",inform_valid_content:"Informe o conteúdo!",inform_valid_expression:"Construa uma expressão lógica!",tooltip_terminal_clear:"Limpa o terminal removendo todos os textos já escritos e os pendentes.",tooltip_terminal_show:"Exibe o terminal caso esteja escondido",tooltip_terminal_hide:"Esconde o terminal caso não esteja escondido",text_ivprog_version:"Versão",text_teacher_filter:"Filtro",text_teacher_filter_active:"Ativado",text_teacher_filter_help:"Ao ativar o filtro, as modificações do iVProg estarão bloqueadas.",text_join_assessment_outputs:" ; ","assessment-detail-time-label":"Duração","assessment-detail-grade-label":"Nota","assessment-detail-input-label":"Entradas","assessment-detail-output-label":"Saídas","assessment-detail-expected-label":"Esperava","assessment-detail-generated-label":"Gerou","assessment-detail-result-label":"Resultado","assessment-detail-title":"Caso de Teste $0",text_teacher_generate_outputs:"Gerar saídas",text_teacher_generate_outputs_algorithm:"Antes de gerar as saídas, elabore um algoritmo!",text_code_for_from:"de",text_code_for_to:"ate",text_code_for_pass:"passo",text_for_from:"de",text_for_to:"até",text_for_pass:"passo",text_relational_expression:"Relacionais",initial_program_code:"programa {\\n\\n\\t\\tfuncao vazio inicio () {\\n\\t\\t\\t// Inicie seu codigo aqui!\\n\\t\\t}\\n}"},en:{function:"function",btn_clear:"Clean",btn_function:"Function",btn_arithmetic_plus:"Addition",btn_arithmetic_minus:"Subtraction",btn_arithmetic_multiplication:"Multiplication",btn_arithmetic_division:"Division",btn_arithmetic_module:"Remainder",btn_break:"break",btn_case:"Case",start:"main",type_void:"void",type_integer:"int",logic_operator_and:"AND",logic_operator_or:"OR",logic_operator_not:"not",type_real:"real",program:"program",type_text:"string",textvar_default_value:"text",type_boolean:"bool",logic_value_true:"true",logic_value_false:"false",variable:"Variable",command:"Command",new_parameter:"parameter",new_variable:"variable",new_global:"global",new_function:"new_function",matrix:"matrix",vector:"vector",text_comment_start:"Function initial comment",text_comment_main:"This is the main funcion",text_read_var:"Input/Read data",text_write_var:"Output/Write data",text_command_read:"read",text_command_write:"write",text_return:"return",text_btn_return:"Return",text_comment:"Comment",string_join_or:"or",matrix_info_string:"matrix of $0",vector_info_string:"vector of $0",text_attribution:"Assignment",text_if:"if",text_break:"break",text_else:"else",text_for:"repeat_for",text_code_while:"repeat_while",text_code_do:"repeat",text_code_do_until:"until",text_command_do:"repeat",text_command_while:"repeat while",text_command_do_until:"until",text_code_switch:"switch",text_code_case:"case",text_config_programming:"Programming",text_config_programming_both:"Visual & Textual",text_config_programming_textual:"Textual",text_config_programming_visual:"Visual",text_logic_expression:"Logic",text_arithmetic_expression:"Arithmetics",text_iftrue:"If true then",text_message_error_activity_file:"There was an error processing the activity.<br> Reload the page to try again.",text_message_error_activity_reload:"Reload",text_repeatNtimes:"Repeat N times",text_receives:"receives",text_whiletrue:"While true",text_dowhiletrue:"Repeat until true",text_switch:"Switch",text_functioncall:"Function call",text_value:"Value",text_operator:"Operator",text_parentheses:"Parentheses",text_change:"Modify",text_teacher_algorithm:"Algorithm",text_teacher_algorithm_include:"Include the algorithm below in the activity",text_teacher_test_case:"Test cases",text_teacher_config:"Configurations",text_teacher_data_types:"Data types",text_teacher_commands:"Commands",text_teacher_functions:"Functions",text_teacher_create_functions:"Create new functions",text_teacher_create_movement_functions:"Move functions",text_teacher_test_case_input:"Input",text_teacher_test_case_output:"Output",text_teacher_test_case_actions:"Actions",text_teacher_test_case_add:"Add test case",text_header_ivprog_functions:"iVProg Functions",text_menu_functions_math:"Math",text_menu_functions_text:"Text",text_menu_functions_array:"Array",text_menu_functions_conversion:"Conversion",text_no_variable:"No variable declared",text_no_variable_instruction:"Before using a variable, you need to create it",text_ivprog_description:"Interactive and Visual Programming on the Internet",tooltip_visual:"Visual programming",tooltip_textual:"Textual programming",tooltip_upload:"Upload source code",tooltip_download:"Download source code",tooltip_undo:"Undo",tooltip_redo:"Redo",tooltip_run:"Run the program",tooltip_evaluate:"Evaluate the program",tooltip_help:"Help",tooltip_add_global:"Add a global variable",tooltip_hide_function:"Hide function elements",var_menu_select_var:"Select a variable",var_menu_select_all:"Select",var_menu_select_function:"Select a function",expression_menu_select:"Construct a logic expression",inform_valid_content:"Provide some data",inform_valid_expression:"Construct a logic expression",tooltip_terminal_clear:"Clears the terminal by removing all wrriten and pending text.",tooltip_terminal_show:"Shows the terminal if it is hidden",tooltip_terminal_hide:"Hides the terminal if it is not on display",text_ivprog_version:"Version",text_teacher_filter:"Filter",text_teacher_filter_active:"Activated",text_teacher_filter_help:"By activating the filter modifications in iVProg will be blocked",text_join_assessment_outputs:" ; ","assessment-detail-time-label":"Duration","assessment-detail-grade-label":"Grade","assessment-detail-input-label":"Inputs","assessment-detail-output-label":"Outputs","assessment-detail-expected-label":"Expected","assessment-detail-generated-label":"Generated","assessment-detail-result-label":"Result","assessment-detail-title":"Test Case $0",text_teacher_generate_outputs:"Generate outputs",text_teacher_generate_outputs_algorithm:"Before generating the outputs you need to create an algorithm",text_code_for_from:"from",text_code_for_to:"to",text_code_for_pass:"pass",text_for_from:"from",text_for_to:"to",text_for_pass:"pass",text_relational_expression:"Relational",initial_program_code:"program {\\n\\n\\t\\tfunction void main () {\\n\\t\\t\\t// Start your code here!\\n\\t\\t}\\n}"},es:{function:"funccion",btn_clear:"",btn_function:"",btn_arithmetic_plus:"",btn_arithmetic_minus:"",btn_arithmetic_multiplication:"",btn_arithmetic_division:"",btn_arithmetic_module:"",btn_break:"",btn_case:"",start:"",type_void:"",type_integer:"",logic_operator_and:"",logic_operator_or:"",logic_operator_not:"",type_real:"",program:"",type_text:"",textvar_default_value:"",type_boolean:"",logic_value_true:"",logic_value_false:"",variable:"",command:"",new_parameter:"",new_variable:"",new_global:"",new_function:"",matrix:"",vector:"",text_comment_start:"",text_comment_main:"",text_read_var:"",text_write_var:"",text_command_read:"",text_command_write:"",text_return:"",text_btn_return:"",text_comment:"",string_join_or:"",matrix_info_string:"",vector_info_string:"",text_attribution:"",text_if:"",text_break:"",text_else:"",text_for:"",text_code_while:"",text_code_do:"",text_code_do_until:"",text_command_do:"",text_command_while:"",text_command_do_until:"",text_code_switch:"",text_code_case:"",text_config_programming:"",text_config_programming_both:"",text_config_programming_textual:"",text_config_programming_visual:"",text_logic_expression:"",text_arithmetic_expression:"",text_iftrue:"",text_message_error_activity_file:"",text_message_error_activity_reload:"",text_repeatNtimes:"",text_receives:"",text_whiletrue:"",text_dowhiletrue:"",text_switch:"",text_functioncall:"",text_value:"",text_operator:"",text_parentheses:"",text_change:"",text_teacher_algorithm:"",text_teacher_algorithm_include:"",text_teacher_test_case:"",text_teacher_config:"",text_teacher_data_types:"",text_teacher_commands:"",text_teacher_functions:"",text_teacher_create_functions:"",text_teacher_create_movement_functions:"",text_teacher_test_case_input:"",text_teacher_test_case_output:"",text_teacher_test_case_actions:"",text_teacher_test_case_add:"",text_header_ivprog_functions:"",text_menu_functions_math:"",text_menu_functions_text:"",text_menu_functions_array:"",text_menu_functions_conversion:"",text_no_variable:"",text_no_variable_instruction:"",text_ivprog_description:"",tooltip_visual:"",tooltip_textual:"",tooltip_upload:"",tooltip_download:"",tooltip_undo:"",tooltip_redo:"",tooltip_run:"",tooltip_evaluate:"",tooltip_help:"",tooltip_add_global:"",tooltip_hide_function:"",var_menu_select_var:"",var_menu_select_all:"",var_menu_select_function:"",expression_menu_select:"",inform_valid_content:"",inform_valid_expression:"",tooltip_terminal_clear:"",tooltip_terminal_show:"",tooltip_terminal_hide:"",text_ivprog_version:"",text_teacher_filter:"",text_teacher_filter_active:"",text_teacher_filter_help:"",text_join_assessment_outputs:"","assessment-detail-time-label":"","assessment-detail-grade-label":"","assessment-detail-input-label":"","assessment-detail-output-label":"","assessment-detail-expected-label":"","assessment-detail-generated-label":"","assessment-detail-result-label":"","assessment-detail-title":"",text_teacher_generate_outputs:"",text_teacher_generate_outputs_algorithm:"",text_code_for_from:"",text_code_for_to:"",text_code_for_pass:"",text_for_from:"",text_for_to:"",text_for_pass:"",text_relational_expression:"",initial_program_code:""}}},function(e,t){e.exports={pt:{token_missing_one:"Erro de sintaxe: Espera-se $0, mas encontrou-se $1 na linha:$2, coluna:$3",token_missing_two:"Erro de sintaxe: Esperava-se $0 ou $1 mas encontrou-se $2 na liha:$3, coluna: $4",eos_missing:"Falta uma nova linha ou ; na linha: $0, coluna: $1",invalid_type:"$0 na linha: $1, coluna: $2 é um tipo inválido. Os tipos válidos são: $3",invalid_array_dimension:"A dimensão inválida na linha: $0, coluna: $1. Insira um $2 ou identificador válido do mesmo tipo.",invalid_array_size:"O tamnho do vetor/matriz excede o máximo de 2 na linha $0",extra_lines:"Nenhum texto é permitido após '}' em 'programa {...}'",invalid_main_return:"A função $0 declarada na linha $2 deve retornar $1.",invalid_var_declaration:"Erro na linha $0: variáveis só podem ser declaradas no corpo principal da função e nas primeiras linhas, antes de qualquer comando.",invalid_break_command:"Erro na linha $0. O comando $1 não pode ser usado fora de uma estrutura de repetição ou 'escolha...caso'",invalid_terminal:"Não é possível utilizar $0 na expressão da linha: $1, coluna: $2. Tente um valor númerico, variável ou chamada de função.",const_not_init:"Erro na linha: $0, coluna: $1. Uma variável declarada como const deve ser inicializada",id_missing:"Esperava-se um identificador, mas encontrou-se $0 na linha: $1, coluna: $2",invalid_id_format:"$0 na linha: $1, coluna: $2 não é um identificador válido. O símbolo '.' não é permitido neste contexto.",main_missing:"A função principal não foi encontrada",invalid_global_var:"Erro crítico: Chamada inválida da função initGlobal fora do contexto BASE",not_implemented:"Erro interno crítico: A função definida pelo sistema $0 não foi implementada.",function_missing:"A função $0 não foi encontrada",function_missing_full:"A função $0 na linha: $1, coluna: $2 não foi encontrada",invalid_parameters_size_full:"Erro na linha $0: a quantidade de parâmetros fornecidos à função $1 está incorreta. Esperava-se $2, encontrou-se $3.",invalid_parameters_size:"A quantidade de parâmetros fornecidos à função $0 está incorreta. Esperava-se $1, encontrou-se $2",invalid_ref_full:"A expressão $0 fornecida como parâmetro para a função $1 na linha $2 não é válida para esta função. Use uma variável ou posição de vetor.",invalid_ref:"A expressão $0 fornecida como parâmetro para a função $1 não é válida para esta função. Use uma variável ou posição de vetor.",invalid_parameter_type_full:"A expressão $0 fornecida como parâmetro para a função $1 na linha $2 não é compatível com o tipo esperado.",invalid_parameter_type:"A expressão $0 fornecida como parâmetro para a função $1 não é compatível com o tipo esperado.",unknown_command_full:"Erro interno crítico: comando desconhecido encontrado na linha $0",unknown_command:"Erro interno crítico: comando desconhecido encontrado!",loop_condition_type_full:"Erro na linha: $0, coluna $1: a condição $2 do laço de repetição deve ser do tipo lógico",loop_condition_type:"A condição $0 do laço de repetição deve ser do tipo lógico",endless_loop_full:"Possível laço infinito detectado no seu código. Verifique a linha $0",endless_loop:"Possível laço infinito detectado no seu código.",for_condition_type_full:"Erro na linha: $0, coluna $1: a condição de parada $2 do comando para(...) deve ser do tipo lógico",for_condition_type:"A condição de parada $0 do comando para(...) deve ser do tipo lógico",if_condition_type_full:"Erro na linha: $0, coluna $1: a condição $2 do comando se...senao deve ser do tipo lógico",if_condition_type:"A condição $0 do comando se...senao deve ser do tipo lógico",invalid_return_type_full:"Erro na linha $0: a expressão não produz um tipo compatível com a função $1. Tipo esperado: $2.",invalid_return_type:"A expressão não produz um tipo compatível com a função $0. Tipo esperado: $1.",invalid_void_return_full:"Erro na linha $0: a função $1 não pode retornar uma expressão vazia, use uma espressão do tipo $2",invalid_void_return:"A função $0 não pode retornar uma expressão vazia, use uma espressão do tipo $1",unexpected_break_command_full:"Erro interno crítico: comando pare encontrado fora do contexto de um laço/escolha..caso na linha $0",unexpected_break_command:"Erro interno crítico: comando pare encontrado fora do contexto de um laço/escolha..caso",invalid_dimension:"As dimensões de um vetor/matriz devem ser do tipo inteiro",void_in_expression_full:"Erro na linha: $0, coluna: $1: a função $2 não pode ser utilizada em uma expressão pois seu tipo de retorno é vazio",void_in_expression:"A função $0 não pode ser utilizada em uma expressão pois seu tipo de retorno é vazio",invalid_array_access_full:"Identificador $0 na linha: $1, coluna: $2 não se refere a um vetor/matriz válido",invalid_array_access:"Identificador $0 não se refere a um vetor/matriz válido",invalid_matrix_access_full:"Identificador $0 na linha: $1, coluna: $2 não se refere a uma matriz válida",invalid_matrix_access:"Identificador $0 não se refere a uma matriz válida",matrix_column_outbounds_full:"Erro na linha $0: número de colunas $1 é inválido para a matriz $2 que possui $3 colunas",matrix_column_outbounds:"Número de colunas $0 é inválido para a matriz $1 que possui $2 colunas",matrix_line_outbounds_full:"Erro na linha $0: número de linhas $1 é inválido para a matriz $2 que possui $3 linhas",matrix_line_outbounds:"Número de linhas $0 é inválido para a matriz $1 que possui $2 linhas",vector_line_outbounds_full:"Erro na linha $0: O número de elementos $1 é inválido para a vetor $2 que possui $3 elementos.",vector_line_outbounds:"O número de elementos $1 é inválido para a vetor $2 que possui $3 elementos.",vector_not_matrix_full:"Erro na linha $0: $1 não é uma matriz",vector_not_matrix:"$0 não é uma matriz",invalid_infix_op_full:"Erro na linha $0: a expressão $1 é inválida, pois o operador $2 não pode ser aplicado aos tipos $3 e $4",invalid_infix_op:"A expressão $0 é inválida, pois o operador $1 não pode ser aplicado aos tipos $2 e $3",invalid_unary_op_full:"Erro na linha $0: a expressão $1 é inválida, pois o operador $2 não pode ser aplicado ao tipo $3",invalid_unary_op:"A expressão $0 é inválida, pois o operador $1 não pode ser aplicado ao tipo $2",unknown_op:"Erro interno crítico: Operação $0 desconhecida",duplicate_function:"A função $0 na linha: $1, coluna: $2 já foi definida anteriormente.",duplicate_variable:"A variável $0 na linha: $1, coluna: $2 já foi declarada anteriormente.",main_parameters:"A função inicio não pode ter parâmetros.",symbol_not_found_full:"A variável $0 na linha: $1, coluna: $2 não foi declarada",symbol_not_found:"A variável $0 não foi declarada",array_dimension_not_int_full:"As dimensões do arranjo (vetor ou matriz) na linha $0 devem ser do tipo inteiro.",array_dimension_not_int:"As dimensões de um arranjo (vetor ou matriz) devem ser do tipo inteiro.",array_dimension_not_positive_full:"As dimensões do arranjo (vetor ou matriz) na linha $0 devem ser valores positivos.",array_dimension_not_positive:"As dimensões de um arranjo (vetor ou matriz) devem ser valores positivos.",incompatible_types_full:"Era esperado um $0 mas a expressão $1 na linha $2 resulta em $3.",incompatible_types:"Era esperado um $0 mas a expressão $1 resulta em $2.",incompatible_types_array_full:"A expressão $0 na linha $2 é incompatível com o tipo $1.",incompatible_types_array:"A expressão $0 é incompatível com o tipo $1.",invalid_case_type_full:"O caso $0 na linha $1 é incompatível com o tipo $2.",invalid_case_type:"O caso $0 é incompatível com o tipo $1.",function_no_return:"A função $0 não possui um comando de devolução acessível. Toda função deve ter ao menos um comando 'devolva' no seu corpo principal.",invalid_array_literal_type_full:"Erro na linha $0: a expressão $1 não resulta em um tipo compatível.",invalid_array_literal_type:"A expressão $0 não resulta em um tipo compatível.",invalid_array_literal_line_full:"Erro na linha $0: esperava-se $1 linhas mas encontrou $2.",invalid_array_literal_line:"Esperava-se $0 linhas mas encontrou $1.",invalid_array_literal_column_full:"Erro na linha $0: esperava-se $1 colunas mas encontrou $2.",invalid_array_literal_column:"Esperava-se $0 colunas mas encontrou $1.",exceeded_input_request:"A quantidade de leituras requisitadas execedeu a quantidade de entradas disponíveis.",test_case_few_reads:"Caso de teste $0 falhou: ainda restam entradas!",test_case_failed:"<div class='assessment-div-detail' onClick='ivprogCore.openAssessmentDetail(event)' data-page=\"$1\"> <span>Caso de teste $0 não executou com sucesso.</span></div>",test_case_failed_exception:"<div class='assessment-div-detail' onClick='ivprogCore.openAssessmentDetail(event)' data-page=\"$2\"> <span>Caso de teste $0 falhou</span>: $1",test_case_exception:"Ocorreu uma exceção no caso de teste $0: $1",invalid_type_conversion:"O valor $0 não pode ser convertido para o tipo $1",invalid_read_type:"Erro na linha $0: A entrada \"$1\" não é do tipo $2, que é o tipo da variável <span class='ivprog-error-varname'>$3</span>.",invalid_read_type_array:"Erro na linha $0: A entrada \"$1\" não é do tipo $2, que é o tipo aceito pela variável <span class='ivprog-error-varname'>$3</span> que é um $4.",inform_valid_identifier:"Informe um nome válido! O nome não pode ser uma palavra reservadas e deve começar com letras ou _ e conter apenas letras, números e _.",inform_valid_global_duplicated:"Já existe uma variável global com o nome <span class='ivprog-error-varname'>$0</span>, você precisa de nomes distintos.",inform_valid_variable_duplicated:"Já existe uma variável com o nome <span class='ivprog-error-varname'>$0</span> na função <span class='ivprog-error-varname'>$1</span>, você precisa de nomes distintos.",inform_valid_function_duplicated:"Já existe uma função com o nome <span class='ivprog-error-varname'>$0</span>, você precisa de nomes distintos.",inform_valid_param_duplicated:"Já existe um parâmetro com o nome <span class='ivprog-error-varname'>$0</span> na função <span class='ivprog-error-varname'>$1</span>, você precisa de nomes distintos.",invalid_character:"O caractere $0 na linha $1 não pode ser utilizado neste contexto.",annonymous_array_literal:"Erro na linha $0: a notação de vetor/matriz só permitida durante a inicialização de uma variável desse tipo. Ex: inteiro vec[3] ← {1,2,3}.",invalid_matrix_literal_line:"A expressão $0 na linha $1 não possui um número de elementos igual a linha anterior. Todas as linhas de uma matriz devem ter a mesma quantidade de elementos.",cannot_infer_matrix_line:"Não é possível inferir o número de linhas da matriz $0 na linha $1. É necessário que ela seja inicializada ou que o valor seja informado de forma explícita.",cannot_infer_matrix_column:"Não é possível inferir o número de colunas da matriz $0 na linha $1. É necessário que ela seja inicializada ou que o valor seja informado de forma explícita.",cannot_infer_vector_size:"Não é possível inferir o número de elementos do vetor $0 na linha $1. É necessário que ele seja inicializado ou que o valor seja informado de forma explícita",matrix_to_vector_literal_attr:"Erro na linha $0: A expressão $1 representa uma matriz e não pode ser atribuída ao vetor $2.",vector_to_matrix_literal_attr:"Erro na linha $0: A expressão $1 representa um vetor e não pode ser atribuído a matriz $2.",invalid_const_ref_full:"A variável $0 fornecida como parâmetro para a função $1 na linha $2 é uma constante e não pode ser usada neste contexto. Use uma variável ou posição de vetor.",invalid_const_ref:"A variável $0 fornecida como parâmetro para a função $1 é uma constante e não pode ser usada neste contexto. Use uma variável ou posição de vetor.",invalid_const_assignment_full:"Erro na linha $0: $1 é uma constante e portanto não pode ter seu valor alterado",invalid_const_assignment:"$0 é uma constante e portanto não pode ter seu valor alterado",array_init_not_literal:"Erro na linha $0: Vetor/Matriz só pode ser inicializado por literal. Ex: real vetor[] <- {1,2,3}",array_exceeds_2d:"Erro na linha $0: O número máximo de dimensões que um arranjo pode ter é 2. Elemento de 3 ou mais dimensões encontrado!",invalid_matrix_id_dimension:"Erro na linha $0: Você deve definir todas as dimensões da matriz quando uma delas é definida por uma variável! Ex: real mat1[var][5], mat2[5][var]",invalid_vector_init:"Erro na linha $0: Não se pode inicializar um vetor que teve seu tamanho declarado utilizando uma variável! Utilize uma atribuição de vetores ou use um laço de repetição.",invalid_matrix_init:"Erro na linha $0: Não se pode inicializar uma matrix que teve ao menos uma das suas dimensões declaradas utilizando uma variável! Utilize uma atribuição de matrizes ou use um laço de repetição.",invalid_vector_assignment_full:"Erro na linha $0: Só se pode atribuir um vetor a outro desde que eles comportem o mesmo número de elementos. $1 comporta $2 e $3 comporta $4!",invalid_vector_assignment:"Só se pode atribuir um vetor a outro desde que eles comportem o mesmo número de elementos. $0 comporta $1 e $2 comporta $3!",invalid_matrix_assignment_full:"Erro na linha $0: Só se pode atribuir uma matriz a outra desde que ambas possuam dimensões de mesmo tamanho. $1 tem $2 linhas e $3 colunas, enquanto $4 possui $5 linhas e $6 colunas!",invalid_matrix_assignment:"Só se pode atribuir uma matriz a outra desde que ambas possuam dimensões de mesmo tamanho. $0 tem $1 linhas e $2 colunas, enquanto $3 possui $4 linhas e $5 colunas!",matrix_to_vector_attr:"Erro na linha $0: $1 representa uma matriz e não pode ser atribuída ao vetor $2.",vector_to_matrix_attr:"Erro na linha $0: $1 representa um vetor e não pode ser atribuído a matriz $2.",invalid_matrix_index_assign_full:"Erro na linha $0: A posição $1 da matriz $2 aceita apenas vetores de tamanho $3, mas $4 tem tamanho $5",invalid_matrix_index_assign:"A linha $0 da matriz $1 aceita apenas vetores de tamanho $2, mas $3 tem tamanho $4",invalid_number_elements_vector:"Esperava-se por $0 elementos na linha $1 mas a expressão $2 possui $3 elementos.",invalid_number_lines_matrix:"Esperava-se por uma matriz com $0 linhas na linha $1 mas a expressão $2 possui $3 linhas",divsion_by_zero_full:"Erro na linha $0: A expressão $1 resulta em uma divisão por 0.",divsion_by_zero:"A expressão $0 resulta em uma divisão por 0.",undefined_tanget_value:"Erro na linha $0: A tangente de $1° não é indefinida.",negative_log_value:"Erro na linha $0: Não se pode calcular o log de um valor negativo.",invalid_string_index:"Erro na linha $0 durante a execução da função $1: $2 é um índice inválido para a cadeia de texto $3. Os valores válidos vão de 0 à $4",negative_sqrt_value:"Erro na linha $0: Não é permitido calcular a raiz quadrada de um número negativo.",exceeded_recursive_calls:"Erro na execução da linha $0: Número de chamadas recursivas execedeu o limite máximo definido!",invalid_for_variable:"Erro na linha $0: A variavel $1 utilizada no comando repita_para deve ser do tipo inteiro.",invalid_for_from:"Erro na linha $0: O valor $1 passado para o parâmetro 'de' do comando repita_para deve ser do tipo inteiro.",invalid_for_to:"Erro na linha $0: O valor $1 passado para o parâmetro 'para' do comando repita_para deve ser do tipo inteiro.",invalid_for_pass:"Erro na linha $0: O valor $1 passado para o parâmetro 'passo' do comando repita_para deve ser do tipo inteiro.",exceed_max_instructions:"Número de instruções excedeu o limite definido. Certifique-se que seu código não possui laços infinitos ou muitas chamadas de funções recursivas."},en:{token_missing_one:"Syntax error: Expected $0 but found $1 at line:$2, column:$3",token_missing_two:"Syntax error: Expected $0 or $1 but found $2 at line:$3, column: $4",eos_missing:"A new line or a ‘;’ is missing at line: $0, column: $1",invalid_type:"$0 at line: $1, column: $2 is a invalid type. The valid types are: $3",invalid_array_dimension:"Invalid dimension at line: $0, column: $1. Insert a $2 or a valid identifier of the same type.",invalid_array_size:"The array at line $0 exceeds the maximum size of 2.",extra_lines:"No text is allowed after '}' in 'program { … }'",invalid_main_return:"The function $0 declared at line $2 must return $1.",invalid_var_declaration:"Error at line $0: Variables can only be declared in the main body of a function and at the first lines, before any command.",invalid_break_command:"Error at line $0. The command $1 cannot be used outside a loop command or ‘switch ...case’ structure.",invalid_terminal:"It is not possible to use $0 in the expression at line: $1, column: $2. Try a numeric value, variable or function call.",const_not_init:"Error at line: $0, column: $1. A variable declared as const must be initialized.",id_missing:"Expected an identifier but found $0 at line: $1, column: $2.",invalid_id_format:"$0 at line: $1, column: $2 is not a valid identifier. The symbol '.' is not permitted in this context.",main_missing:"The main function was not found. You need to declare a function of return type void named main.",invalid_global_var:"Critical Error: Invalid call of the function IVProgProcessor.initGlobal outside the BASE context.",not_implemented:"Critial internal error: The system defined function $0 was not found.",function_missing:"The function $0 was not found.",function_missing_full:"The function $0 at line: $1, column: $2 was not found.",invalid_parameters_size_full:"Error at line $0: The number of parameters provided to the function $1 is incorrect. It expected $2 but found $3.",invalid_parameters_size:"The number of parameters provided to the function $0 is incorrect. It expected $1 but found $2.",invalid_ref_full:"The expression $0 provided as a parameter to the function $1 at line $2 is not valid in this context. Use a variable or a position of a vector.",invalid_ref:"The expression $0 provided as a parameter to the function $1 is not valid in this context. Use a variable or a position of a vector.",invalid_parameter_type_full:"The expression $0 provided as a parameter to the function $1 at line $2 is not of the expected type.",invalid_parameter_type:"The expression $0 provided as a parameter to the function $1 is not of the expected type.",unknown_command_full:"Internal error: an unknown command found at line $0.",unknown_command:"Internal error: an unknown command found.",loop_condition_type_full:"Error at line: $0, column $1: the condition $2 of the loop must be of type bool (true or false).",loop_condition_type:"The condition $0 of the loop must be of type bool (true or false).",endless_loop_full:"Possible infinite loop detected in your code. Check line $0.",endless_loop:"Possible infinite loop detected in your code.",for_condition_type_full:"Erro na linha: $0, coluna $1: a condição de parada $2 do comando para(...) deve ser do tipo lógico",for_condition_type:"A condição de parada $0 do comando para(...) deve ser do tipo lógico",if_condition_type_full:"Error at line: $0, column $1: the condition $2 in the if … else command must result in a bool (true or false).",if_condition_type:"The condition $0 in the if … else command must result in a bool (true or false).",invalid_return_type_full:"Error at line $0: The expression doest not result in a type compatible with the function $1. Expected type: $2.",invalid_return_type:"The expression doest not result in a type compatible with the function $0. Expected type: $1.",invalid_void_return_full:"Error at line $0: The function $1 cannot return an empty expression, use an expression that results in a $2",invalid_void_return:"The function $0 cannot return an empty expression, use an expression that results in a $1",unexpected_break_command_full:"Critical error at line $0: a break command was found outside a valid context: loop or switch … case structure.",unexpected_break_command:"Critical error: a break command was found outside a valid context: loop or switch … case structure.",invalid_dimension:"Array (vector or matrix) dimensions must be of type int.",void_in_expression_full:"Error at line: $0, column: $1: The function $2 cannot be used inside an expression since its return type is void.",void_in_expression:"The function $0 cannot be used inside an expression since its return type is void.",invalid_array_access_full:"Identifier $0 at line: $1, column: $2 does not identify a valid vector or matrix.",invalid_array_access:"Identifier $0 does not identify a valid vector or matrix.",invalid_matrix_access_full:"Identifier $0 at line: $1, column: $2 does not identify a valid matrix.",invalid_matrix_access:"Identifier $0 does not identify a valid matrix.",matrix_column_outbounds_full:"Error at line $0: The number of columns $1 is invalid for the matrix $2 which has $3 columns.",matrix_column_outbounds:"The number of columns $0 is invalid for the matrix $1 which has $2 columns.",matrix_line_outbounds_full:"Error at line $0: The number of lines $1 is invalid for matrix $2 which has $3 lines.",matrix_line_outbounds:"The number of lines $0 is invalid for matrix $1 which has $2 lines.",vector_line_outbounds_full:"Error at line $0: The number of elements $1 is invalid for vector $2 which has $3 elements.",vector_line_outbounds:"Error at line $0: The number of elements $1 is invalid for vector $2 which has $3 elements.",vector_not_matrix_full:"Error at line $0: $1 is not a matrix.",vector_not_matrix:"$0 is not a matrix.",invalid_infix_op_full:"Error at line $0: The expression $1 is not valid because the operator $2 cannot be applied to the types $3 and $4.",invalid_infix_op:"The expression $0 is not valid because the operator $1 cannot be applied to the types $2 and $3.",invalid_unary_op_full:"Error at line $0: The expression $1 is not valid because the operator $2 cannot be applied to the type $3.",invalid_unary_op:"The expression $0 is not valid because the operator $1 cannot be applied to the type $2.",unknown_op:"Critical error: Unknown operator $0.",duplicate_function:"The function $0 at line: $1, column: $2 has already been declared.",duplicate_variable:"The variable $0 at line: $1, column: $2 has already been declared.",main_parameters:"The main function cannot have parameters.",symbol_not_found_full:"The variable $0 at line: $1, column: $2 has not been declared.",symbol_not_found:"The variable $0 has not been declared.",array_dimension_not_int_full:"The array (vector or matrix) dimensions at line $0 must be of type int.",array_dimension_not_int:"An array (vector or matrix) dimensions must be of type int.",array_dimension_not_positive_full:"The array (vector or matrix) dimensions at line $0 must be positive.",array_dimension_not_positive:"An array (vector or matrix) dimensions must be positive.",incompatible_types_full:"It expected $0 but the expression $1 at line $2 results in $3.",incompatible_types:"It expected $0 but the expression $1 results in $2.",incompatible_types_array_full:"The expression $0 at line $2 is not compatible with type $1.",incompatible_types_array:"The expression $0 is not compatible with type $1.",invalid_case_type_full:"The case expression $0 at line $1 is not compatible with type $2.",invalid_case_type:"The case expression $0 is not compatible with type $1.",function_no_return:"The function $0 does not have a reacheable return command. Every function must have at least one return command in its main body.",invalid_array_literal_type_full:"Error at line $0: the expression $1 does not result in a compatible type.",invalid_array_literal_type:"The expression $0 does not result in a compatible type.",invalid_array_literal_line_full:"Error at line $0: it expected $1 lines but found $2.",invalid_array_literal_line:"It expected $0 lines but found $1.",invalid_array_literal_column_full:"Error at line $0: it expected $1 column but found $2.",invalid_array_literal_column:"It expected $0 column but found $1.",exceeded_input_request:"The amount of reads requested exceeded the amount of inputs available.",test_case_few_reads:"Teste case $0 failed: there are available inputs remaining.",test_case_failed:"<div class='assessment-div-detail' onClick='ivprogCore.openAssessmentDetail(event)' data-page=\"$1\"> <span>Test case $0 did not executed successfully.</span></div>",test_case_failed_exception:"<div class='assessment-div-detail' onClick='ivprogCore.openAssessmentDetail(event)' data-page=\"$2\"> <span>Test case $0 failed</span>: $1",test_case_exception:"An exception has ocurred during the execution of test case $0: $1",invalid_type_conversion:"The value $0 cannot be converted to type $1.",invalid_read_type:"Error at line $0: The input \"$1\" is not of type $2 which is the type of the variable <span class='ivprog-error-varname'>$3</span>.",invalid_read_type_array:"Error at line $0: The input \"$1\" is not of type $2 which is the type accepted by the variable <span class='ivprog-error-varname'>$3</span> of type $4.",inform_valid_identifier:"Enter a valid identifier! The identifier cannot be a reserved word and it must begin with a letter or _, followed by numbers, letters and _ only.",inform_valid_global_duplicated:"A global variable named <span class='ivprog-error-varname'>$0</span> already exists, you need distinct names for each gloval variable.",inform_valid_variable_duplicated:"A variable named <span class='ivprog-error-varname'>$0</span> already exists, you need distinct names for each variable.",inform_valid_function_duplicated:"A function named <span class='ivprog-error-varname'>$0</span> already exists, you need distinct names for each function.",inform_valid_param_duplicated:"A parameter named <span class='ivprog-error-varname'>$0</span> already exists in function <span class='ivprog-error-varname'>$1</span>, you need distinc names for each parameter.",invalid_character:"The character $0 at line $1 cannot be used in this context.",annonymous_array_literal:"Error at line $0: the array notation is only permitted during initialization of an array variable. i. e.: int vec[3] ← {1, 2, 3}.",invalid_matrix_literal_line:"The expression $0 at line $1 does not have the same number of elements as the last line. All lines of a matrix must have the same number of elements.",cannot_infer_matrix_line:"It is not possible to infer the number of lines of matrix $0 at line $1. It must be initialized or have its lines explicitly declared.",cannot_infer_matrix_column:"It is not possible to infer the number of columns of matrix $0 at line $1. It must be initialized or have its columns explicitly declared.",cannot_infer_vector_size:"It is not possible to infer the number of elements of vector $0 at line $1. It must be initialized or have its size explicitly declard.",matrix_to_vector_literal_attr:"Error at line $0: The expression $1 represents a matrix and cannot be assigned to the vector $2.",vector_to_matrix_literal_attr:"Error at line $0: The expression $1 represents a vector and cannot be assigned to the matrix $2.",invalid_const_ref_full:"The variable $0 provided as a parameter to the function $1 at line $2 is a constant and cannot be used in this context. Use a non-constant variable or vector position.",invalid_const_ref:"The variable $0 provided as a parameter to the function $1 is a constant and cannot be used in this context. Use a non-constant variable or vector position.",invalid_const_assignment_full:"Error at line $0: $1 is a constant e therefore cannot have its value changed.",invalid_const_assignment:"$0 is a constant e therefore cannot have its value changed.",array_init_not_literal:"Error at line $0: An array (vector or matrix) can only be initialized by an array literal. i.e : real vector[] <- {1,2,3}",array_exceeds_2d:"Error at line $0: The maximum number of dimensions an array can have is 2. An element of 3 or dimensions was found.",invalid_matrix_id_dimension:"Error at line $0: You must define all dimensions of the matrix when one of them is defined by a variable! i.e: real mat1[var][5], mat2[5][var]",invalid_vector_init:"Error at line $0: You cannot initialize a vector when its size is defined by a variable. Use a vector assignment or loop command.",invalid_matrix_init:"Error at line $0: You cannot initialize a matrix when one of its dimensions is defined by a variable. Use a matrix assignment or loop command.",invalid_vector_assignment_full:"Error at line $0: You can only assign a vector to another when both have the same number of elements. $1 has $2 and $3 has $4 elements!",invalid_vector_assignment:"You can only assign a vector to another when both have the same number of elements. $0 has $1 and $2 has $3 elements!",invalid_matrix_assignment_full:"Error at line $0: You can only assign a matrix to another when both have dimensions of the same size. $1 has $2 lines e $3 columns while $4 has $5 lines and $6 columns!",invalid_matrix_assignment:"You can only assign a matrix to another when both have dimensions of the same size. $0 has $1 lines e $2 columns while $3 has $4 lines and $5 columns!",matrix_to_vector_attr:"Error at line $0: $1 represents a matrix and cannot be assigned to the vector $2.",vector_to_matrix_attr:"Error at line $0: $1 represents a vector and cannot be assigned to the matrix $2.",invalid_matrix_index_assign_full:"Error at line $0: The position $1 of the matrix $2 only accepts vectors of size $3 but $4 has size $5.",invalid_matrix_index_assign:"The position $0 of the matrix $1 only accepts vectors of size $2 but $3 has size $4.",invalid_number_elements_vector:"It expected $0 elements at line $1 but the expression $2 has $3 elements.",invalid_number_lines_matrix:"It expected a matrix with $0 lines at line $1 but the expression $2 has $3 lines.",divsion_by_zero_full:"Error at line $0: The expression $1 resuts in a division by zero.",divsion_by_zero:"The expression $0 resuts in a division by zero.",undefined_tanget_value:"Error at line $0: The tangent of $1° is undefined.",negative_log_value:"Error at line $0: You cannot calculate the logarithm of a negative value.",invalid_string_index:"Error at line $0 during the execution of the function $1: $2 is an invalid index for the text string $3. The valid indexes go from 0 to $4.",negative_sqrt_value:"Error at line $0: It is not allowd to calculate the square root of a negative number.",exceeded_recursive_calls:"Error during the execution of line $0: The number of recursive calls exceeded the allowed number of calls.",invalid_for_variable:"Error at line $0: The variable $1 used in the repeat_for command must be of type int.",invalid_for_from:"Error at line $0: The value $1 passed to the parameter 'from' of the repeat_for command must be of type int.",invalid_for_to:"Error at line $0: The value $1 passed to the parameter 'to' of the repeat_for command must be of type int.",invalid_for_pass:"Error at line $0: The value $1 passed to the parameter 'pass' of the repeat_for command must be of type int.",exceed_max_instructions:"The number of instructions executed by your program exceed the defined limit. Check your code for infinite loops or excessive recursive functions calls."},es:{token_missing_one:" ",token_missing_two:" ",eos_missing:" ",invalid_type:" ",invalid_array_dimension:" ",invalid_array_size:" ",extra_lines:" ",invalid_main_return:" ",invalid_var_declaration:" ",invalid_break_command:" ",invalid_terminal:" ",const_not_init:" ",id_missing:" ",invalid_id_format:" ",main_missing:" ",invalid_global_var:" ",not_implemented:" ",function_missing:" ",function_missing_full:" ",invalid_parameters_size_full:" ",invalid_parameters_size:" ",invalid_ref_full:" ",invalid_ref:" ",invalid_parameter_type_full:" ",invalid_parameter_type:" ",unknown_command_full:" ",unknown_command:" ",loop_condition_type_full:" ",loop_condition_type:" ",endless_loop_full:" ",endless_loop:" ",for_condition_type_full:" ",for_condition_type:" ",if_condition_type_full:" ",if_condition_type:" ",invalid_return_type_full:" ",invalid_return_type:" ",invalid_void_return_full:" ",invalid_void_return:" ",unexpected_break_command_full:" ",unexpected_break_command:" ",invalid_dimension:" ",void_in_expression_full:" ",void_in_expression:" ",invalid_array_access_full:" ",invalid_array_access:" ",invalid_matrix_access_full:" ",invalid_matrix_access:" ",matrix_column_outbounds_full:" ",matrix_column_outbounds:" ",matrix_line_outbounds_full:" ",matrix_line_outbounds:" ",vector_line_outbounds_full:" ",vector_line_outbounds:" ",vector_not_matrix_full:" ",vector_not_matrix:" ",invalid_infix_op_full:" ",invalid_infix_op:" ",invalid_unary_op_full:" ",invalid_unary_op:" ",unknown_op:" ",duplicate_function:" ",duplicate_variable:" ",main_parameters:" ",symbol_not_found_full:" ",symbol_not_found:" ",array_dimension_not_int_full:" ",array_dimension_not_int:" ",array_dimension_not_positive_full:" ",array_dimension_not_positive:" ",incompatible_types_full:" ",incompatible_types:" ",incompatible_types_array_full:" ",incompatible_types_array:" ",invalid_case_type_full:" ",invalid_case_type:" ",function_no_return:" ",invalid_array_literal_type_full:" ",invalid_array_literal_type:" ",invalid_array_literal_line_full:" ",invalid_array_literal_line:" ",invalid_array_literal_column_full:" ",invalid_array_literal_column:" ",exceeded_input_request:" ",test_case_few_reads:" ",test_case_failed:" ",test_case_failed_exception:" ",test_case_exception:" ",invalid_type_conversion:" ",invalid_read_type:" ",invalid_read_type_array:" ",inform_valid_identifier:" ",inform_valid_global_duplicated:" ",inform_valid_variable_duplicated:" ",inform_valid_function_duplicated:" ",inform_valid_param_duplicated:" ",invalid_character:" ",annonymous_array_literal:" ",invalid_matrix_literal_line:" ",cannot_infer_matrix_line:" ",cannot_infer_matrix_column:" ",cannot_infer_vector_size:" ",matrix_to_vector_literal_attr:" ",vector_to_matrix_literal_attr:" ",invalid_const_ref_full:" ",invalid_const_ref:" ",invalid_const_assignment_full:" ",invalid_const_assignment:" ",array_init_not_literal:" ",array_exceeds_2d:" ",invalid_matrix_id_dimension:" ",invalid_vector_init:" ",invalid_matrix_init:" ",invalid_vector_assignment_full:" ",invalid_vector_assignment:" ",invalid_matrix_assignment_full:" ",invalid_matrix_assignment:" ",matrix_to_vector_attr:" ",vector_to_matrix_attr:" ",invalid_matrix_index_assign_full:" ",invalid_matrix_index_assign:" ",invalid_number_elements_vector:" ",invalid_number_lines_matrix:" ",divsion_by_zero_full:" ",divsion_by_zero:" ",undefined_tanget_value:" ",negative_log_value:" ",invalid_string_index:" ",negative_sqrt_value:" ",exceeded_recursive_calls:" ",invalid_for_variable:"",invalid_for_from:"",invalid_for_to:"",invalid_for_pass:"",exceed_max_instructions:""}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.Address=class{constructor(e,t){this.id=e,this.value=t}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=n(36);class o extends i.StoreObject{constructor(e){super(e.type,e.getRefAddress(),!1),this.refObj=e.id,this.reference_dimension=e.getReferenceDimension()}get isRef(){return!0}getRefObj(){return this.refObj}getReferenceDimension(){return this.reference_dimension}destroy(){return!1}}t.StoreObjectRef=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=n(50);class o extends i.StoreObjectArray{constructor(e,t,n){super(e.type,t,n,e.getAddresses(),!1),this.refObj=e.id}get isRef(){return!0}getRefObj(){return this.refObj}destroy(){return!1}}t.StoreObjectArrayRef=o},,,,function(e,t,n){"use strict";n.r(t);var i=n(24);function o(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var a=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._sourceInfo=null,this._parenthesis=!1}var t,n,i;return t=e,(n=[{key:"sourceInfo",set:function(e){this._sourceInfo=e},get:function(){return this._sourceInfo}},{key:"parenthesis",set:function(e){this._parenthesis=e},get:function(){return this._parenthesis}}])&&o(t.prototype,n),i&&o(t,i),e}();function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function l(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function c(e){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function u(e,t){return(u=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var d=function(e){function t(e,n,i){var o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(o=l(this,c(t).call(this))).id=e,o.line=n,o.column=i,o}var n,i,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&u(e,t)}(t,e),n=t,(i=[{key:"toString",value:function(){var e=this.line.toString(),t=null;this.column&&(t=this.column.toString());var n=null;return n=t?"".concat(this.id,"[").concat(e,"][").concat(t,"]"):"".concat(this.id,"[").concat(e,"]"),this.parenthesis?"(".concat(n,")"):n}}])&&s(n.prototype,i),o&&s(n,o),t}(a),p=n(51),_=n(52),f=n(53),m={pt:{lexer:p.ivprog,langFuncs:{main_function:"inicio",$read:"leia",$write:"escreva",$numElements:"total_de_elementos",$matrixLines:"total_de_linhas",$matrixColumns:"total_de_colunas",$substring:"subcadeia",$length:"comprimento",$uppercase:"caixa_alta",$lowercase:"caixa_baixa",$charAt:"texto_na_posicao",$isReal:"e_real",$isInt:"e_inteiro",$isBool:"e_logico",$castReal:"como_real",$castInt:"como_inteiro",$castBool:"como_logico",$castString:"como_cadeia",$sin:"seno",$cos:"cosseno",$tan:"tangente",$sqrt:"raiz_quadrada",$pow:"potencia",$log:"logaritmo",$abs:"modulo",$negate:"trocar_sinal",$invert:"inverter_valor",$max:"maximo",$min:"minimo",$rand:"numero_aleatorio"},langLibs:{$mathLib:"Matematica",$ioLib:"ES",$strLib:"Texto",$arrayLib:"Arranjo",$langLib:"Conversao"}},en:{lexer:_.ivprog,langFuncs:{main_function:"main",$read:"read",$write:"write",$numElements:"total_of_elements",$matrixLines:"total_of_lines",$matrixColumns:"total_of_columns",$substring:"substring",$length:"length",$uppercase:"uppercase",$lowercase:"lowercase",$charAt:"char_at",$isReal:"is_real",$isInt:"is_integer",$isBool:"is_logic",$castReal:"to_real",$castInt:"to_integer",$castBool:"to_logic",$castString:"to_string",$sin:"sin",$cos:"cos",$tan:"tan",$sqrt:"sqrt",$pow:"pow",$log:"log",$abs:"abs",$negate:"negate",$invert:"invert",$max:"maximum",$min:"minimum",$rand:"random"},langLibs:{$mathLib:"Mathematic",$ioLib:"IO",$strLib:"Text",$arrayLib:"Array",$langLib:"Conversion"}},es:{lexer:f.ivprog,langFuncs:{main_function:"inicio",$read:"leia",$write:"escreva",$numElements:"total_of_elements",$matrixLines:"total_of_lines",$matrixColumns:"total_of_columns",$substring:"subcadeia",$length:"comprimento",$uppercase:"caixa_alta",$lowercase:"caixa_baixa",$charAt:"char_at",$isReal:"is_real",$isInt:"is_integer",$isBool:"is_logic",$castReal:"to_real",$castInt:"to_integer",$castBool:"to_logic",$castString:"to_string",$sin:"sin",$cos:"cos",$tan:"tan",$sqrt:"sqrt",$pow:"pow",$log:"log",$abs:"abs",$negate:"negate",$invert:"invert",$max:"maximum",$min:"minimum"},langLibs:{$mathLib:"Mathematic",$ioLib:"ES",$strLib:"Texto",$arrayLib:"Arranjo",$langLib:"Conversion"}}},v=n(20);function h(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var y=new(function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.decimalPlaces=8,this.intConvertRoundMode=2,this.default_lang="pt",this.enable_type_casting=!0,this.idle_input_interval=5e3,this.suspend_threshold=100,this.max_instruction_count=Number.MAX_SAFE_INTEGER}var t,n,i;return t=e,(n=[{key:"setConfig",value:function(e){for(var t in e)Object.prototype.hasOwnProperty.call(this,t)&&(this[t]=e[t])}}])&&h(t.prototype,n),i&&h(t,i),e}());function g(e){return(g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function b(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function w(e,t){return!t||"object"!==g(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function x(e){return(x=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function E(e,t){return(E=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var T=new(function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),w(this,x(t).call(this,"undefined"==typeof iLMparameters?y.default_lang:iLMparameters.lang))}var n,i,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&E(e,t)}(t,e),n=t,(i=[{key:"getDefaultLang",value:function(){return"pt"}},{key:"getCurrentLexer",value:function(){var e=m[this.getLang()];return null==e?m[this.getDefaultLang()].lexer:e.lexer}},{key:"getCurrentLangFuncs",value:function(){var e=m[this.getLang()];return null==e?m[this.getDefaultLang()].langFuncs:e.langFuncs}},{key:"getCurrentLangLibs",value:function(){var e=m[this.getLang()];return null==e?m[this.getDefaultLang()].langLibs:e.langLibs}}])&&b(n.prototype,i),o&&b(n,o),t}(v.a.LanguageServiceNoLS));function R(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var A=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._sourceInfo=null}var t,n,i;return t=e,(n=[{key:"sourceInfo",set:function(e){this._sourceInfo=e},get:function(){return this._sourceInfo}}])&&R(t.prototype,n),i&&R(t,i),e}();function O(e){return(O="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function I(e,t){return!t||"object"!==O(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function C(e){return(C=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function N(e,t){return(N=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var S=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),I(this,C(t).call(this))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&N(e,t)}(t,e),t}(A);function k(e){return(k="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function L(e,t){return!t||"object"!==k(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function U(e){return(U=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function P(e,t){return(P=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var M=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=L(this,U(t).call(this))).expression=e,n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&P(e,t)}(t,e),t}(A);function F(e){return(F="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function j(e,t){return!t||"object"!==F(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function K(e){return(K=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function B(e,t){return(B=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var G=function(e){function t(e,n){var i;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(i=j(this,K(t).call(this))).id=e,i.expression=n,i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&B(e,t)}(t,e),t}(A);function D(e){return(D="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function V(e,t){return!t||"object"!==D(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function q(e){return(q=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function H(e,t){return(H=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var z=function(e){function t(e,n,i,o){var a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(a=V(this,q(t).call(this,e,o))).line=n,a.column=i,a}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&H(e,t)}(t,e),t}(G);function X(e){return(X="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function W(e,t){return!t||"object"!==X(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Q(e){return(Q=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Y(e,t){return(Y=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var J=function(e){function t(e,n,i,o){var a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(a=W(this,Q(t).call(this))).id=e,a.type=n,a.initial=i,a.isConst=o,a}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Y(e,t)}(t,e),t}(A);function Z(e){return(Z="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ee(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function te(e,t){return!t||"object"!==Z(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function ne(e){return(ne=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ie(e,t){return(ie=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var oe=function(e){function t(e,n,i,o,a,r){var s;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(s=te(this,ne(t).call(this,e,n,a,r))).lines=i,s.columns=o,s}var n,i,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ie(e,t)}(t,e),n=t,(i=[{key:"isVector",get:function(){return null==this.columns}}])&&ee(n.prototype,i),o&&ee(n,o),t}(J);function ae(e){return(ae="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function re(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function se(e,t){return!t||"object"!==ae(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function le(e){return(le=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ce(e,t){return(ce=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var ue=function(e){function t(e,n){var i;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(i=se(this,le(t).call(this))).expression=e,i.commandBlock=n,i}var n,i,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ce(e,t)}(t,e),n=t,(i=[{key:"commands",get:function(){return this.commandBlock.commands}},{key:"testFirst",get:function(){return!0}}])&&re(n.prototype,i),o&&re(n,o),t}(A);function de(e){return(de="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function pe(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function _e(e,t){return!t||"object"!==de(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function fe(e){return(fe=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function me(e,t){return(me=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var ve=function(e){function t(e,n,i,o,a){var r;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(r=_e(this,fe(t).call(this))).for_id=e,r.for_from=n,r.for_to=i,r.for_pass=o,r.commandBlock=a,r}var n,i,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&me(e,t)}(t,e),n=t,(i=[{key:"commands",get:function(){return this.commandBlock.commands}}])&&pe(n.prototype,i),o&&pe(n,o),t}(A),he=n(0);function ye(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var ge=function(){function e(t,n,i,o){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.name=t,this.returnType=n,this.formalParameters=i,this.commandBlock=o,this._sourceInfo=null}var t,n,i;return t=e,(n=[{key:"isMain",get:function(){return null===this.name&&this.returnType.isCompatible(he.Types.VOID)}},{key:"commands",get:function(){return this.commandBlock.commands}},{key:"variablesDeclarations",get:function(){return this.commandBlock.variables}},{key:"sourceInfo",set:function(e){this._sourceInfo=e},get:function(){return this._sourceInfo}}])&&ye(t.prototype,n),i&&ye(t,i),e}();function be(e){return(be="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function we(e,t){return!t||"object"!==be(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function xe(e){return(xe=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Ee(e,t){return(Ee=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Te=function(e){function t(e,n,i){var o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(o=we(this,xe(t).call(this))).condition=e,o.ifTrue=n,o.ifFalse=i,o}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ee(e,t)}(t,e),t}(A);function Re(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var Ae=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.variables=t,this.commands=n,this._sourceInfo=null}var t,n,i;return t=e,(n=[{key:"sourceInfo",set:function(e){this._sourceInfo=e},get:function(){return this._sourceInfo}}])&&Re(t.prototype,n),i&&Re(t,i),e}();function Oe(e){return(Oe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ie(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function Ce(e,t){return!t||"object"!==Oe(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Ne(e){return(Ne=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Se(e,t){return(Se=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var ke=function(e){function t(e,n){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Ce(this,Ne(t).call(this,e,n))}var n,i,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Se(e,t)}(t,e),n=t,(i=[{key:"testFirst",get:function(){return!1}}])&&Ie(n.prototype,i),o&&Ie(n,o),t}(ue);function Le(e){return(Le="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function $e(e,t){return!t||"object"!==Le(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Ue(e){return(Ue=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Pe(e,t){return(Pe=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Me=function(e){function t(e,n){var i;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(i=$e(this,Ue(t).call(this))).expression=e,i.cases=n,i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Pe(e,t)}(t,e),t}(A);function Fe(e){return(Fe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function je(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function Ke(e,t){return!t||"object"!==Fe(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Be(e){return(Be=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Ge(e,t){return(Ge=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var De=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=Ke(this,Be(t).call(this))).expression=e,n.commands=[],n}var n,i,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ge(e,t)}(t,e),n=t,(i=[{key:"setCommands",value:function(e){this.commands=e}},{key:"isDefault",get:function(){return null===this.expression}}])&&je(n.prototype,i),o&&je(n,o),t}(A);var Ve=function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.langFunc=t};function qe(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var He=function(){function e(t,n){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.type=t,this.id=n,this.byRef=i,this._sourceInfo=null}var t,n,i;return t=e,(n=[{key:"sourceInfo",set:function(e){this._sourceInfo=e},get:function(){return this._sourceInfo}}])&&qe(t.prototype,n),i&&qe(t,i),e}(),ze=n(1),Xe=n(5),We=n.n(Xe);function Qe(e){return new We.a(e)}function Ye(e){var t=e.replace(/^"/,"");return t=(t=(t=(t=(t=(t=(t=(t=t.replace(/"$/,"")).replace(/\\b/g,"\b")).replace(/\\t/g,"\t")).replace(/\\n/g,"\n")).replace(/\\r/g,"\r")).replace(/\\"/g,'"')).replace(/\\'/g,"'")).replace(/\\\\/g,"\\")}function Je(e){return new We.a(e)}function Ze(e){var t="'"+e+"'",n=T.getCurrentLexer(),i=new n(null);if(i.literalNames[n.RK_TRUE]===t)return!0;if(i.literalNames[n.RK_FALSE]===t)return!1;throw new Error(e+"not a valid boolean")}function et(e){var t=T.getCurrentLexer(),n=new t(null);return(e?n.literalNames[t.RK_TRUE]:n.literalNames[t.RK_FALSE]).replace(/'/g,"")}function tt(e,t){switch(t.ord){case he.Types.INTEGER.ord:return e.toString();case he.Types.REAL.ord:return e.dp()<=0?e.toFixed(1):e.toFixed(y.decimalPlaces);case he.Types.BOOLEAN.ord:return et(e);default:return e}}function nt(e){return(nt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function it(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ot(e){var t="function"==typeof Map?new Map:void 0;return(ot=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,i)}function i(){return at(e,arguments,st(this).constructor)}return i.prototype=Object.create(e.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),rt(i,e)})(e)}function at(e,t,n){return(at=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}()?Reflect.construct:function(e,t,n){var i=[null];i.push.apply(i,t);var o=new(Function.bind.apply(e,i));return n&&rt(o,n.prototype),o}).apply(null,arguments)}function rt(e,t){return(rt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function st(e){return(st=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var lt=function(e){function t(){var e,n,i,o;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var a=arguments.length,r=new Array(a),s=0;s<a;s++)r[s]=arguments[s];return i=this,n=!(o=(e=st(t)).call.apply(e,[this].concat(r)))||"object"!==nt(o)&&"function"!=typeof o?it(i):o,Error.captureStackTrace&&Error.captureStackTrace(it(n),t),n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&rt(e,t)}(t,e),t}(ot(Error));function ct(e){return(ct="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ut(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function dt(e){var t="function"==typeof Map?new Map:void 0;return(dt=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,i)}function i(){return pt(e,arguments,ft(this).constructor)}return i.prototype=Object.create(e.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),_t(i,e)})(e)}function pt(e,t,n){return(pt=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}()?Reflect.construct:function(e,t,n){var i=[null];i.push.apply(i,t);var o=new(Function.bind.apply(e,i));return n&&_t(o,n.prototype),o}).apply(null,arguments)}function _t(e,t){return(_t=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function ft(e){return(ft=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var mt=function(e){function t(){var e,n,i,o;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var a=arguments.length,r=new Array(a),s=0;s<a;s++)r[s]=arguments[s];return i=this,n=!(o=(e=ft(t)).call.apply(e,[this].concat(r)))||"object"!==ct(o)&&"function"!=typeof o?ut(i):o,Error.captureStackTrace&&Error.captureStackTrace(ut(n),t),n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_t(e,t)}(t,e),t}(dt(Error)),vt=n(38),ht=n.n(vt),yt=Object.freeze({ADD:{ord:0,value:"+"},SUB:{ord:1,value:"-"},MULT:{ord:2,value:"*"},DIV:{ord:3,value:"/"},MOD:{ord:4,value:"%"},GT:{ord:5,value:">"},GE:{ord:6,value:">="},LT:{ord:7,value:"<"},LE:{ord:8,value:"<="},EQ:{ord:9,value:"=="},NEQ:{ord:10,value:"!="},AND:{ord:11,value:"and"},OR:{ord:12,value:"or"},NOT:{ord:13,value:"not"}});function gt(e){switch(e){case"+":return yt.ADD;case"-":return yt.SUB;case"*":return yt.MULT;case"/":return yt.DIV;case"%":return yt.MOD;case">":return yt.GT;case">=":return yt.GE;case"<":return yt.LT;case"<=":return yt.LE;case"==":return yt.EQ;case"!=":return yt.NEQ;case"and":return yt.AND;case"or":return yt.OR;case"not":return yt.NOT}}function bt(e){return(bt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function wt(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function xt(e,t){return!t||"object"!==bt(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Et(e){return(Et=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Tt(e,t){return(Tt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Rt=function(e){function t(e,n){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),xt(this,Et(t).call(this,e,n,i))}var n,i,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Tt(e,t)}(t,e),n=t,(i=[{key:"translateType",value:function(e,t){var n=this.getUI("type_".concat(e));switch(t){case 0:return n;default:return t>1?this.getUI("matrix_info_string",[n]):this.getUI("vector_info_string",[n])}}},{key:"translateOp",value:function(e){switch(e.ord){case yt.AND.ord:case yt.OR.ord:case yt.NOT.ord:return this.getUI("logic_operator_".concat(e.value));default:return e.value}}},{key:"translateInternalFunction",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return null==t?Gt.getLocalName(e):Gt.getLocalName("".concat(t,".").concat(e))}}])&&wt(n.prototype,i),o&&wt(n,o),t}(v.a.LocalizedStrings),At=Object.freeze(new Rt(T,ht.a,!0)),Ot=null;function It(){return null==Ot&&(Ot=new Rt(T,ht.a)),Ot}var Ct=It();function Nt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return new lt(Ct.getError(e,t))}function St(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return new mt(Ct.getError(e,t))}var kt=Object.freeze({symbol_not_found_full:function(e,t){return t?St("symbol_not_found_full",[e,t.line,t.column]):kt.symbol_not_found(e)},symbol_not_found:function(e){return St("symbol_not_found",[e])},function_missing_full:function(e,t){return t?St("function_missing_full",[e,t.line,t.column]):kt.function_missing(e)},function_missing:function(e){return St("function_missing",[e])},main_missing:function(){return St("main_missing")},array_dimension_not_int_full:function(e){return e?St("array_dimension_not_int_full",[e.line]):kt.array_dimension_not_int()},array_dimension_not_int:function(){return St("array_dimension_not_int")},unknown_command_full:function(e){return e?Nt("unknown_command_full",[e.line]):kt.unknown_command()},unknown_command:function(){return Nt("unknown_command")},incompatible_types_full:function(e,t,n,i,o,a){return a?St("incompatible_types_full",[Ct.translateType(e,t),o,a.line,Ct.translateType(n,i)]):kt.incompatible_types(e,t,n,i,o)},incompatible_types:function(e,t,n,i,o){return St("incompatible_types",[Ct.translateType(e,t),o,Ct.translateType(n,i)])},incompatible_types_array_full:function(e,t,n,i){return i?St("incompatible_types_array_full",[e,Ct.translateType(t,n),i.line,i.column]):kt.incompatible_types_array(e,t,n)},incompatible_types_array:function(e,t,n){return St("incompatible_types_array",[e,Ct.translateType(t,n)])},loop_condition_type_full:function(e,t){return t?St("loop_condition_type_full",[t.line,t.column,e]):kt.loop_condition_type(e)},loop_condition_type:function(e){return St("loop_condition_type",[e])},endless_loop_full:function(e){return e?St("endless_loop_full",[e.line]):kt.endless_loop()},endless_loop:function(){return St("endless_loop")},if_condition_type_full:function(e,t){return t?St("if_condition_type_full",[t.line,t.column,e]):kt.if_condition_type(e)},if_condition_type:function(e){return St("if_condition_type",[e])},invalid_global_var:function(){return Nt("invalid_global_var")},not_implemented:function(e){return Nt("not_implemented",[e])},invalid_case_type_full:function(e,t,n,i){return i?St("invalid_case_type_full",[e,Ct.translateType(t,n),i.line,i.column]):kt.invalid_case_type(e,t,n)},invalid_case_type:function(e,t,n){return St("invalid_case_type",[e,Ct.translateType(t,n)])},void_in_expression_full:function(e,t){return t?St("void_in_expression_full",[t.line,t.column,e]):kt.void_in_expression(e)},void_in_expression:function(e){return St("void_in_expression",[e])},invalid_array_access_full:function(e,t){return t?St("invalid_array_access_full",[e,t.line,t.column]):kt.invalid_array_access(e)},invalid_array_access:function(e){return St("invalid_array_access",[e])},invalid_matrix_access_full:function(e,t){return t?St("invalid_matrix_access_full",[e,t.line,t.column]):kt.invalid_matrix_access(e)},invalid_matrix_access:function(e){return St("invalid_matrix_access",[e])},matrix_column_outbounds_full:function(e,t,n,i){return i?Nt("matrix_column_outbounds_full",[i.line,t,e,n]):kt.matrix_column_outbounds(e,t,n)},matrix_column_outbounds:function(e,t,n){return Nt("matrix_column_outbounds",[t,e,n])},matrix_line_outbounds_full:function(e,t,n,i){return i?Nt("matrix_line_outbounds_full",[i.line,t,e,n]):kt.matrix_line_outbounds(e,t,n)},matrix_line_outbounds:function(e,t,n){return Nt("matrix_line_outbounds",[t,e,n])},vector_line_outbounds_full:function(e,t,n,i){return i?Nt("vector_line_outbounds_full",[i.line,t,e,n]):kt.vector_line_outbounds(e,t,n)},vector_line_outbounds:function(e,t,n){return Nt("vector_line_outbounds",[t,e,n])},vector_not_matrix_full:function(e,t){return t?Nt("vector_not_matrix_full",[t.line,e]):kt.vector_not_matrix(e)},vector_not_matrix:function(e){return Nt("vector_not_matrix",[e])},function_no_return:function(e){return St("function_no_return",[e])},invalid_void_return_full:function(e,t,n,i){return i?St("invalid_void_return_full",[i.line,e,Ct.translateType(t,n)]):kt.invalid_void_return(e,t,n)},invalid_void_return:function(e,t,n){return St("invalid_void_return_full",[e,Ct.translateType(t,n)])},invalid_return_type_full:function(e,t,n,i){return i?St("invalid_return_type_full",[i.line,e,Ct.translateType(t,n)]):kt.invalid_return_type(e,t,n)},invalid_return_type:function(e,t,n){return St("invalid_return_type",[e,Ct.translateType(t,n)])},invalid_parameters_size_full:function(e,t,n,i){return i?St("invalid_parameters_size_full",[i.line,e,t,n]):kt.invalid_parameters_size(e,t,n)},invalid_parameters_size:function(e,t,n){return St("invalid_parameters_size",[e,t,n])},invalid_parameter_type_full:function(e,t,n){return n?St("invalid_parameter_type_full",[t,Gt.getLocalName(e),n.line]):kt.invalid_parameter_type(e,t)},invalid_parameter_type:function(e,t){return St("invalid_parameter_type_full",[t,Gt.getLocalName(e)])},invalid_ref_full:function(e,t,n){return n?St("invalid_ref_full",[t,e,n.line]):kt.invalid_ref(e,t)},invalid_ref:function(e,t){return St("invalid_ref",[t,e])},unexpected_break_command_full:function(e){return e?Nt("unexpected_break_command_full",[e.line]):kt.unexpected_break_command()},unexpected_break_command:function(){return Nt("unexpected_break_command")},invalid_array_literal_type_full:function(e,t){return t?Nt("invalid_array_literal_type_full",[t.line,e]):kt.invalid_array_literal_type(e)},invalid_array_literal_type:function(e){return Nt("invalid_array_literal_type",[e])},invalid_array_literal_line_full:function(e,t,n){return n?Nt("invalid_array_literal_line_full",[n.line,e,t]):kt.invalid_array_literal_type(e,t)},invalid_array_literal_line:function(e,t){return Nt("invalid_array_literal_line",[e,t])},invalid_array_literal_column_full:function(e,t,n){return n?Nt("invalid_array_literal_column_full",[n.line,e,t]):kt.invalid_array_literal_column(e,t)},invalid_array_literal_column:function(e,t){return Nt("invalid_array_literal_column",[e,t])},invalid_unary_op_full:function(e,t,n,i,o){return o?Nt("invalid_unary_op_full",[o.line,e,Ct.translateOp(t),Ct.translateType(n,i)]):kt.invalid_unary_op(t,n,i)},invalid_unary_op:function(e,t,n,i){return Nt("invalid_unary_op",[e,Ct.translateOp(t),Ct.translateType(n,i)])},invalid_infix_op_full:function(e,t,n,i,o,a,r){return r?Nt("invalid_infix_op_full",[r.line,e,Ct.translateOp(t),Ct.translateType(n,i),Ct.translateType(o,a)]):kt.invalid_infix_op(t,n,i,o,a)},invalid_infix_op:function(e,t,n,i,o,a){return Nt("invalid_infix_op",[e,Ct.translateOp(t),Ct.translateType(n,i),Ct.translateType(o,a)])},array_dimension_not_positive_full:function(e){return e?St("array_dimension_not_positive_full",[e.line]):kt.array_dimension_not_positive()},array_dimension_not_positive:function(){return St("array_dimension_not_positive")},invalid_type_conversion:function(e,t,n){return Nt("invalid_type_conversion",[e,Ct.translateType(t,n)])},invalid_read_type:function(e,t,n,i,o){return Nt("invalid_read_type",[o.line,e,Ct.translateType(t,n),i])},invalid_read_type_array:function(e,t,n,i,o,a,r){return Nt("invalid_read_type_array",[r.line,e,Ct.translateType(t,n),i,Ct.translateType(o,a)])},invalid_const_ref_full:function(e,t,n){return n?St("invalid_const_ref_full",[t,Gt.getLocalName(e),n.line]):kt.invalid_const_ref(e,t)},invalid_const_ref:function(e,t){return St("invalid_const_ref",[t,Gt.getLocalName(e)])},invalid_const_assignment_full:function(e,t){return t?St("invalid_const_assignment_full",[t.line,e]):kt.invalid_const_assignment(e)},invalid_const_assignment:function(e){return St("invalid_const_assignment",[e])},invalid_vector_assignment_full:function(e,t,n,i,o){return o?Nt("invalid_vector_assignment_full",[o.line,e,t,n,i]):kt.invalid_vector_assignment(e,t,n,i)},invalid_vector_assignment:function(e,t,n,i){return Nt("invalid_vector_assignment",[e,t,n,i])},invalid_matrix_assignment_full:function(e,t,n,i,o,a,r){return r?Nt("invalid_matrix_assignment_full",[r.line,e,t,n,i,o,a]):kt.invalid_matrix_assignment(e,t,n,i,o,a)},invalid_matrix_assignment:function(e,t,n,i,o,a){return Nt("invalid_matrix_assignment",[e,t,n,i,o,a])},matrix_to_vector_attr:function(e,t,n){return St("matrix_to_vector_attr",[n.line,t,e])},vector_to_matrix_attr:function(e,t,n){return St("vector_to_matrix_attr",[n.line,t,e])},invalid_matrix_index_assign_full:function(e,t,n,i,o,a){return a?Nt("invalid_matrix_index_assign_full",[a.line,t,e,n,i,o]):kt.invalid_matrix_index_assign(e,t,n,i,o)},invalid_matrix_index_assign:function(e,t,n,i,o){return Nt("invalid_matrix_index_assign",[t,e,n,i,o])},invalid_number_elements_vector:function(e,t,n,i){return Nt("invalid_number_elements_vector",[e,i.line,t,n])},invalid_number_lines_matrix:function(e,t,n,i){return Nt("invalid_number_lines_matrix",[e,i.line,t,n])},divsion_by_zero_full:function(e,t){return t?Nt("divsion_by_zero_full",[t.line,e]):kt.divsion_by_zero(e)},divsion_by_zero:function(e){return Nt("divsion_by_zero",[e])},undefined_tanget_value:function(e,t){return Nt("undefined_tanget_value",[t.line,e])},negative_log_value:function(e){return Nt("negative_log_value",[e.line])},invalid_string_index:function(e,t,n){var i=Gt.getLocalName("$charAt");return Nt("invalid_string_index",[n.line,i,e,t,t.length-1])},negative_sqrt_value:function(e){return Nt("negative_sqrt_value",[e.line])},exceeded_recursive_calls:function(e){return Nt("exceeded_recursive_calls",[e.line])},invalid_for_variable:function(e,t){return St("invalid_for_variable",[t.line,e])},invalid_for_from:function(e,t){return St("invalid_for_from",[t.line,e])},invalid_for_to:function(e,t){return St("invalid_for_to",[t.line,e])},invalid_for_pass:function(e,t){return St("invalid_for_pass",[t.line,e])},exceed_max_instructions:function(){return Nt("exceed_max_instructions")}}),Lt=n(2);var $t=n(4);var Ut=n(3);function Pt(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function Mt(e){return e.times(Xe.Decimal.acos(-1)).div(180)}function Ft(e,t){for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&t[n]===e)return n;return null}var jt,Kt={$mathLib:{$sin:(jt=new Ae([],[new Ve((function(e,t){var n=e.applyStore("x").get().mod(360),i=null;i=n.eq(90)?new Xe.Decimal(1):n.eq(180)?new Xe.Decimal(0):n.eq(270)?new Xe.Decimal(-1):Xe.Decimal.sin(Mt(n));var o=new Lt.StoreValue(he.Types.REAL,i);return e.insertStore("$",o),e.mode=ze.Modes.RETURN,Promise.resolve(e)}))]),new ge("$sin",he.Types.REAL,[new He(new Ut.MultiType([he.Types.INTEGER,he.Types.REAL]),"x",!1)],jt)),$cos:function(){var e=new Ae([],[new Ve((function(e,t){var n=e.applyStore("x").get().mod(360),i=null;n.eq(90)?i=new Xe.Decimal(0):n.eq(180)?i=new Xe.Decimal(-1):n.eq(270)&&(i=new Xe.Decimal(0)),i=Xe.Decimal.cos(Mt(n));var o=new Lt.StoreValue(he.Types.REAL,i);return e.insertStore("$",o),e.mode=ze.Modes.RETURN,Promise.resolve(e)}))]);return new ge("$cos",he.Types.REAL,[new He(new Ut.MultiType([he.Types.INTEGER,he.Types.REAL]),"x",!1)],e)}(),$tan:function(){var e=new Ae([],[new Ve((function(e,t){var n=e.applyStore("x"),i=n.get().mod(360);if(i.eq(90)||i.eq(270))return Promise.reject(kt.undefined_tanget_value(n.get().toNumber(),this.function_call_stack.pop()));var o=Xe.Decimal.tan(Mt(i)),a=new Lt.StoreValue(he.Types.REAL,o);return e.insertStore("$",a),e.mode=ze.Modes.RETURN,Promise.resolve(e)}))]);return new ge("$tan",he.Types.REAL,[new He(new Ut.MultiType([he.Types.INTEGER,he.Types.REAL]),"x",!1)],e)}(),$sqrt:function(){var e=new Ae([],[new Ve((function(e,t){var n=e.applyStore("x");if(n.get().isNeg())return Promise.reject(kt.negative_sqrt_value(this.function_call_stack.pop()));var i=n.get().sqrt(),o=new Lt.StoreValue(he.Types.REAL,i);return e.insertStore("$",o),e.mode=ze.Modes.RETURN,Promise.resolve(e)}))]);return new ge("$sqrt",he.Types.REAL,[new He(new Ut.MultiType([he.Types.INTEGER,he.Types.REAL]),"x",!1)],e)}(),$pow:function(){var e=new Ae([],[new Ve((function(e,t){var n=e.applyStore("x"),i=e.applyStore("y"),o=n.get().pow(i.get()),a=new Lt.StoreValue(he.Types.REAL,o);return e.insertStore("$",a),e.mode=ze.Modes.RETURN,Promise.resolve(e)}))]);return new ge("$pow",he.Types.REAL,[new He(new Ut.MultiType([he.Types.INTEGER,he.Types.REAL]),"x",!1),new He(new Ut.MultiType([he.Types.INTEGER,he.Types.REAL]),"y",!1)],e)}(),$log:function(){var e=new Ae([],[new Ve((function(e,t){var n=e.applyStore("x");if(n.get().isNegative())return Promise.reject(kt.negative_log_value(this.function_call_stack.pop()));var i=Xe.Decimal.log10(n.get()),o=new Lt.StoreValue(he.Types.REAL,i);return e.insertStore("$",o),e.mode=ze.Modes.RETURN,Promise.resolve(e)}))]);return new ge("$log",he.Types.REAL,[new He(new Ut.MultiType([he.Types.INTEGER,he.Types.REAL]),"x",!1)],e)}(),$abs:function(){var e=new Ae([],[new Ve((function(e,t){var n=e.applyStore("x"),i=n.get().abs(),o=new Lt.StoreValue(n.type,i);return e.insertStore("$",o),e.mode=ze.Modes.RETURN,Promise.resolve(e)}))]);return new ge("$abs",new Ut.MultiType([he.Types.INTEGER,he.Types.REAL]),[new He(new Ut.MultiType([he.Types.INTEGER,he.Types.REAL]),"x",!1)],e)}(),$negate:function(){var e=new Ae([],[new Ve((function(e,t){var n=e.applyStore("x"),i=n.get().negated(),o=new Lt.StoreValue(n.type,i);return e.insertStore("$",o),e.mode=ze.Modes.RETURN,Promise.resolve(e)}))]);return new ge("$negate",new Ut.MultiType([he.Types.INTEGER,he.Types.REAL]),[new He(new Ut.MultiType([he.Types.INTEGER,he.Types.REAL]),"x",!1)],e)}(),$invert:function(){var e=new Ae([],[new Ve((function(e,t){var n=e.applyStore("x"),i=Je(1).dividedBy(n.get()),o=new Lt.StoreValue(he.Types.REAL,i);return e.insertStore("$",o),e.mode=ze.Modes.RETURN,Promise.resolve(e)}))]);return new ge("$invert",he.Types.REAL,[new He(new Ut.MultiType([he.Types.INTEGER,he.Types.REAL]),"x",!1)],e)}(),$max:function(){var e=new $t.ArrayType(new Ut.MultiType([he.Types.INTEGER,he.Types.REAL]),1),t=new Ae([],[new Ve((function(e,t){var n=e.applyStore("x"),i=n.get().map((function(e){return e.get()})),o=Xe.Decimal.max.apply(Xe.Decimal,Pt(i)),a=new Lt.StoreValue(n.type.innerType,o);return e.insertStore("$",a),e.mode=ze.Modes.RETURN,Promise.resolve(e)}))]);return new ge("$max",new Ut.MultiType([he.Types.INTEGER,he.Types.REAL]),[new He(e,"x",!1)],t)}(),$min:function(){var e=new $t.ArrayType(new Ut.MultiType([he.Types.INTEGER,he.Types.REAL]),1),t=new Ae([],[new Ve((function(e,t){var n=e.applyStore("x"),i=n.get().map((function(e){return e.get()})),o=Xe.Decimal.min.apply(Xe.Decimal,Pt(i)),a=new Lt.StoreValue(n.type.innerType,o);return e.insertStore("$",a),e.mode=ze.Modes.RETURN,Promise.resolve(e)}))]);return new ge("$min",new Ut.MultiType([he.Types.INTEGER,he.Types.REAL]),[new He(e,"x",!1)],t)}(),$rand:function(){var e=new Ae([],[new Ve((function(e,t){var n=Math.random(),i=new Lt.StoreValue(he.Types.REAL,new Xe.Decimal(n));return e.insertStore("$",i),e.mode=ze.Modes.RETURN,Promise.resolve(e)}))]);return new ge("$rand",he.Types.REAL,[],e)}()},$ioLib:{$read:function(){var e=new Ae([],[new Ve((function(e,t){var n=this;return new Promise((function(e,t){n.input.requestInput(e)})).then((function(t){var i=e.applyStore("p1").type,o=null,a=null;try{if(i.isCompatible(he.Types.INTEGER))a=Qe(t.trim()).trunc(),o=he.Types.INTEGER;else if(i.isCompatible(he.Types.REAL))a=Je(t.trim()),o=he.Types.REAL;else if(i.isCompatible(he.Types.BOOLEAN))a=Ze(t.trim()),o=he.Types.BOOLEAN;else{if(!i.isCompatible(he.Types.STRING))return Promise.reject(new Error("!!!!Critical error: Unknown type in readFunction!!!!"));a=Ye(t),o=he.Types.STRING}}catch(o){if(n.mode==ze.Modes.ABORT)return e.mode=ze.Modes.RETURN,Promise.resolve(e);var r=i.stringInfo()[0],s=e.getStoreObject("p1");if(s.getReferenceDimension()>0){var l=s.type.stringInfo()[0],c=s.getReferenceDimension(),u=kt.invalid_read_type_array(t,r.type,r.dim,s.getRefObj(),l.type,c,n.function_call_stack.pop());return Promise.reject(u)}var d=kt.invalid_read_type(t,r.type,r.dim,s.getRefObj(),n.function_call_stack.pop());return Promise.reject(d)}var p=new Lt.StoreValue(o,a);return e.updateStore("p1",p),e.mode=ze.Modes.RETURN,Promise.resolve(e)}))}))]);return new ge("$read",he.Types.VOID,[new He(he.Types.ALL,"p1",!0)],e)}(),$write:function(){var e=new Ae([],[new Ve((function(e,t){var n=e.applyStore("p1");return this.output.sendOutput(tt(n.get(),n.type)),e.mode=ze.Modes.RETURN,Promise.resolve(e)}))]);return new ge("$write",he.Types.VOID,[new He(he.Types.ALL,"p1",!1)],e)}()},$strLib:{$substring:function(){var e=new Ae([],[new Ve((function(e,t){var n=e.applyStore("str"),i=e.applyStore("start"),o=e.applyStore("end"),a=n.get().substring(i.get(),o.get()),r=new Lt.StoreValue(he.Types.STRING,a);return e.insertStore("$",r),e.mode=ze.Modes.RETURN,Promise.resolve(e)}))]);return new ge("$substring",he.Types.STRING,[new He(he.Types.STRING,"str",!1),new He(he.Types.INTEGER,"start",!1),new He(he.Types.INTEGER,"end",!1)],e)}(),$length:function(){var e=new Ae([],[new Ve((function(e,t){var n=e.applyStore("str"),i=new Lt.StoreValue(he.Types.INTEGER,Qe(n.value.length));return e.insertStore("$",i),e.mode=ze.Modes.RETURN,Promise.resolve(e)}))]);return new ge("$length",he.Types.INTEGER,[new He(he.Types.STRING,"str",!1)],e)}(),$uppercase:function(){var e=new Ae([],[new Ve((function(e,t){var n=e.applyStore("str"),i=new Lt.StoreValue(he.Types.STRING,n.get().toUpperCase());return e.insertStore("$",i),e.mode=ze.Modes.RETURN,Promise.resolve(e)}))]);return new ge("$uppercase",he.Types.STRING,[new He(he.Types.STRING,"str",!1)],e)}(),$lowercase:function(){var e=new Ae([],[new Ve((function(e,t){var n=e.applyStore("str"),i=new Lt.StoreValue(he.Types.STRING,n.get().toLowerCase());return e.insertStore("$",i),e.mode=ze.Modes.RETURN,Promise.resolve(e)}))]);return new ge("$lowercase",he.Types.STRING,[new He(he.Types.STRING,"str",!1)],e)}(),$charAt:function(){var e=new Ae([],[new Ve((function(e,t){var n=e.applyStore("str"),i=e.applyStore("index");if(i.get().toNumber()<0||i.get().toNumber()>=n.get().length)return Promise.reject(kt.invalid_string_index(i.get().toNumber(),n.get(),this.function_call_stack.pop()));var o=new Lt.StoreValue(he.Types.STRING,n.get().charAt(i.get().toNumber()));return e.insertStore("$",o),e.mode=ze.Modes.RETURN,Promise.resolve(e)}))]);return new ge("$charAt",he.Types.STRING,[new He(he.Types.STRING,"str",!1),new He(he.Types.INTEGER,"index",!1)],e)}()},$arrayLib:{$numElements:function(){var e=new Ae([],[new Ve((function(e,t){var n=e.applyStore("vector"),i=new Lt.StoreValue(he.Types.INTEGER,Qe(n.lines));return e.mode=ze.Modes.RETURN,e.insertStore("$",i),Promise.resolve(e)}))]);return new ge("$numElements",he.Types.INTEGER,[new He(new $t.ArrayType(he.Types.ALL,1),"vector",!1)],e)}(),$matrixLines:function(){var e=new Ae([],[new Ve((function(e,t){var n=e.applyStore("matrix"),i=new Lt.StoreValue(he.Types.INTEGER,Qe(n.lines));return e.mode=ze.Modes.RETURN,e.insertStore("$",i),Promise.resolve(e)}))]);return new ge("$matrixLines",he.Types.INTEGER,[new He(new $t.ArrayType(he.Types.ALL,2),"matrix",!1)],e)}(),$matrixColumns:function(){var e=new Ae([],[new Ve((function(e,t){var n=e.applyStore("matrix"),i=new Lt.StoreValue(he.Types.INTEGER,Qe(n.columns));return e.mode=ze.Modes.RETURN,e.insertStore("$",i),Promise.resolve(e)}))]);return new ge("$matrixColumns",he.Types.INTEGER,[new He(new $t.ArrayType(he.Types.ALL,2),"matrix",!1)],e)}()},$langLib:{$isReal:function(){var e=new Ae([],[new Ve((function(e,t){var n=e.applyStore("str"),i=ui.createParser(n.get()),o=!1;try{i.parseTerm()instanceof pn&&(o=!0)}catch(e){}var a=new Lt.StoreValue(he.Types.BOOLEAN,o);return e.insertStore("$",a),e.mode=ze.Modes.RETURN,Promise.resolve(e)}))]);return new ge("$isReal",he.Types.BOOLEAN,[new He(he.Types.STRING,"str",!1)],e)}(),$isInt:function(){var e=new Ae([],[new Ve((function(e,t){var n=e.applyStore("str"),i=ui.createParser(n.get()),o=!1;try{i.parseTerm()instanceof rn&&(o=!0)}catch(e){}var a=new Lt.StoreValue(he.Types.BOOLEAN,o);return e.insertStore("$",a),e.mode=ze.Modes.RETURN,Promise.resolve(e)}))]);return new ge("$isInt",he.Types.BOOLEAN,[new He(he.Types.STRING,"str",!1)],e)}(),$isBool:function(){var e=new Ae([],[new Ve((function(e,t){var n=e.applyStore("str"),i=ui.createParser(n.get()),o=!1;try{i.parseTerm()instanceof yn&&(o=!0)}catch(e){}var a=new Lt.StoreValue(he.Types.BOOLEAN,o);return e.insertStore("$",a),e.mode=ze.Modes.RETURN,Promise.resolve(e)}))]);return new ge("$isBool",he.Types.BOOLEAN,[new He(he.Types.STRING,"str",!1)],e)}(),$castReal:function(){var e=new Ae([],[new Ve((function(e,t){var n=e.applyStore("val"),i=n.get();switch(n.type.ord){case he.Types.INTEGER.ord:i=i.toNumber();var o=new Lt.StoreValue(he.Types.REAL,Je(i));return e.insertStore("$",o),e.mode=ze.Modes.RETURN,Promise.resolve(e);case he.Types.STRING.ord:var a=ui.createParser(i);try{var r=a.parseTerm();if(r instanceof pn){var s=new Lt.StoreValue(he.Types.REAL,r.value);return e.insertStore("$",s),e.mode=ze.Modes.RETURN,Promise.resolve(e)}}catch(e){}}var l=he.Types.REAL.stringInfo()[0];return Promise.reject(kt.invalid_type_conversion(i,l.type,l.dim))}))]);return new ge("$castReal",he.Types.REAL,[new He(new Ut.MultiType([he.Types.INTEGER,he.Types.STRING]),"val",!1)],e)}(),$castInt:function(){var e=new Ae([],[new Ve((function(e,t){var n=e.applyStore("val"),i=n.get();switch(n.type.ord){case he.Types.REAL.ord:i=i.toNumber();var o=new Lt.StoreValue(he.Types.INTEGER,Math.floor(i));return e.insertStore("$",o),e.mode=ze.Modes.RETURN,Promise.resolve(e);case he.Types.STRING.ord:var a=ui.createParser(i);try{var r=a.parseTerm();if(r instanceof rn){var s=new Lt.StoreValue(he.Types.INTEGER,r.value);return e.insertStore("$",s),e.mode=ze.Modes.RETURN,Promise.resolve(e)}}catch(e){}}var l=he.Types.INTEGER.stringInfo()[0];return Promise.reject(kt.invalid_type_conversion(i,l.type,l.dim))}))]);return new ge("$castInt",he.Types.INTEGER,[new He(new Ut.MultiType([he.Types.REAL,he.Types.STRING]),"val",!1)],e)}(),$castBool:function(){var e=new Ae([],[new Ve((function(e,t){var n=e.applyStore("str").get(),i=ui.createParser(n);try{var o=i.parseTerm();if(o instanceof yn){var a=new Lt.StoreValue(he.Types.BOOLEAN,o.value);return e.insertStore("$",a),e.mode=ze.Modes.RETURN,Promise.resolve(e)}}catch(e){}var r=he.Types.BOOLEAN.stringInfo()[0];return Promise.reject(kt.invalid_type_conversion(n,r.type,r.dim))}))]);return new ge("$castBool",he.Types.BOOLEAN,[new He(he.Types.STRING,"str",!1)],e)}(),$castString:function(){var e=new Ae([],[new Ve((function(e,t){var n=e.applyStore("str"),i=tt(n.get(),n.type),o=new Lt.StoreValue(he.Types.STRING,i);return e.insertStore("$",o),e.mode=ze.Modes.RETURN,Promise.resolve(e)}))]);return new ge("$castString",he.Types.STRING,[new He(he.Types.ALL,"str",!1)],e)}()}},Bt=function(){for(var e={},t=0;t<arguments.length;t++){var n=t<0||arguments.length<=t?void 0:arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e}(Kt.$ioLib,Kt.$langLib,Kt.$strLib,Kt.$arrayLib),Gt=Object.freeze({getMainFunctionName:function(){return T.getCurrentLangFuncs().main_function},getInternalName:function(e){if(-1!==e.indexOf(".")){var t=e.split("."),n=Ft(t[0],T.getCurrentLangLibs()),i=Ft(t[1],T.getCurrentLangFuncs());return null===n||null===i?null:n+"."+i}var o=Ft(e,T.getCurrentLangFuncs());return null!==o&&Bt[o]?o:null},getFunction:function(e){if(-1!==e.indexOf(".")){var t=e.split("."),n=t[0],i=t[1];return Kt[n][i]}return Bt[e]},getLocalName:function(e){if(-1!==e.indexOf(".")){var t=e.split("."),n=T.getCurrentLangLibs()[t[0]],i=T.getCurrentLangFuncs()[t[1]];return"".concat(n,".").concat(i)}return T.getCurrentLangFuncs()[e]?T.getCurrentLangFuncs()[e]:e}});function Dt(e){return(Dt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Vt(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function qt(e,t){return!t||"object"!==Dt(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Ht(e){return(Ht=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function zt(e,t){return(zt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Xt=function(e){function t(e,n){var i;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(i=qt(this,Ht(t).call(this))).id=e,i.actualParameters=n,i}var n,i,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&zt(e,t)}(t,e),n=t,(i=[{key:"toString",value:function(){var e=null;e=this.isMainCall?Gt.getMainFunctionName():Gt.getLocalName(this.id);var t=null;return t=0==this.actualParameters.length?"()":"("+this.actualParameters.map((function(e){return e.toString()})).join(",")+")",this.parenthesis?"(".concat(e+t,")"):e+t}},{key:"isMainCall",get:function(){return null===this.id}},{key:"parametersSize",get:function(){return this.actualParameters.length}}])&&Vt(n.prototype,i),o&&Vt(n,o),t}(a);function Wt(e){return(Wt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Qt(e,t){return!t||"object"!==Wt(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Yt(e){return(Yt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Jt(e,t){return(Jt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Zt=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=Qt(this,Yt(t).call(this))).type=e,n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Jt(e,t)}(t,e),t}(a);function en(e){return(en="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function tn(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function nn(e,t){return!t||"object"!==en(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function on(e){return(on=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function an(e,t){return(an=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var rn=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=nn(this,on(t).call(this,he.Types.INTEGER))).value=e,n}var n,i,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&an(e,t)}(t,e),n=t,(i=[{key:"toString",value:function(){var e=tt(this.value,this.type);return this.parenthesis?"(".concat(e,")"):e}}])&&tn(n.prototype,i),o&&tn(n,o),t}(Zt);function sn(e){return(sn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ln(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function cn(e,t){return!t||"object"!==sn(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function un(e){return(un=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function dn(e,t){return(dn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var pn=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=cn(this,un(t).call(this,he.Types.REAL))).value=e,n}var n,i,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&dn(e,t)}(t,e),n=t,(i=[{key:"toString",value:function(){var e=tt(this.value,this.type);return this.parenthesis?"(".concat(e,")"):e}}])&&ln(n.prototype,i),o&&ln(n,o),t}(Zt);function _n(e){return(_n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function fn(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function mn(e,t){return!t||"object"!==_n(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function vn(e){return(vn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function hn(e,t){return(hn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var yn=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=mn(this,vn(t).call(this,he.Types.BOOLEAN))).value=e,n}var n,i,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&hn(e,t)}(t,e),n=t,(i=[{key:"toString",value:function(){var e=et(this.value);return this.parenthesis?"(".concat(e,")"):e}}])&&fn(n.prototype,i),o&&fn(n,o),t}(Zt);function gn(e){return(gn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function bn(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function wn(e,t){return!t||"object"!==gn(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function xn(e){return(xn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function En(e,t){return(En=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Tn=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=wn(this,xn(t).call(this,he.Types.STRING))).value=e,n}var n,i,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&En(e,t)}(t,e),n=t,(i=[{key:"toString",value:function(){var e='"'+this.value+'"';return this.parenthesis?"(".concat(e,")"):e}}])&&bn(n.prototype,i),o&&bn(n,o),t}(Zt);function Rn(e){return(Rn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function An(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function On(e,t){return!t||"object"!==Rn(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function In(e){return(In=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Cn(e,t){return(Cn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Nn=function(e){function t(e,n){var i;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(i=On(this,In(t).call(this,e))).value=n,i}var n,i,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Cn(e,t)}(t,e),n=t,(i=[{key:"validateType",value:function(){return!0}},{key:"validateSize",value:function(){return!0}},{key:"toString",value:function(){var e="{"+this.value.map((function(e){return e.toString()})).join(",")+"}";return this.parenthesis?"(".concat(e,")"):e}},{key:"subtype",get:function(){var e=this.value[0];return e instanceof t?e.value[0].type:e.type}},{key:"lines",get:function(){return this.value.length}},{key:"columns",get:function(){var e=this.value[0];return e instanceof t?e.value.length:null}},{key:"isVector",get:function(){return null===this.columns}},{key:"isValid",get:function(){return this.validateSize()&&this.validateType()}}])&&An(n.prototype,i),o&&An(n,o),t}(Zt);function Sn(e){return(Sn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function kn(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function Ln(e,t){return!t||"object"!==Sn(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function $n(e){return($n=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Un(e,t){return(Un=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Pn=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=Ln(this,$n(t).call(this,he.Types.UNDEFINED))).id=e,n}var n,i,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Un(e,t)}(t,e),n=t,(i=[{key:"toString",value:function(){return this.parenthesis?"(".concat(this.id,")"):this.id}}])&&kn(n.prototype,i),o&&kn(n,o),t}(Zt);function Mn(e){return(Mn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Fn(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function jn(e,t){return!t||"object"!==Mn(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Kn(e){return(Kn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Bn(e,t){return(Bn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Gn=function(e){function t(e,n,i){var o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(o=jn(this,Kn(t).call(this))).op=e,o.left=n,o.right=i,o}var n,i,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Bn(e,t)}(t,e),n=t,(i=[{key:"toString",value:function(){var e=this.left.toString(),t=this.op.value,n=this.right.toString();return this.parenthesis?"(".concat(e+t+n,")"):e+t+n}}])&&Fn(n.prototype,i),o&&Fn(n,o),t}(a);function Dn(e){return(Dn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Vn(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function qn(e,t){return!t||"object"!==Dn(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Hn(e){return(Hn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function zn(e,t){return(zn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Xn=function(e){function t(e,n){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),qn(this,Hn(t).call(this,e,n,null))}var n,i,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&zn(e,t)}(t,e),n=t,(i=[{key:"toString",value:function(){var e=this.left.toString(),t=this.op.value;return this.parenthesis?"(".concat(t+e,")"):t+e}}])&&Vn(n.prototype,i),o&&Vn(n,o),t}(Gn);function Wn(e){return(Wn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Qn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Yn(e){var t="function"==typeof Map?new Map:void 0;return(Yn=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,i)}function i(){return Jn(e,arguments,ei(this).constructor)}return i.prototype=Object.create(e.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),Zn(i,e)})(e)}function Jn(e,t,n){return(Jn=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}()?Reflect.construct:function(e,t,n){var i=[null];i.push.apply(i,t);var o=new(Function.bind.apply(e,i));return n&&Zn(o,n.prototype),o}).apply(null,arguments)}function Zn(e,t){return(Zn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function ei(e){return(ei=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var ti=function(e){function t(){var e,n,i,o;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var a=arguments.length,r=new Array(a),s=0;s<a;s++)r[s]=arguments[s];return i=this,n=!(o=(e=ei(t)).call.apply(e,[this].concat(r)))||"object"!==Wn(o)&&"function"!=typeof o?Qn(i):o,Error.captureStackTrace&&Error.captureStackTrace(Qn(n),t),n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Zn(e,t)}(t,e),t}(Yn(Error)),ni=It();function ii(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return new ti(ni.getError(e,t))}var oi=Object.freeze({extra_lines:function(){return new ti(ni.getError("extra_lines"))},token_missing_one:function(e,t){return ii("token_missing_one",[e,t.text,t.line,t.column])},token_missing_list:function(e,t){var n=e.join(ni.getOR());return oi.token_missing_one(n,t)},id_missing:function(e){return ii("id_missing",[e.text,e.line,e.column])},eos_missing:function(e){return ii("eos_missing",[e.line,e.column])},invalid_array_dimension:function(e,t){return ii("invalid_array_dimension",[t.line,t.column,e])},invalid_array_size:function(e){return ii("invalid_array_size",[e.line])},invalid_main_return:function(e,t,n){return ii("invalid_main_return",[e,t,n.line])},invalid_var_declaration:function(e){return ii("invalid_var_declaration",[e.line])},invalid_break_command:function(e,t){return ii("invalid_break_command",[t.line,e])},invalid_terminal:function(e){return ii("invalid_terminal",[e.text,e.line,e.column])},invalid_type:function(e,t){var n=e.join(ni.getOR());return ii("invalid_type",[t.text,t.line,t.column,n])},const_not_init:function(e){return ii("const_not_init",[e.line,e.column])},invalid_id_format:function(e){return ii("invalid_id_format",[e.text,e.line,e.column])},duplicate_function:function(e){return ii("duplicate_function",[e.text,e.line,e.column])},main_parameters:function(){return ii("main_parameters")},duplicate_variable:function(e){return ii("duplicate_variable",[e.text,e.line,e.column])},invalid_character:function(e,t,n){return ii("invalid_character",[e,t])},annonymous_array_literal:function(e){return ii("annonymous_array_literal",[e.line])},invalid_matrix_literal_line:function(e,t){return ii("invalid_matrix_literal_line",[e,t.line])},cannot_infer_matrix_line:function(e,t){return ii("cannot_infer_matrix_line",[e,t.line])},cannot_infer_matrix_column:function(e,t){return ii("cannot_infer_matrix_column",[e,t.line])},cannot_infer_vector_size:function(e,t){return ii("cannot_infer_vector_size",[e,t.line])},matrix_to_vector_literal_attr:function(e,t,n){return ii("matrix_to_vector_literal_attr",[n.line,t,e])},vector_to_matrix_literal_attr:function(e,t,n){return ii("vector_to_matrix_literal_attr",[n.line,t,e])},array_init_not_literal:function(e){return ii("array_init_not_literal",[e.line])},array_exceeds_2d:function(e){return ii("array_exceeds_2d",[e.line])},invalid_matrix_id_dimension:function(e){return ii("invalid_matrix_id_dimension",[e.line])},invalid_vector_init:function(e){return ii("invalid_vector_init",[e.line])},invalid_matrix_init:function(e){return ii("invalid_matrix_init",[e.line])}});function ai(e){var t=this._tokenStartCharIndex,n=this._input.index,i=this._input.getText(t,n);i=this.getErrorDisplay(i);var o=this._tokenStartLine,a=this._tokenStartColumn;throw oi.invalid_character(i,o,a)}function ri(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var si=function(){var e,t,n;function i(e,t,n,o){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),this.line=e,this.column=t,this.text=n,this.size=o}return e=i,n=[{key:"createSourceInfo",value:function(e){return new i(e.line,e.column,e.text,e.text.length)}},{key:"createSourceInfoFromList",value:function(e,t){return new i(e.line,e.column,"",t.tokenIndex+1-e.tokenIndex)}}],(t=null)&&ri(e.prototype,t),n&&ri(e,n),i}();function li(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function ci(e,t,n){return t&&li(e.prototype,t),n&&li(e,n),e}var ui=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.lexerClass=n,this.inputStream=new i.InputStream(t),this.lexer=new n(this.inputStream),this.lexer.recover=ai.bind(this.lexer),this.tokenStream=new i.CommonTokenStream(this.lexer),this.tokenStream.fill(),this.pos=1,this.variableTypes=[this.lexerClass.RK_INTEGER,this.lexerClass.RK_REAL,this.lexerClass.RK_BOOLEAN,this.lexerClass.RK_STRING],this.functionTypes=this.variableTypes.concat(this.lexerClass.RK_VOID),this.parsingArrayDimension=0,this.scope=[],this.langFuncs=T.getCurrentLangFuncs(),this.definedFuncsNameList=[],this.definedVariablesStack=[]}return ci(e,null,[{key:"createParser",value:function(t){return new e(t,T.getCurrentLexer())}},{key:"BASE",get:function(){return 0}},{key:"FUNCTION",get:function(){return 1}},{key:"COMMAND",get:function(){return 2}},{key:"BREAKABLE",get:function(){return 4}}]),ci(e,[{key:"parseTree",value:function(){return this.parseProgram()}},{key:"getToken",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.pos;return this.tokenStream.LT(e)}},{key:"insideScope",value:function(t){return this.scope.length<=0?e.BASE===t:this.scope[this.scope.length-1]===t}},{key:"pushScope",value:function(e){this.scope.push(e)}},{key:"pushVariableStack",value:function(){this.definedVariablesStack.push([])}},{key:"popScope",value:function(){return this.scope.pop()}},{key:"popVariableStack",value:function(){return this.definedVariablesStack.pop()}},{key:"getCurrentVariableStack",value:function(){return this.definedVariablesStack[this.definedVariablesStack.length-1]}},{key:"isEOF",value:function(){return this.getToken(this.pos),this.tokenStream.fetchedEOF}},{key:"parseProgram",value:function(){this.consumeNewLines();var e=this.getToken(),t=[],n=[];if(this.lexerClass.RK_PROGRAM===e.type){for(this.pos++,this.consumeNewLines(),this.checkOpenCurly(),this.pos++,this.pushVariableStack();;){this.consumeNewLines();var i=this.getToken();if(i.type===this.lexerClass.RK_CONST||this.isVariableType(i))t=t.concat(this.parseGlobalVariables());else{if(i.type!==this.lexerClass.RK_FUNCTION)break;this.pushVariableStack(),n=n.concat(this.parseFunction()),this.popVariableStack()}}if(this.consumeNewLines(),this.checkCloseCurly(),this.pos++,this.consumeNewLines(),!this.isEOF())throw oi.extra_lines();return this.popVariableStack(),{global:t,functions:n}}throw oi.token_missing_one(this.lexer.literalNames[this.lexerClass.RK_PROGRAM],e)}},{key:"checkOpenCurly",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.getToken();if(this.lexerClass.OPEN_CURLY!==t.type){if(e)return!1;throw oi.token_missing_one("{",t)}return!0}},{key:"checkCloseCurly",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.getToken();if(this.lexerClass.CLOSE_CURLY!==t.type){if(e)return!1;throw oi.token_missing_one("}",t)}return!0}},{key:"checkOpenBrace",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.getToken();if(this.lexerClass.OPEN_BRACE!==t.type){if(e)return!1;throw oi.token_missing_one("[",t)}return!0}},{key:"checkCloseBrace",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.getToken();if(this.lexerClass.CLOSE_BRACE!==t.type){if(e)return!1;throw oi.token_missing_one("]",t)}return!0}},{key:"checkOpenParenthesis",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.getToken();if(this.lexerClass.OPEN_PARENTHESIS!==t.type){if(e)return!1;throw oi.token_missing_one("(",t)}return!0}},{key:"checkCloseParenthesis",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.getToken();if(this.lexerClass.CLOSE_PARENTHESIS!==t.type){if(e)return!1;throw oi.token_missing_one(")",t)}return!0}},{key:"checkEOS",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.getToken();if(t.type!==this.lexerClass.EOS){if(e)return!1;throw oi.eos_missing(t)}return!0}},{key:"checkFunctionDuplicate",value:function(e,t){var n=null===e?"$main":e;if(-1!==this.definedFuncsNameList.indexOf(n))throw oi.duplicate_function(t);this.definedFuncsNameList.push(n)}},{key:"checkVariableDuplicate",value:function(e,t){if(-1!==this.getCurrentVariableStack().indexOf(e))throw oi.duplicate_variable(t);this.getCurrentVariableStack().push(e)}},{key:"consumeForSemiColon",value:function(){var e=this.getToken();if(e.type!==this.lexerClass.EOS||!e.text.match(";"))throw oi.token_missing_one(";",e);this.pos++}},{key:"parseGlobalVariables",value:function(){var e=this.parseMaybeConst();return this.checkEOS(),this.pos++,e}},{key:"parseMaybeConst",value:function(){var e=this.getToken();if(e.type===this.lexerClass.RK_CONST){this.pos++;var t=this.parseType();return this.parseDeclaration(t,!0)}if(this.isVariableType(e)){var n=this.parseType();return this.parseDeclaration(n)}throw oi.token_missing_list([this.lexer.literalNames[this.lexerClass.RK_CONST]].concat(this.getTypeArray()),e)}},{key:"parseDeclaration",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=null,i=null,o=null,a=0,r=si.createSourceInfo(this.getToken()),s=this.parseID();if(this.checkVariableDuplicate(s,r),this.checkOpenBrace(!0))return this.pos+=1,this.consumeNewLines(),i=this.parseArrayDimension(),this.consumeNewLines(),this.checkCloseBrace(),this.pos+=1,a+=1,this.checkOpenBrace(!0)&&(this.pos+=1,this.consumeNewLines(),o=this.parseArrayDimension(),this.consumeNewLines(),this.checkCloseBrace(),this.pos+=1,a+=1),this.parseArrayDeclaration(e,t,s,r,a,i,o);var l=this.getToken();if(t&&l.type!==this.lexerClass.EQUAL)throw oi.const_not_init(r);l.type===this.lexerClass.EQUAL&&(this.pos++,n=this.parseExpressionOR());var c=new J(s,e,n,t);c.sourceInfo=r;var u=this.getToken();return u.type===this.lexerClass.COMMA?(this.pos++,this.consumeNewLines(),[c].concat(this.parseDeclaration(e,t))):[c]}},{key:"parseArrayDeclaration",value:function(e,t,n,i,o,a,r){var s=this.getToken(),l=a,c=r,u=null,d=!1;if((a instanceof Pn||r instanceof Pn)&&(d=!0,o>1&&(null==a||null==r)))throw oi.invalid_matrix_id_dimension(si.createSourceInfo(s));if(t&&s.type!==this.lexerClass.EQUAL)throw oi.const_not_init(i);if(s.type===this.lexerClass.EQUAL){if(d)throw 1==o?oi.invalid_vector_init(si.createSourceInfo(s)):oi.invalid_matrix_init(si.createSourceInfo(s));this.pos+=1,u=this.parseArrayLiteral(e)}if(null==u&&null==a){if(o>1)throw oi.cannot_infer_matrix_line(n,i);throw oi.cannot_infer_vector_size(n,i)}if(o>1&&null==u&&null==r)throw oi.cannot_infer_matrix_column(n,i);if(1===o&&null!=u&&!u.isVector){var p=u.toString();throw oi.matrix_to_vector_literal_attr(n,p,u.sourceInfo)}if(o>1&&null!=u&&u.isVector){var _=u.toString();throw oi.vector_to_matrix_literal_attr(n,_,u.sourceInfo)}null==a&&((l=new rn(Qe(u.lines))).sourceInfo=i),o>1&&null==r&&((c=new rn(Qe(u.columns))).sourceInfo=i);var f=new oe(n,new $t.ArrayType(e,o),l,c,u,t);return f.sourceInfo=i,this.getToken().type===this.lexerClass.COMMA?(this.pos++,this.consumeNewLines(),[f].concat(this.parseDeclaration(e,t))):[f]}},{key:"consumeNewLines",value:function(){for(var e=this.getToken();e.type===this.lexerClass.EOS&&e.text.match("[\r\n]+");)this.pos++,e=this.getToken()}},{key:"isVariableType",value:function(e){return this.variableTypes.find((function(t){return t===e.type}))}},{key:"parseArrayDimension",value:function(){var e=this.getToken();if(e.type===this.lexerClass.INTEGER)return this.pos++,this.getIntLiteral(e);if(e.type===this.lexerClass.ID)return this.pos++,this.parseVariable(e);if(e.type===this.lexerClass.CLOSE_BRACE)return null;throw oi.invalid_array_dimension(this.lexer.literalNames[this.lexerClass.RK_INTEGER],e)}},{key:"getIntLiteral",value:function(e){var t=e.text,n=si.createSourceInfo(e),i=new rn(Qe(t));return i.sourceInfo=n,i}},{key:"getRealLiteral",value:function(e){var t=si.createSourceInfo(e),n=new pn(Je(e.text));return n.sourceInfo=t,n}},{key:"getStringLiteral",value:function(e){var t=e.text,n=si.createSourceInfo(e),i=new Tn(Ye(t));return i.sourceInfo=n,i}},{key:"getBoolLiteral",value:function(e){var t=Ze(e.text),n=new yn(t);return n.sourceInfo=si.createSourceInfo(e),n}},{key:"parseArrayLiteral",value:function(e){if(!this.checkOpenCurly(!0)){var t=this.getToken();throw oi.array_init_not_literal(si.createSourceInfo(t))}var n=this.getToken();if(this.parsingArrayDimension>=2)throw oi.array_exceeds_2d(si.createSourceInfo(n));this.pos+=1,this.parsingArrayDimension+=1,this.consumeNewLines();var i=null;i=this.checkOpenCurly(!0)?this.parseVectorList(e):this.parseExpressionList(),this.consumeNewLines(),this.checkCloseCurly();var o=this.getToken();this.pos+=1,this.parsingArrayDimension-=1;var a=si.createSourceInfoFromList(n,o),r=1;i[0]instanceof Nn?r+=1:1==i.length&&console.log("Talvez uma variável seja uma melhor opção");var s=new $t.ArrayType(e,r),l=new Nn(s,i);return l.sourceInfo=a,l}},{key:"parseVectorList",value:function(e){for(var t=[],n=null;;){this.checkOpenCurly();var i=this.getToken();if(this.parsingArrayDimension>=2)throw oi.array_exceeds_2d(si.createSourceInfo(i));this.pos+=1,this.parsingArrayDimension+=1,this.consumeNewLines();var o=this.parseExpressionList();this.consumeNewLines(),this.checkCloseCurly();var a=this.getToken();this.pos+=1,this.parsingArrayDimension-=1;var r=si.createSourceInfoFromList(i,a);if(null==n)n=o.length;else if(n!==o.length){var s=this.inputStream.getText(i.start,a.stop);throw oi.invalid_matrix_literal_line(s,r)}var l=new $t.ArrayType(e,1),c=new Nn(l,o);if(c.sourceInfo=r,t.push(c),this.getToken().type!==this.lexerClass.COMMA)break;this.pos+=1,this.consumeNewLines()}return 1==t.length&&console.log("Talvez um vetor seja uma melhor opção"),t}},{key:"parseVariable",value:function(e){var t=si.createSourceInfo(e),n=new Pn(e.text);return n.sourceInfo=t,n}},{key:"parseFunction",value:function(){this.pushScope(e.FUNCTION);var t=[],n=this.getToken();if(n.type!==this.lexerClass.RK_FUNCTION)return null;this.pos++;var i=this.parseType(),o=0;this.checkOpenBrace(!0)&&(this.pos++,this.checkCloseBrace(),this.pos++,o++,this.checkOpenBrace(!0)&&(this.pos++,this.checkCloseBrace(),this.pos++,o++));var a=this.getToken(),r=this.parseID();this.checkFunctionDuplicate(r,a),this.checkOpenParenthesis(),this.pos++,this.consumeNewLines(),this.checkCloseParenthesis(!0)?this.pos++:(t=this.parseFormalParameters(),this.consumeNewLines(),this.checkCloseParenthesis(),this.pos++),this.consumeNewLines();var s=this.parseCommandBlock(),l=i;o>0&&(l=new $t.ArrayType(i,o));var c=new ge(r,l,t,s);if(null===r&&!c.isMain)throw oi.invalid_main_return(Gt.getMainFunctionName(),this.lexer.literalNames[this.lexerClass.RK_VOID],n.line);if(c.isMain&&0!==t.length)throw oi.main_parameters();return this.popScope(),c}},{key:"parseFormalParameters",value:function(){for(var e=[];;){var t=0,n=!1,i=this.parseType(),o=this.getToken();o.type===this.lexerClass.RK_REFERENCE&&(n=!0,this.pos+=1,o=this.getToken());var a=this.parseID();this.checkVariableDuplicate(a,o),this.checkOpenBrace(!0)&&(this.pos+=1,t+=1,this.checkCloseBrace(),this.pos+=1,this.checkOpenBrace(!0)&&(this.pos+=1,t+=1,this.checkCloseBrace(),this.pos+=1));var r=null;r=t>0?new $t.ArrayType(i,t):i;var s=new He(r,a,n);if(s.sourceInfo=si.createSourceInfo(o),e.push(s),this.getToken().type!==this.lexerClass.COMMA)break;this.pos++,this.consumeNewLines()}return e}},{key:"parseID",value:function(){var t=this.getToken();if(t.type!==this.lexerClass.ID)throw oi.id_missing(t);return this.pos++,this.insideScope(e.FUNCTION)&&t.text===Gt.getMainFunctionName()?null:t.text}},{key:"parseMaybeLibID",value:function(){var e=this.getToken();if(e.type!==this.lexerClass.ID&&e.type!==this.lexerClass.LIB_ID)throw oi.id_missing(e);return this.pos++,e.text}},{key:"parseType",value:function(){var t=this.getToken();if(t.type===this.lexerClass.ID&&this.insideScope(e.FUNCTION))return he.Types.VOID;if(t.type===this.lexerClass.RK_VOID&&this.insideScope(e.FUNCTION))return this.pos++,he.Types.VOID;if(this.isVariableType(t))switch(this.pos++,t.type){case this.lexerClass.RK_INTEGER:return he.Types.INTEGER;case this.lexerClass.RK_BOOLEAN:return he.Types.BOOLEAN;case this.lexerClass.RK_REAL:return he.Types.REAL;case this.lexerClass.RK_STRING:return he.Types.STRING}throw oi.invalid_type(this.getTypeArray(),t)}},{key:"parseCommandBlock",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=[],n=[],i=!1;this.checkOpenCurly(e)&&(this.pos++,i=!0),this.consumeNewLines();for(var o=!1;;){var a=this.parseCommand();if(null===a)break;if(-1!==a)if(a instanceof Array){if(o){var r=this.getToken(this.pos-1);throw oi.invalid_var_declaration(r)}t=t.concat(a)}else o=!0,n.push(a)}return this.consumeNewLines(),i&&(this.checkCloseCurly(),this.pos++,this.consumeNewLines()),new Ae(t,n)}},{key:"parseCommand",value:function(){var t=this.getToken();if(this.isVariableType(t)){if(!this.insideScope(e.FUNCTION))throw oi.invalid_var_declaration(t);this.pushScope(e.BASE);var n=this.parseType();this.popScope();var i=this.parseDeclaration(n);return this.checkEOS(),this.pos++,i}if(t.type===this.lexerClass.ID)return this.parseIDCommand();if(t.type===this.lexerClass.LIB_ID)return this.parseIDCommand();if(t.type===this.lexerClass.RK_RETURN)return this.parseReturn();if(t.type===this.lexerClass.RK_WHILE||t.type===this.lexerClass.RK_WHILE_ALT)return this.parseWhile();if(t.type===this.lexerClass.RK_FOR||t.type===this.lexerClass.RK_FOR_ALT)return this.parseFor();if(t.type===this.lexerClass.RK_BREAK){if(!this.insideScope(e.BREAKABLE))throw oi.invalid_break_command(this.lexer.literalNames[this.lexerClass.RK_BREAK],t);return this.parseBreak()}return t.type===this.lexerClass.RK_SWITCH?this.parseSwitchCase():t.type===this.lexerClass.RK_DO?this.parseRepeatUntil():t.type===this.lexerClass.RK_IF?this.parseIfThenElse():this.checkEOS(!0)?(this.pos++,-1):null}},{key:"parseSwitchCase",value:function(){this.pushScope(e.BREAKABLE),this.pos++,this.checkOpenParenthesis(),this.pos++,this.consumeNewLines();var t=this.parseExpressionOR();this.consumeNewLines(),this.checkCloseParenthesis(),this.pos++,this.consumeNewLines(),this.checkOpenCurly(),this.pos++,this.consumeNewLines();var n=this.parseCases();return this.consumeNewLines(),this.checkCloseCurly(),this.pos++,this.consumeNewLines(),this.popScope(),new Me(t,n)}},{key:"parseRepeatUntil",value:function(){this.pos++,this.consumeNewLines(),this.pushScope(e.BREAKABLE);var t=this.parseCommandBlock();this.consumeNewLines();var n=this.getToken();if(n.type!==this.lexerClass.RK_DO_UNTIL)throw oi.token_missing_one(this.lexer.literalNames[this.lexerClass.RK_DO_UNTIL],n);this.pos++,this.checkOpenParenthesis(),this.pos++,this.consumeNewLines();var i=this.parseExpressionOR();return this.consumeNewLines(),this.checkCloseParenthesis(),this.pos++,this.checkEOS(),this.popScope(),new ke(i,t)}},{key:"parseIfThenElse",value:function(){this.insideScope(e.BREAKABLE)?this.pushScope(e.BREAKABLE):this.pushScope(e.COMMAND);var t=this.getToken();this.pos++,this.checkOpenParenthesis(),this.pos++,this.consumeNewLines();var n=this.parseExpressionOR();this.consumeNewLines(),this.checkCloseParenthesis(),this.pos++,this.consumeNewLines();var i=this.parseCommandBlock();if(this.getToken().type===this.lexerClass.RK_ELSE){this.pos++,this.consumeNewLines();var o=this.getToken(),a=null;if(this.checkOpenCurly(!0))a=this.parseCommandBlock();else{if(o.type!==this.lexerClass.RK_IF)throw oi.token_missing_list([this.lexer.literalNames[this.lexerClass.RK_IF],"{"],o);a=this.parseIfThenElse()}this.popScope();var r=new Te(n,i,a);return r.sourceInfo=si.createSourceInfo(t),r}this.popScope();var s=new Te(n,i,null);return s.sourceInfo=si.createSourceInfo(t),s}},{key:"parseFor",value:function(){this.pushScope(e.BREAKABLE);var t=this.getToken();this.pos+=1;var n=this.getToken(),i=this.parseID(),o=new Pn(i);o.sourceInfo=si.createSourceInfo(n);var a=this.parseForParameters(this.lexerClass.RK_FOR_FROM),r=this.parseForParameters(this.lexerClass.RK_FOR_TO),s=this.parseForParameters(this.lexerClass.RK_FOR_PASS);this.consumeNewLines();var l=this.parseCommandBlock();this.popScope();var c=new ve(o,a,r,s,l);return c.sourceInfo=si.createSourceInfo(t),c}},{key:"parseWhile",value:function(){this.pushScope(e.BREAKABLE);var t=this.getToken();this.pos++,this.checkOpenParenthesis(),this.pos++,this.consumeNewLines();var n=this.parseExpressionOR();this.consumeNewLines(),this.checkCloseParenthesis(),this.pos++,this.consumeNewLines();var i=this.parseCommandBlock();this.popScope();var o=new ue(n,i);return o.sourceInfo=si.createSourceInfo(t),o}},{key:"parseBreak",value:function(){return this.pos++,this.checkEOS(),this.pos++,new S}},{key:"parseReturn",value:function(){this.pos++;var e=null;return this.checkEOS(!0)||(e=this.parseExpressionOR(),this.checkEOS()),this.pos++,new M(e)}},{key:"parseIDCommand",value:function(){var e=this.getToken(),t=e.type===this.lexerClass.ID,n=this.parseMaybeLibID();if(this.checkOpenBrace(!0)){this.pos++;var i,o=null;this.consumeNewLines(),i=this.parseExpression(),this.consumeNewLines(),this.checkCloseBrace(),this.pos++,this.checkOpenBrace(!0)&&(this.pos++,this.consumeNewLines(),o=this.parseExpression(),this.consumeNewLines(),this.checkCloseBrace(),this.pos++);var a=this.getToken();if(a.type!==this.lexerClass.EQUAL)throw oi.token_missing_one("=",a);this.pos++;var r=this.parseExpressionOR();this.checkEOS(),this.pos++;var s=new z(n,i,o,r);return s.sourceInfo=si.createSourceInfo(a),s}var l=this.getToken();if(t&&l.type===this.lexerClass.EQUAL){this.pos++;var c=this.parseExpressionOR();this.checkEOS(),this.pos++;var u=new G(n,c);return u.sourceInfo=si.createSourceInfo(l),u}if(l.type===this.lexerClass.OPEN_PARENTHESIS){var d=this.parseFunctionCallCommand(n);return this.checkEOS(),this.pos++,d}throw t?oi.token_missing_list(["=","("],l):oi.invalid_id_format(e)}},{key:"parseForParameters",value:function(e){if(e===this.lexerClass.RK_FOR_PASS&&this.checkOpenCurly(!0))return null;var t=this.getToken();if(t.type!==e){var n=this.lexer.literalNames[e];throw new Error("Error de sintaxe no comando repita_para: esperava-se "+n+" mas encontrou "+t.text)}this.pos+=1;var i=this.getToken(),o=!1,a=null;i.type===this.lexerClass.SUM_OP&&(o=!0,a=i.text,this.pos+=1,i=this.getToken());var r=null;if(i.type===this.lexerClass.ID?(r=new Pn(this.parseID())).sourceInfo=si.createSourceInfo(i):i.type===this.lexerClass.INTEGER&&(this.pos+=1,r=this.getIntLiteral(i)),null==r){var s=this.lexer.literalNames[e];throw new Error("Error de sintaxe no comando repeita_para: "+i.text+" não é compativel com o esperado para o paramentro "+s+". O valor deve ser um inteiro ou variável.")}return o&&(r=new Xn(gt(a),r)),r}},{key:"parseCases",value:function(){var e=this.getToken();if(e.type!==this.lexerClass.RK_CASE)throw oi.token_missing_one(this.lexer.literalNames[this.lexerClass.RK_CASE],e);if(this.pos++,this.getToken().type===this.lexerClass.RK_DEFAULT){this.pos++;var t=this.getToken();if(t.type!==this.lexerClass.COLON)throw oi.token_missing_one(":",t);this.pos++,this.consumeNewLines();var n=this.parseCommandBlock(!0),i=new De(null);return i.setCommands(n.commands),[i]}var o=this.parseExpressionOR(),a=this.getToken();if(a.type!==this.lexerClass.COLON)throw oi.token_missing_one(":",a);this.pos++,this.consumeNewLines();var r=this.parseCommandBlock(!0),s=new De(o);return s.setCommands(r.commands),this.getToken().type===this.lexerClass.RK_CASE?[s].concat(this.parseCases()):[s]}},{key:"parseExpressionOR",value:function(){for(var e=this.parseExpressionAND();this.getToken().type===this.lexerClass.OR_OPERATOR;){var t=this.getToken();this.pos++;var n=gt("or");this.consumeNewLines();var i=this.parseExpressionAND(),o=new Gn(n,e,i);o.sourceInfo=si.createSourceInfo(t),e=o}return e}},{key:"parseExpressionAND",value:function(){for(var e=this.parseExpressionNot();this.getToken().type===this.lexerClass.AND_OPERATOR;){var t=this.getToken();this.pos++;var n=gt("and");this.consumeNewLines();var i=this.parseExpressionNot(),o=new Gn(n,e,i);o.sourceInfo=si.createSourceInfo(t),e=o}return e}},{key:"parseExpressionNot",value:function(){if(this.getToken().type===this.lexerClass.NOT_OPERATOR){var e=this.getToken();this.pos++;var t=gt("not"),n=this.parseExpressionRel(),i=new Xn(t,n);return i.sourceInfo=si.createSourceInfo(e),i}return this.parseExpressionRel()}},{key:"parseExpressionRel",value:function(){for(var e=this.parseExpression();this.getToken().type===this.lexerClass.RELATIONAL_OPERATOR;){var t=this.getToken();this.pos++;var n=gt(t.text),i=this.parseExpression(),o=new Gn(n,e,i);o.sourceInfo=si.createSourceInfo(t),e=o}return e}},{key:"parseExpression",value:function(){for(var e=this.parseFactor();this.getToken().type===this.lexerClass.SUM_OP;){var t=this.getToken();this.pos++;var n=gt(t.text),i=this.parseFactor(),o=new Gn(n,e,i);o.sourceInfo=si.createSourceInfo(t),e=o}return e}},{key:"parseFactor",value:function(){for(var e=this.parseTerm();this.getToken().type===this.lexerClass.MULTI_OP;){var t=this.getToken();this.pos++;var n=gt(t.text),i=this.parseTerm(),o=new Gn(n,e,i);o.sourceInfo=si.createSourceInfo(t),e=o}return e}},{key:"parseTerm",value:function(){var e=this.getToken(),t=null,n=null;switch(e.type){case this.lexerClass.SUM_OP:return this.pos++,t=si.createSourceInfo(e),(n=new Xn(gt(e.text),this.parseTerm())).sourceInfo=t,n;case this.lexerClass.INTEGER:return this.pos++,this.getIntLiteral(e);case this.lexerClass.REAL:return this.pos++,this.getRealLiteral(e);case this.lexerClass.STRING:return this.pos++,this.getStringLiteral(e);case this.lexerClass.RK_TRUE:case this.lexerClass.RK_FALSE:return this.pos++,this.getBoolLiteral(e);case this.lexerClass.OPEN_CURLY:throw oi.annonymous_array_literal(e);case this.lexerClass.ID:case this.lexerClass.LIB_ID:return this.parseIDTerm();case this.lexerClass.OPEN_PARENTHESIS:return this.parseParenthesisExp();default:throw oi.invalid_terminal(e)}}},{key:"parseIDTerm",value:function(){var e=this.getToken(),t=this.parseMaybeLibID(),n=e.type===this.lexerClass.ID;if(n&&this.checkOpenBrace(!0)){var i=null;this.pos++;var o=this.parseExpression(),a=null;this.consumeNewLines(),this.checkCloseBrace(),i=this.getToken(),this.pos++,this.checkOpenBrace(!0)&&(this.pos++,a=this.parseExpression(),this.consumeNewLines(),this.checkCloseBrace(),i=this.getToken(),this.pos++);var r=si.createSourceInfoFromList(e,i),s=new d(t,o,a);return s.sourceInfo=r,s}if(this.checkOpenParenthesis(!0))return this.parseFunctionCallExpression(t);if(n){var l=si.createSourceInfo(e),c=new Pn(t);return c.sourceInfo=l,c}throw oi.invalid_id_format(e)}},{key:"getFunctionName",value:function(e){var t=Gt.getInternalName(e);return null===t?e===Gt.getMainFunctionName()?null:e:t}},{key:"parseFunctionCallExpression",value:function(e){var t=this.getToken(this.pos-1),n=this.parseActualParameters(),i=this.getToken(this.pos-1),o=this.getFunctionName(e),a=si.createSourceInfoFromList(t,i),r=new Xt(o,n);return r.sourceInfo=a,r}},{key:"parseFunctionCallCommand",value:function(e){return this.parseFunctionCallExpression(e)}},{key:"parseParenthesisExp",value:function(){this.checkOpenParenthesis();var e=this.getToken();this.pos+=1,this.consumeNewLines();var t=this.parseExpressionOR();this.consumeNewLines(),this.checkCloseParenthesis();var n=this.getToken();return this.pos+=1,t.sourceInfo=si.createSourceInfoFromList(e,n),t.parenthesis=!0,t}},{key:"parseActualParameters",value:function(){if(this.checkOpenParenthesis(),this.pos++,this.checkCloseParenthesis(!0))return this.pos++,[];this.consumeNewLines();var e=this.parseExpressionList();return this.consumeNewLines(),this.checkCloseParenthesis(),this.pos++,e}},{key:"parseExpressionList",value:function(){for(var e=[];;){var t=this.parseExpressionOR();if(e.push(t),this.getToken().type!==this.lexerClass.COMMA)break;this.pos++,this.consumeNewLines()}return e}},{key:"getTypeArray",value:function(){var t=this;return(this.insideScope(e.FUNCTION)?this.functionTypes:this.variableTypes).map((function(e){return t.lexer.literalNames[e]}))}}]),e}(),di=n(6),pi=n(14);function _i(){var e=[[],[],[],[]];return e[he.Types.INTEGER.ord][he.Types.INTEGER.ord]=he.Types.INTEGER,e[he.Types.INTEGER.ord][he.Types.REAL.ord]=he.Types.REAL,e[he.Types.REAL.ord][he.Types.INTEGER.ord]=he.Types.REAL,e[he.Types.REAL.ord][he.Types.REAL.ord]=he.Types.REAL,e}function fi(){var e=[[],[],[],[]];return e[he.Types.INTEGER.ord][he.Types.INTEGER.ord]=he.Types.BOOLEAN,e[he.Types.REAL.ord][he.Types.REAL.ord]=he.Types.BOOLEAN,e[he.Types.BOOLEAN.ord][he.Types.BOOLEAN.ord]=he.Types.BOOLEAN,e[he.Types.STRING.ord][he.Types.STRING.ord]=he.Types.BOOLEAN,e}function mi(){var e=[[],[],[],[]];return e[he.Types.INTEGER.ord][he.Types.INTEGER.ord]=he.Types.BOOLEAN,e[he.Types.REAL.ord][he.Types.REAL.ord]=he.Types.BOOLEAN,e[he.Types.STRING.ord][he.Types.STRING.ord]=he.Types.BOOLEAN,e}function vi(){var e=[[],[],[],[]];return e[he.Types.BOOLEAN.ord][he.Types.BOOLEAN.ord]=he.Types.BOOLEAN,e}function hi(){var e=[];return e[he.Types.INTEGER.ord]=he.Types.INTEGER,e[he.Types.REAL.ord]=he.Types.REAL,e}var yi,gi,bi=((gi=new WeakMap).set(yt.ADD,((yi=[[],[],[],[]])[he.Types.INTEGER.ord][he.Types.INTEGER.ord]=he.Types.INTEGER,yi[he.Types.INTEGER.ord][he.Types.REAL.ord]=he.Types.REAL,yi[he.Types.INTEGER.ord][he.Types.STRING.ord]=he.Types.STRING,yi[he.Types.REAL.ord][he.Types.INTEGER.ord]=he.Types.REAL,yi[he.Types.REAL.ord][he.Types.REAL.ord]=he.Types.REAL,yi[he.Types.REAL.ord][he.Types.STRING.ord]=he.Types.STRING,yi[he.Types.STRING.ord][he.Types.INTEGER.ord]=he.Types.STRING,yi[he.Types.STRING.ord][he.Types.REAL.ord]=he.Types.STRING,yi[he.Types.STRING.ord][he.Types.STRING.ord]=he.Types.STRING,yi[he.Types.STRING.ord][he.Types.BOOLEAN.ord]=he.Types.STRING,yi)),gi.set(yt.SUB,_i()),gi.set(yt.MULT,_i()),gi.set(yt.DIV,_i()),gi.set(yt.EQ,fi()),gi.set(yt.NEQ,fi()),gi.set(yt.GE,mi()),gi.set(yt.GT,mi()),gi.set(yt.LE,mi()),gi.set(yt.LT,mi()),gi.set(yt.OR,vi()),gi.set(yt.AND,vi()),gi.set(yt.MOD,function(){var e=[[],[],[],[]];return e[he.Types.INTEGER.ord][he.Types.INTEGER.ord]=he.Types.INTEGER,e}()),gi),wi=function(){var e,t=new WeakMap;return t.set(yt.ADD,hi()),t.set(yt.SUB,hi()),t.set(yt.NOT,((e=[])[he.Types.BOOLEAN.ord]=he.Types.BOOLEAN,e)),t}();function xi(e,t,n){try{if(t instanceof Ut.MultiType&&n instanceof Ut.MultiType){for(var i=[],o=0;o<t.types.length;++o)for(var a=t.types[o];0<n.types.length;++o){var r=n.types[0];i.push(xi(e,a,r))}return(i=i.filter((function(e){return!e.isCompatible(he.Types.UNDEFINED)}))).length<=0?y.enable_type_casting&&(t.isCompatible(he.Types.INTEGER)||t.isCompatible(he.Types.REAL))&&(n.isCompatible(he.Types.INTEGER)||n.isCompatible(he.Types.REAL))?new Ut.MultiType([he.Types.INTEGER,he.Types.REAL]):he.Types.UNDEFINED:new Ut.MultiType(i)}if(t instanceof Ut.MultiType)return t.isCompatible(n)?xi(e,n,n):y.enable_type_casting&&(t.isCompatible(he.Types.INTEGER)||t.isCompatible(he.Types.REAL))&&(n.isCompatible(he.Types.INTEGER)||n.isCompatible(he.Types.REAL))?n:he.Types.UNDEFINED;if(n instanceof Ut.MultiType)return n.isCompatible(t)?xi(e,t,t):y.enable_type_casting&&(t.isCompatible(he.Types.INTEGER)||t.isCompatible(he.Types.REAL))&&(n.isCompatible(he.Types.INTEGER)||n.isCompatible(he.Types.REAL))?t:he.Types.UNDEFINED;var s=bi.get(e)[t.ord][n.ord];if(null==s){if(y.enable_type_casting&&(t.isCompatible(he.Types.INTEGER)||t.isCompatible(he.Types.REAL))&&(n.isCompatible(he.Types.INTEGER)||n.isCompatible(he.Types.REAL))){if(e===yt.MOD)return he.Types.INTEGER;if(e.ord>=5&&e.ord<=10)return he.Types.BOOLEAN}return he.Types.UNDEFINED}return s}catch(e){if(e instanceof TypeError)return he.Types.UNDEFINED;throw e}}function Ei(e,t){try{if(t instanceof Ut.MultiType)return t;var n=wi.get(e)[t.ord];return null==n?he.Types.UNDEFINED:n}catch(e){if(e instanceof TypeError)return he.Types.UNDEFINED;throw e}}var Ti=n(16),Ri=n(33),Ai=n(17),Oi=n(37),Ii=n(26);function Ci(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)))return;var n=[],i=!0,o=!1,a=void 0;try{for(var r,s=e[Symbol.iterator]();!(i=(r=s.next()).done)&&(n.push(r.value),!t||n.length!==t);i=!0);}catch(e){o=!0,a=e}finally{try{i||null==s.return||s.return()}finally{if(o)throw a}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function Ni(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function Si(e,t,n){return t&&Ni(e.prototype,t),n&&Ni(e,n),e}var ki=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.ast=t,this.globalStore=new di.Store("$global"),this.stores=[this.globalStore],this.context=[pi.Context.BASE],this.input=null,this.forceKill=!1,this.output=null,this.mode=ze.Modes.RUN,this.function_call_stack=[],this.instruction_count=0,this.function_call_count=0}return Si(e,null,[{key:"MAIN_INTERNAL_ID",get:function(){return"$main"}}]),Si(e,[{key:"registerInput",value:function(e){null!==this.input&&(this.input=null),this.input=e}},{key:"registerOutput",value:function(e){null!==this.output&&(this.output=null),this.output=e}},{key:"checkContext",value:function(e){return this.context[this.context.length-1]===e}},{key:"ignoreSwitchCases",value:function(e){return e.mode===ze.Modes.RETURN||e.mode===ze.Modes.BREAK}},{key:"prepareState",value:function(){if(null!==this.stores){for(var e=0;e<this.stores.length;e++)delete this.stores[e];this.stores=null}null!==this.globalStore&&(this.globalStore=null),this.globalStore=new di.Store("$global"),this.stores=[this.globalStore],this.context=[pi.Context.BASE],this.instruction_count=0,this.mode=ze.Modes.RUN}},{key:"interpretAST",value:function(){var e=this;return this.prepareState(),Ti.Location.clear(),this.initGlobal().then((function(t){var n=e.findMainFunction();return null===n?Promise.reject(kt.main_missing()):e.runFunction(n,[],e.globalStore)}))}},{key:"initGlobal",value:function(){return this.checkContext(pi.Context.BASE)?this.executeCommands(this.globalStore,this.ast.global):Promise.reject(kt.invalid_global_var())}},{key:"findMainFunction",value:function(){return this.ast.functions.find((function(e){return e.isMain}))}},{key:"findFunction",value:function(t){if(t.match(/^\$.+$/)){if(t===e.MAIN_INTERNAL_ID)return this.findMainFunction();var n=Gt.getFunction(t);if(!n)throw kt.not_implemented(t);return n}var i=this.ast.functions.find((function(e){return e.name===t}));if(!i)throw kt.function_missing(t);return i}},{key:"runFunction",value:function(t,n,i){var o=this,a=t.isMain?e.MAIN_INTERNAL_ID:t.name,r=new di.Store(a);return r.extendStore(this.globalStore),new Promise((function(e,a){o.associateParameters(t.formalParameters,n,i,r).then((function(e){return o.context.push(pi.Context.FUNCTION),o.stores.push(e),o.executeCommands(e,t.variablesDeclarations).then((function(e){return o.executeCommands(e,t.commands)})).then((function(e){return o.stores.pop(),o.context.pop(),e}))})).then(e).catch(a)}))}},{key:"associateParameters",value:function(t,n,i,o){var a=this,r=o.name===e.MAIN_INTERNAL_ID?Gt.getMainFunctionName():o.name;if(t.length!=n.length)return Promise.reject(kt.invalid_parameters_size(r,t.length,n.length));var s=n.map((function(e){return a.evaluateExpression(i,e)}));return Promise.all(s).then((function(e){for(var a=0;a<e.length;a++){var s=e[a],l=n[a],c=!1,u=t[a];if(!u.type.isCompatible(s.type)){if(!y.enable_type_casting||u.byRef||!di.Store.canImplicitTypeCast(u.type,s.type))return Promise.reject(kt.invalid_parameter_type(r,l.toString()));c=!0}if(u.byRef&&!s.inStore())return Promise.reject(kt.invalid_ref(r,l.toString()));if(u.byRef)!function(){var e=i.getStoreObject(s.id),t=null;if(s instanceof Ai.ArrayStoreValue){var n=s.get(),a=s.type,r=n.map((function(t){return e.getLocAddressOf(t.line,t.column)})),l=s.isVector()?0:s.columns;t=new Oi.ArrayStoreValueRef(a,n,r,s.lines,l,e.id)}else if(s instanceof Ii.StoreValueAddress){var c=s.line,d=s.column;(t=new Ri.StoreValueRef(s.type,s.get(),e.getLocAddressOf(c,d),e.id)).setReferenceDimension(e.type.dimensions)}else t=new Ri.StoreValueRef(s.type,s.get(),e.locAddress,e.id);o.insertStore(u.id,t)}();else{var d=s;c&&(d=di.Store.doImplicitCasting(u.type,d)),o.insertStore(u.id,d)}}return o}))}},{key:"executeCommands",value:function(e,t){var n=this;return t.reduce((function(e,t){var i,o,a=(i=n.executeCommand.bind(n),o=t,function(e){return i(e,o)});return e.then(a)}),Promise.resolve(e))}},{key:"executeCommand",value:function(e,t){var n=this;return this.instruction_count+=1,new Promise((function(i,o){var a=function(){return n.instruction_count>=y.max_instruction_count?o(kt.exceed_max_instructions()):n.forceKill?o("FORCED_KILL!"):e.mode===ze.Modes.PAUSE?i(n.executeCommand(e,t)):e.mode===ze.Modes.RETURN?i(e):n.checkContext(pi.Context.BREAKABLE)&&e.mode===ze.Modes.BREAK?i(e):n.mode===ze.Modes.ABORT?o(At.getMessage("aborted_execution")):t instanceof J?i(n.executeDeclaration(e,t)):t instanceof z?i(n.executeArrayIndexAssign(e,t)):t instanceof G?i(n.executeAssign(e,t)):t instanceof S?i(n.executeBreak(e,t)):t instanceof M?i(n.executeReturn(e,t)):t instanceof Te?i(n.executeIfThenElse(e,t)):t instanceof ke?i(n.executeRepeatUntil(e,t)):t instanceof ue?i(n.executeWhile(e,t)):t instanceof ve?i(n.executeFor(e,t)):t instanceof Me?i(n.executeSwitch(e,t)):t instanceof Xt?i(n.executeFunctionCall(e,t)):t instanceof Ve?i(n.executeSysCall(e,t)):o(kt.unknown_command(t.sourceInfo))};n.instruction_count%y.suspend_threshold==0?setTimeout(a,5):a()}))}},{key:"executeSysCall",value:function(e,t){return t.langFunc.bind(this)(e,t)}},{key:"executeFunctionCall",value:function(t,n){var i=this,o=null;return o=n.isMainCall?this.findMainFunction():this.findFunction(n.id),this.function_call_stack.push(n.sourceInfo),this.runFunction(o,n.actualParameters,t).then((function(n){if(n.destroy(),he.Types.VOID.isCompatible(o.returnType)||n.mode===ze.Modes.RETURN)return i.function_call_stack.pop(),t;var a=o.name===e.MAIN_INTERNAL_ID?Gt.getMainFunctionName():o.name;return Promise.reject(kt.function_no_return(a))}))}},{key:"executeSwitch",value:function(e,t){var n=this;return this.context.push(pi.Context.BREAKABLE),t.cases.reduce((function(e,i){return e.then((function(e){if(n.ignoreSwitchCases(e[1]))return Promise.resolve(e);if(e[0]||i.isDefault)return n.executeCommands(e[1],i.commands).then((function(e){return Promise.resolve([!0,e])}));var o=new Gn(yt.EQ,t.expression,i.expression);return o.sourceInfo=i.sourceInfo,n.evaluateExpression(e[1],o).then((function(e){return e.get()})).then((function(t){return t?n.executeCommands(e[1],i.commands).then((function(e){return Promise.resolve([!0,e])})):Promise.resolve(e)}))}))}),Promise.resolve([!1,e])).then((function(e){n.context.pop();var t=e[1];return t.mode===ze.Modes.BREAK&&(t.mode=ze.Modes.RUN),t}))}},{key:"executeFor",value:function(e,t){var n=this,i=new G(t.for_id.id,t.for_from);i.sourceInfo=t.sourceInfo;var o=[];return null==t.for_pass?(o.push(Promise.resolve(null)),o.push(this.evaluateExpression(e,new Gn(yt.GE,t.for_to,t.for_from)))):(o.push(this.evaluateExpression(e,new Gn(yt.GE,t.for_pass,new rn(Qe(0))))),o.push(Promise.resolve(null))),Promise.all(o).then((function(o){var a=!0,r=void 0,s=null,l=t.for_pass;null==o[0]?r=o[1].value:a=o[0].value,null==r?s=new Gn(a?yt.LE:yt.GE,t.for_id,t.for_to):r?(l=new rn(Qe(1)),s=new Gn(yt.LE,t.for_id,t.for_to)):(l=new rn(Qe(-1)),s=new Gn(yt.GE,t.for_id,t.for_to)),s.sourceInfo=t.sourceInfo;var c=new G(t.for_id.id,new Gn(yt.ADD,t.for_id,l));c.sourceInfo=t.sourceInfo;var u=new Ae([],t.commands.concat(c)),d=new ue(s,u);d.sourceInfo=t.sourceInfo;var p=[i,d];return n.executeCommands(e,p)})).catch((function(e){return Promise.reject(e)}))}},{key:"executeRepeatUntil",value:function(e,t){var n=this;try{return this.context.push(pi.Context.BREAKABLE),this.executeCommands(e,t.commands).then((function(e){return e.mode===ze.Modes.BREAK?(n.context.pop(),e.mode=ze.Modes.RUN,e):n.evaluateExpression(e,t.expression).then((function(i){return i.type.isCompatible(he.Types.BOOLEAN)?i.get()?(n.context.pop(),e):(n.context.pop(),n.executeCommand(e,t)):Promise.reject(kt.loop_condition_type_full(t.sourceInfo))}))}))}catch(e){return Promise.reject(e)}}},{key:"executeWhile",value:function(e,t){var n=this;try{return this.context.push(pi.Context.BREAKABLE),this.evaluateExpression(e,t.expression).then((function(i){return i.type.isCompatible(he.Types.BOOLEAN)?i.get()?n.executeCommands(e,t.commands).then((function(e){return n.context.pop(),e.mode===ze.Modes.BREAK?(e.mode=ze.Modes.RUN,e):n.executeCommand(e,t)})):(n.context.pop(),e):Promise.reject(kt.loop_condition_type_full(t.expression.toString(),t.sourceInfo))}))}catch(e){return Promise.reject(e)}}},{key:"executeIfThenElse",value:function(e,t){var n=this;try{return this.evaluateExpression(e,t.condition).then((function(i){return i.type.isCompatible(he.Types.BOOLEAN)?i.get()?n.executeCommands(e,t.ifTrue.commands):null!==t.ifFalse?t.ifFalse instanceof Te?n.executeCommand(e,t.ifFalse):n.executeCommands(e,t.ifFalse.commands):Promise.resolve(e):Promise.reject(kt.if_condition_type_full(t.condition.toString(),t.sourceInfo))}))}catch(e){return Promise.reject(e)}}},{key:"executeReturn",value:function(t,n){try{var i=t.name===e.MAIN_INTERNAL_ID?Gt.getMainFunctionName():t.name,o=this.findFunction(t.name).returnType;return this.evaluateExpression(t,n.expression).then((function(e){var a=e;if(null===e&&o.isCompatible(he.Types.VOID))return t.mode=ze.Modes.RETURN,Promise.resolve(t);if(null!==e&&o.isCompatible(e.type))return t.insertStore("$",a),t.mode=ze.Modes.RETURN,Promise.resolve(t);if(!y.enable_type_casting||!di.Store.canImplicitTypeCast(o,e.type)){var r=o.stringInfo()[0];return Promise.reject(kt.invalid_return_type_full(i,r.type,r.dim,n.sourceInfo))}a=di.Store.doImplicitCasting(o,e)}))}catch(e){return Promise.reject(e)}}},{key:"executeBreak",value:function(e,t){return this.checkContext(pi.Context.BREAKABLE)?(e.mode=ze.Modes.BREAK,Promise.resolve(e)):Promise.reject(kt.unexpected_break_command_full(t.sourceInfo))}},{key:"executeAssign",value:function(e,t){try{var n=e.applyStore(t.id);return n.isConst?Promise.reject(kt.invalid_const_assignment_full(t.id,t.sourceInfo)):this.evaluateExpression(e,t.expression).then((function(i){var o=i;if(!n.type.isCompatible(o.type)){if(!y.enable_type_casting||!di.Store.canImplicitTypeCast(n.type,i.type)){var a=n.type.stringInfo()[0],r=i.type.stringInfo()[0],s=t.expression.toString();return Promise.reject(kt.incompatible_types_full(a.type,a.dim,r.type,r.dim,s,t.sourceInfo))}o=di.Store.doImplicitCasting(n.type,o)}if(n instanceof Ai.ArrayStoreValue){var l=null==o.columns?0:o.columns;if(n.lines!==o.lines||n.columns!==l){var c=t.expression.toString();return n.isVector()?Promise.reject(kt.invalid_vector_assignment_full(t.id,n.lines,c,o.lines,t.sourceInfo)):Promise.reject(kt.invalid_matrix_assignment_full(t.id,n.lines,n.columns,c,o.lines,o.columns,t.sourceInfo))}}return e.updateStore(t.id,o),e}))}catch(e){return Promise.reject(e)}}},{key:"executeArrayIndexAssign",value:function(e,t){var n=e.applyStore(t.id),i=0;if(n.isConst)return Promise.reject(kt.invalid_const_assignment_full(t.id,t.sourceInfo));if(!(n.type instanceof $t.ArrayType))return Promise.reject(kt.invalid_array_access_full(t.id,t.sourceInfo));var o=this.evaluateExpression(e,t.line),a=this.evaluateExpression(e,t.column),r=this.evaluateExpression(e,t.expression);return Promise.all([o,a,r]).then((function(o){var a=Ci(o,3),r=a[0],s=a[1],l=a[2];if(!he.Types.INTEGER.isCompatible(r.type))return Promise.reject(kt.array_dimension_not_int_full(t.sourceInfo));var c=r.get().toNumber();i+=1;var u=void 0;if(null!=s){if(!he.Types.INTEGER.isCompatible(s.type))return Promise.reject(kt.array_dimension_not_int_full(t.sourceInfo));u=s.get().toNumber(),i+=1}var d=l;if(c>=n.lines)return n.isVector?Promise.reject(kt.vector_line_outbounds_full(t.id,c,n.lines,t.sourceInfo)):Promise.reject(kt.matrix_line_outbounds_full(t.id,c,n.lines,t.sourceInfo));if(c<0)return Promise.reject(kt.array_dimension_not_positive_full(t.sourceInfo));if(null!=u&&0===n.columns)return Promise.reject(kt.vector_not_matrix_full(t.id,t.sourceInfo));if(null!=u){if(u>=n.columns)return Promise.reject(kt.matrix_column_outbounds_full(t.id,u,n.columns,t.sourceInfo));if(u<0)return Promise.reject(kt.array_dimension_not_positive_full(t.sourceInfo))}if(!n.type.canAccept(l.type,i)){if(!y.enable_type_casting||!di.Store.canImplicitTypeCast(n.type.innerType,l.type)){var p=n.type.innerType.stringInfo()[0],_=l.type.stringInfo()[0],f=t.expression.toString();return Promise.reject(kt.incompatible_types_full(p.type,p.dim,_.type,_.dim,f,t.sourceInfo))}d=di.Store.doImplicitCasting(n.type.innerType,l)}var m=n.getAt(c,u);if(m instanceof Ai.ArrayStoreValue&&(m.lines!==d.lines||m.columns!==d.columns)){var v=t.expression.toString();return Promise.reject(kt.invalid_matrix_index_assign_full(t.id,c,m.lines,v,d.lines,t.sourceInfo))}return e.updateStoreArray(t.id,d,c,u)}))}},{key:"executeDeclaration",value:function(e,t){try{var n=Promise.resolve(null);return t instanceof oe?this.executeArrayDeclaration(e,t):(null!==t.initial&&(n=this.evaluateExpression(e,t.initial)),n.then((function(n){var i=n,o=null;if(null!==n){if(!n.type.isCompatible(t.type)){if(!y.enable_type_casting||!di.Store.canImplicitTypeCast(t.type,n.type)){var a=n.type.stringInfo()[0],r=n.type.stringInfo()[0],s=t.expression.toString();return Promise.reject(kt.incompatible_types_full(a.type,a.dim,r.type,r.dim,s,t.sourceInfo))}i=di.Store.doImplicitCasting(t.type,i)}o=new Lt.StoreValue(t.type,i.get(),null,t.isConst)}else o=new Lt.StoreValue(t.type,null,null,t.isConst);return e.insertStore(t.id,o),e})))}catch(e){return Promise.reject(e)}}},{key:"executeArrayDeclaration",value:function(e,t){var n=this,i=this.evaluateExpression(e,t.lines),o=null===t.columns?null:this.evaluateExpression(e,t.columns);return Promise.all([i,o]).then((function(i){var o=Ci(i,2),a=o[0],r=o[1];if(!he.Types.INTEGER.isCompatible(a.type))return Promise.reject(kt.array_dimension_not_int_full(t.sourceInfo));var s=a.get().toNumber();if(s<0)return Promise.reject(kt.array_dimension_not_positive_full(t.sourceInfo));var l=null;if(null!==r){if(!he.Types.INTEGER.isCompatible(r.type))return Promise.reject(kt.array_dimension_not_int_full(t.sourceInfo));if((l=r.get().toNumber())<0)return Promise.reject(kt.array_dimension_not_positive_full(t.sourceInfo))}var c=Promise.resolve(null);return null!==t.initial&&(c=n.evaluateArrayLiteral(e,t.initial,t.type,s,l)),c.then((function(n){var i=null;return i=null!==n?new Ai.ArrayStoreValue(t.type,n,s,l,null,t.isConst):new Ai.ArrayStoreValue(t.type,[],s,l,null,t.isConst),e.insertStore(t.id,i),e}))}))}},{key:"evaluateExpression",value:function(e,t){var n=this;return this.instruction_count+=1,new Promise((function(i,o){var a=function(){return n.mode===ze.Modes.ABORT?o(At.getMessage("aborted_execution")):n.instruction_count>=y.max_instruction_count?o(new Error("Número de instruções excedeu o limite definido. Verifique se seu código não possui laços infinitos ou muitas chamadas de funções recursivas.")):t instanceof Xn?i(n.evaluateUnaryApp(e,t)):t instanceof Gn?i(n.evaluateInfixApp(e,t)):t instanceof d?i(n.evaluateArrayAccess(e,t)):t instanceof Pn?i(n.evaluateVariableLiteral(e,t)):t instanceof rn?i(n.evaluateLiteral(e,t)):t instanceof pn?i(n.evaluateLiteral(e,t)):t instanceof yn?i(n.evaluateLiteral(e,t)):t instanceof Tn?i(n.evaluateLiteral(e,t)):t instanceof Nn?o(new Error("Internal Error: The system should not eval an array literal.")):i(t instanceof Xt?n.evaluateFunctionCall(e,t):null)};n.instruction_count%y.suspend_threshold==0?setTimeout(a,5):a()}))}},{key:"evaluateFunctionCall",value:function(e,t){var n=this;if(t.isMainCall)return Promise.reject(kt.void_in_expression_full(Gt.getMainFunctionName(),t.sourceInfo));var i=this.findFunction(t.id);return he.Types.VOID.isCompatible(i.returnType)?Promise.reject(kt.void_in_expression_full(t.id,t.sourceInfo)):this.function_call_stack.length>=y.max_call_stack?Promise.reject(kt.exceeded_recursive_calls(t.sourceInfo)):(this.function_call_stack.push(t.sourceInfo),this.runFunction(i,t.actualParameters,e).then((function(e){if(e.mode!==ze.Modes.RETURN)return Promise.reject(new Error("!!!Internal error: the function that was called did not have a return command or did not set the store mode properly -> "+t.id));var i=e.applyStore("$");return e.destroy(),n.function_call_stack.pop(),Promise.resolve(i)})))}},{key:"evaluateArrayLiteral",value:function(e,t,n,i,o){if(t.isVector)return null!=o?Promise.reject(new Error("This should never happen: Matrix cannot be initialized by a vector")):this.evaluateVector(e,t,n,i).then((function(e){return Promise.resolve(e)}));if(null==o)return Promise.reject(new Error("This should never happen: Vector cannot be initialized by a matrix"));var a=this.evaluateMatrix(e,t,n,i,o);return Promise.all(a).then((function(e){var t=e.reduce((function(e,t){return e.concat(t)}),[]);return Promise.resolve(t)}))}},{key:"evaluateVector",value:function(e,t,n,i){var o=this,a=t.value;return i!==a.length?Promise.reject(kt.invalid_number_elements_vector(i,t.toString(),a.length,t.sourceInfo)):Promise.all(a.map((function(t){return o.evaluateExpression(e,t)}))).then((function(e){return e.map((function(t,i){if(!n.canAccept(t.type,1)){if(!y.enable_type_casting||!di.Store.canImplicitTypeCast(n.innerType,t.type)){var o=e[i].toString();return Promise.reject(kt.invalid_array_literal_type_full(o,e[i].sourceInfo))}return di.Store.doImplicitCasting(n.innerType,t)}return t}))}))}},{key:"evaluateMatrix",value:function(e,t,n,i,o){var a=this,r=t.value;return r.length!==i?Promise.reject(kt.invalid_number_lines_matrix(i,t.toString(),r.length,t.sourceInfo)):r.map((function(t){var i=new $t.ArrayType(n.innerType,1);return a.evaluateVector(e,t,i,o)}))}},{key:"evaluateLiteral",value:function(e,t){return Promise.resolve(new Lt.StoreValue(t.type,t.value))}},{key:"evaluateVariableLiteral",value:function(e,t){try{var n=e.applyStore(t.id);return Promise.resolve(n)}catch(e){return Promise.reject(e)}}},{key:"evaluateArrayAccess",value:function(e,t){var n=e.getStoreObject(t.id);if(!(n.type instanceof $t.ArrayType))return Promise.reject(kt.invalid_array_access_full(t.id,t.sourceInfo));var i=this.evaluateExpression(e,t.line),o=this.evaluateExpression(e,t.column);return Promise.all([i,o]).then((function(e){var i=Ci(e,2),o=i[0],a=i[1];if(!he.Types.INTEGER.isCompatible(o.type))return Promise.reject(kt.array_dimension_not_int_full(t.sourceInfo));var r=o.get().toNumber(),s=null;if(null!==a){if(!he.Types.INTEGER.isCompatible(a.type))return Promise.reject(kt.array_dimension_not_int_full(t.sourceInfo));s=a.get().toNumber()}if(r>=n.lines)return n.isVector?Promise.reject(kt.vector_line_outbounds_full(t.id,r,n.lines,t.sourceInfo)):Promise.reject(kt.matrix_line_outbounds_full(t.id,r,n.lines,t.sourceInfo));if(r<0)return Promise.reject(kt.array_dimension_not_positive_full(t.sourceInfo));if(null!==s&&0===n.columns)return Promise.reject(kt.vector_not_matrix_full(t.id,t.sourceInfo));if(null!==s){if(s>=n.columns)return Promise.reject(kt.matrix_column_outbounds_full(t.id,s,n.columns,t.sourceInfo));if(s<0)return Promise.reject(kt.array_dimension_not_positive_full(t.sourceInfo))}var l=n.getAt(r,s),c=n.type.innerType;if(Array.isArray(l)){var u=l.map((function(e,t){return new Ii.StoreValueAddress(c,e,r,t,n.id,n.readOnly)}));return Promise.resolve(new Ai.ArrayStoreValue(new $t.ArrayType(c,1),u,n.columns,null,n.id,n.readOnly))}return Promise.resolve(new Ii.StoreValueAddress(c,l,r,s,n.id,n.readOnly))}))}},{key:"evaluateUnaryApp",value:function(e,t){return this.evaluateExpression(e,t.left).then((function(e){var n=Ei(t.op,e.type);if(he.Types.UNDEFINED.isCompatible(n)){var i=e.type.stringInfo()[0];return Promise.reject(kt.invalid_unary_op_full(t.op,i.type,i.dim,t.sourceInfo))}switch(t.op.ord){case yt.ADD.ord:return new Lt.StoreValue(n,e.get());case yt.SUB.ord:return new Lt.StoreValue(n,e.get().negated());case yt.NOT.ord:return new Lt.StoreValue(n,!e.get());default:return Promise.reject(new lt("!!!Critical Invalid UnaryApp "+t.op))}}))}},{key:"evaluateInfixApp",value:function(e,t){var n=this.evaluateExpression(e,t.left),i=this.evaluateExpression(e,t.right);return Promise.all([n,i]).then((function(e){var n=!1,i=e[0],o=e[1],a=xi(t.op,i.type,o.type);if(he.Types.UNDEFINED.isCompatible(a)){if(!y.enable_type_casting||!di.Store.canImplicitTypeCast(i.type,o.type)){var r=i.type.stringInfo()[0],s=o.type.stringInfo()[0];return Promise.reject(kt.invalid_infix_op_full(t.op,r.type,r.dim,s.type,s.dim,t.sourceInfo))}n=!0}var l=null;switch(t.op.ord){case yt.ADD.ord:if(he.Types.STRING.isCompatible(i.type)){var c=tt(o.get(),o.type);return new Lt.StoreValue(a,i.get()+c)}if(he.Types.STRING.isCompatible(o.type)){var u=tt(i.get(),i.type);return new Lt.StoreValue(a,u+o.get())}return new Lt.StoreValue(a,i.get().plus(o.get()));case yt.SUB.ord:return new Lt.StoreValue(a,i.get().minus(o.get()));case yt.MULT.ord:return l=i.get().times(o.get()),new Lt.StoreValue(a,l);case yt.DIV.ord:return 0==o.get()?Promise.reject(kt.divsion_by_zero_full(t.toString(),t.sourceInfo)):(l=he.Types.INTEGER.isCompatible(a)?i.get().divToInt(o.get()):i.get().div(o.get()),new Lt.StoreValue(a,l));case yt.MOD.ord:var d=i.get(),p=o.get();return n&&(a=he.Types.INTEGER,d=d.trunc(),p=p.trunc()),l=d.modulo(p),new Lt.StoreValue(a,l);case yt.GT.ord:var _=i.get(),f=o.get();return he.Types.STRING.isCompatible(i.type)?l=_.length>f.length:(n&&(a=he.Types.BOOLEAN,_=_.trunc(),f=f.trunc()),l=_.gt(f)),new Lt.StoreValue(a,l);case yt.GE.ord:var m=i.get(),v=o.get();return he.Types.STRING.isCompatible(i.type)?l=m.length>=v.length:(n&&(a=he.Types.BOOLEAN,m=m.trunc(),v=v.trunc()),l=m.gte(v)),new Lt.StoreValue(a,l);case yt.LT.ord:var h=i.get(),g=o.get();return he.Types.STRING.isCompatible(i.type)?l=h.length<g.length:(n&&(a=he.Types.BOOLEAN,h=h.trunc(),g=g.trunc()),l=h.lt(g)),new Lt.StoreValue(a,l);case yt.LE.ord:var b=i.get(),w=o.get();return he.Types.STRING.isCompatible(i.type)?l=b.length<=w.length:(n&&(a=he.Types.BOOLEAN,b=b.trunc(),w=w.trunc()),l=b.lte(w)),new Lt.StoreValue(a,l);case yt.EQ.ord:var x=i.get(),E=o.get();return he.Types.INTEGER.isCompatible(i.type)||he.Types.REAL.isCompatible(i.type)?(n&&(a=he.Types.BOOLEAN,x=x.trunc(),E=E.trunc()),l=x.eq(E)):l=x===E,new Lt.StoreValue(a,l);case yt.NEQ.ord:var T=i.get(),R=o.get();return he.Types.INTEGER.isCompatible(i.type)||he.Types.REAL.isCompatible(i.type)?(n&&(a=he.Types.BOOLEAN,T=T.trunc(),R=R.trunc()),l=!T.eq(R)):l=T!==R,new Lt.StoreValue(a,l);case yt.AND.ord:return new Lt.StoreValue(a,i.get()&&o.get());case yt.OR.ord:return new Lt.StoreValue(a,i.get()||o.get());default:return Promise.reject(new lt("!!!Critical Invalid InfixApp "+t.op))}}))}}]),e}();var Li=null,$i=null;function Ui(e){!function(){if(null==Li){Li=[];for(var e=["RK_PROGRAM","RK_REAL","RK_VOID","RK_BOOLEAN","RK_STRING","RK_INTEGER","RK_CHARACTER","RK_SWITCH","RK_CASE","RK_DEFAULT","RK_CONST","RK_FUNCTION","RK_RETURN","RK_FOR","RK_BREAK","RK_DO","RK_WHILE","RK_IF","RK_ELSE","RK_FALSE","RK_TRUE"],t=T.getCurrentLexer(),n=new t,i=0;i<e.length;++i){var o=e[i],a=n.literalNames[t[o]];Li.push(a.substring(1,a.length-1))}}if(null==$i){$i=[];for(var r=[yt.AND.value,yt.OR.value,yt.NOT.value],s=0;s<r.length;++s){var l="logic_operator_".concat(r[s]);$i.push(At.getUI(l))}}}();for(var t=0;t<Li.length;++t){if(Li[t]==e)return!0}for(var n=0;n<$i.length;n++){if($i[n]==e)return!0}return!1}function Pi(e){return!!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e)&&!Ui(e)}var Mi=null;function Fi(e){e.preventDefault();var t=e.currentTarget.dataset.page;null!=Mi&&Mi.close(),(Mi=window.open("","DetailWindow","width=550,height=600")).document.open(),Mi.document.write(t),Mi.document.close()}function ji(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function Ki(e,t,n){return t&&ji(e.prototype,t),n&&ji(e,n),e}var Bi=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.disableMarginTop=n,this.input=null,this.cursorInterval=null,this.idleInterval=null,this.inputDiv=null,this.inputCMD=null,this.inputSpan=null,this.cursorRef=null,this.needInput=!1,this.clearBtn=null,this.hideBtn=null,this.showBtn=null,this.termDiv=null,this.anyKey=!1;var i=t;"#"===t[0]&&(i=t.substring(1)),this.parent=document.getElementById(i),this.setup(),this.inputListeners=[],this.hideInput(),this.pending_writes=[],this.last_clear=-1}return Ki(e,null,[{key:"BASH_TEMPLATE",get:function(){return'\n <div class="bash-title">\n <i id="ivprog-console-clearbtn" class="icon eraser" style="float:left;padding-left: 5px"></i>\n <span>Terminal</span>\n <i id="ivprog-console-showbtn" class="icon window maximize outline" style="float:right"></i>\n <i id="ivprog-console-hidebtn" class="icon window minimize outline" style="float:right"></i>\n </div>\n <div id=\'ivprog-term\' class="bash-body"></div>'}},{key:"INPUT_CARET_TEMPLATE",get:function(){return'\n <div id="cmd">\n <span></span>\n <div id="cursor"></div>\n </div>'}},{key:"USER",get:function(){return 0}},{key:"INFO",get:function(){return 1}},{key:"ERR",get:function(){return 2}},{key:"INPUT",get:function(){return 3}}]),Ki(e,[{key:"setup",value:function(){this._setupDom(),this._setupEvents()}},{key:"_setupEvents",value:function(){this.input.addEventListener("keydown",this.registerInput.bind(this)),this.clearBtn.addEventListener("click",this.clearBtnClick.bind(this)),this.hideBtn.addEventListener("click",this.hideBtnClick.bind(this)),this.showBtn.addEventListener("click",this.showBtnClick.bind(this))}},{key:"registerInput",value:function(e){if(this.needInput&&(13===e.which||this.anyKey)){null!=this.idleInterval&&(clearInterval(this.idleInterval),this.idleInterval=null);var t=this.input.value;t=t.replace("[\n\r]+",""),this.notifyListeners(t),this._appendUserInput(t),this.input.value="",this.inputSpan.innerHTML=""}}},{key:"_setupDom",value:function(){var t=document.createElement("div");t.classList.add("bash"),t.innerHTML=e.BASH_TEMPLATE,this.termDiv=t.querySelector("#ivprog-term"),this.termDiv.classList.add("ivprog-term-div"),this.inputDiv=document.createElement("div"),this.inputDiv.id="ivprog-terminal-inputdiv",this.inputDiv.innerHTML=e.INPUT_CARET_TEMPLATE,this.input=document.createElement("input"),this.input.setAttribute("name","command"),this.input.setAttribute("value",""),this.input.setAttribute("type","text"),this.inputDiv.append(this.input),this.termDiv.append(this.inputDiv),t.append(this.termDiv),this.parent.append(t),this.inputCMD=this.inputDiv.querySelector("#cmd"),this.cursorRef=this.inputCMD.querySelector("#cursor"),this.inputSpan=this.inputCMD.querySelector("span"),this.clearBtn=t.querySelector("#ivprog-console-clearbtn"),this.hideBtn=t.querySelector("#ivprog-console-hidebtn"),this.showBtn=t.querySelector("#ivprog-console-showbtn"),this._setupCursor(),window.$(this.clearBtn).popup({content:At.getUI("tooltip_terminal_clear")}),window.$(this.showBtn).popup({content:At.getUI("tooltip_terminal_show")}),window.$(this.hideBtn).popup({content:At.getUI("tooltip_terminal_hide")})}},{key:"_setupCursor",value:function(){this.inputCMD.addEventListener("click",this.blinkCaretAndFocus.bind(this)),this.input.addEventListener("keyup",this.updateSpanText.bind(this)),this.input.addEventListener("blur",this.stopBlinkCaret.bind(this))}},{key:"blinkCaretAndFocus",value:function(){var e=this;null==this.cursorInterval&&(this.input.focus(),this.cursorInterval=window.setInterval((function(){"visible"===e.cursorRef.style.visibility?e.cursorRef.style.visibility="hidden":e.cursorRef.style.visibility="visible"}),500))}},{key:"updateSpanText",value:function(){this.inputSpan.innerHTML=this.input.value,null!=this.idleInterval&&window.clearInterval(this.idleInterval),this.scheduleNotify()}},{key:"stopBlinkCaret",value:function(){clearInterval(this.cursorInterval),this.cursorInterval=null,this.cursorRef.style.visibility="visible"}},{key:"notifyListeners",value:function(e){this.inputListeners.forEach((function(t){return t(e)})),this.inputListeners.splice(0,this.inputListeners.length),this.hideInput(),this.anyKey=!1}},{key:"write",value:function(t){this._appendText(t,e.USER)}},{key:"info",value:function(t){this._appendText(t,e.INFO)}},{key:"err",value:function(t){this._appendText(t,e.ERR)}},{key:"_appendText",value:function(e,t){var n=this,i=Date.now(),o=setTimeout((function(){if(n.pending_writes.shift(),!(n.last_clear>=i)){var o=n.getClassForType(t),a=document.createElement("div");a.classList.add(o),a.innerHTML=n.getOutputText(e),n.termDiv.insertBefore(a,n.inputDiv),n.scrollTerm()}}),5);this.pending_writes.push(o)}},{key:"_appendUserInput",value:function(t){var n=this,i=Date.now(),o=setTimeout((function(){if(n.pending_writes.shift(),!(n.last_clear>=i)){var o=n.getClassForType(e.INPUT),a=document.createElement("div");a.innerHTML=n.getUserInputText(t),a.classList.add(o),n.termDiv.insertBefore(a,n.inputDiv),n.scrollTerm()}}),5);this.pending_writes.push(o)}},{key:"getOutputText",value:function(e){return e=e.replace(/\s/g," "),"<span>".concat(e,"</span>")}},{key:"getUserInputText",value:function(e){return 0==e.trim().length&&(e=" "),'<i class="icon keyboard outline" style="float:left"></i><span>'.concat(e,"</span>")}},{key:"scrollTerm",value:function(){this.termDiv.scrollTop=this.termDiv.scrollHeight}},{key:"focus",value:function(){var e,t;this.termDiv.style.display="block",this.disableMarginTop||0!=this.parent.style.top.length||(this.parent.style.marginTop="-160px"),this.needInput&&(this.showInput(),this.scheduleNotify()),e=this.termDiv,(t=e.getBoundingClientRect()).bottom>0&&t.right>0&&t.left<(window.innerWidth||document.documentElement.clientWidth)&&t.top<(window.innerHeight||document.documentElement.clientHeight)||this.termDiv.scrollIntoView(!1),this.scrollTerm()}},{key:"hide",value:function(){this.needInput&&(clearInterval(this.idleInterval),this.hideInput(),this.needInput=!0),this.disableMarginTop||0!=this.parent.style.top.length||(this.parent.style.marginTop="0"),this.termDiv.style.display="none"}},{key:"getClassForType",value:function(t){switch(t){case e.INPUT:return"ivprog-term-userInput";case e.USER:return"ivprog-term-userText";case e.INFO:return"ivprog-term-info";case e.ERR:return"ivprog-term-error"}}},{key:"dispose",value:function(){this.input.removeEventListener("keyup",this.updateSpanText.bind(this)),this.input.removeEventListener("blur",this.stopBlinkCaret.bind(this)),this.input.removeEventListener("keydown",this.registerInput.bind(this)),this.inputCMD.removeEventListener("click",this.blinkCaretAndFocus.bind(this)),this.clearBtn.removeEventListener("click",this.clearBtnClick.bind(this)),this.hideBtn.removeEventListener("click",this.hideBtnClick.bind(this)),this.showBtn.removeEventListener("click",this.showBtnClick.bind(this)),this.input=null,this.inputCMD=null,this.inputDiv=null,this.termDiv=null,this.inputSpan=null,this.cursorRef=null,this.clearBtn=null,this.hideBtn=null,this.showBtn=null;var e=this.parent.cloneNode(!1);this.parent.parentNode.replaceChild(e,this.parent),null!=this.cursorInterval&&clearInterval(this.cursorInterval),null!=this.idleInterval&&clearInterval(this.idleInterval)}},{key:"showInput",value:function(){this.needInput=!0,this.inputDiv.style.display="block",this.inputCMD.click(),this.scrollTerm()}},{key:"hideInput",value:function(){this.needInput=!1,this.inputDiv.style.display=" none",clearInterval(this.cursorInterval),this.cursorInterval=null}},{key:"requestInput",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.inputListeners.push(e),this.anyKey=t,null==this.idleInterval&&this.scheduleNotify(),this.showInput()}},{key:"sendOutput",value:function(e){var t=this;(""+e).split("\n").forEach((function(e){e=(e=e.replace(/\t/g,"  ")).replace(/\s/g," "),t.write(e)}))}},{key:"clearPendingWrites",value:function(){for(var e in this.last_clear=Date.now(),this.pending_writes)clearTimeout(e)}},{key:"clear",value:function(){for(this.clearPendingWrites(),this.pending_writes=[];this.inputDiv.parentElement.childNodes.length>1;)this.inputDiv.parentElement.removeChild(this.inputDiv.parentElement.firstChild);this.input.value="",this.inputSpan.innerHTML=""}},{key:"clearBtnClick",value:function(){this.clear()}},{key:"showBtnClick",value:function(){this.focus()}},{key:"hideBtnClick",value:function(){this.hide()}},{key:"notifyIdle",value:function(){this.info(At.getMessage("awaiting_input_message")),this.inputCMD.click()}},{key:"scheduleNotify",value:function(){this.idleInterval=window.setInterval(this.notifyIdle.bind(this),y.idle_input_interval)}},{key:"cancelPendingInputRequests",value:function(){this.inputListeners.forEach((function(e){return e("")})),this.inputListeners.splice(0,this.inputListeners.length),null!=this.idleInterval&&(clearInterval(this.idleInterval),this.idleInterval=null),this.input.value="",this.inputSpan.innerHTML="",this.hideInput(),this.anyKey=!1}}]),e}();function Gi(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function Di(e,t,n){return t&&Gi(e.prototype,t),n&&Gi(e,n),e}var Vi=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.ast=t,this.lexerClass=T.getCurrentLexer();var n=new this.lexerClass(null);this.literalNames=n.literalNames,this.symbolMap=null,this.currentFunction=null}return Di(e,null,[{key:"analyseFromSource",value:function(t){return new e(ui.createParser(t).parseTree()).analyseTree()}}]),Di(e,[{key:"pushMap",value:function(){if(null===this.symbolMap)this.symbolMap={map:{},next:null};else{var e={map:{},next:this.symbolMap};this.symbolMap=e}}},{key:"popMap",value:function(){null!==this.symbolMap&&(this.symbolMap=this.symbolMap.next)}},{key:"insertSymbol",value:function(e,t){this.symbolMap.map[e]=t}},{key:"findSymbol",value:function(e,t){return t.map[e]?t.map[e]:t.next?this.findSymbol(e,t.next):null}},{key:"getMainFunction",value:function(){return this.ast.functions.find((function(e){return e.isMain}))}},{key:"findFunction",value:function(e){if(e.match(/^\$.+$/)){var t=Gt.getFunction(e);if(!t)throw kt.not_implemented(e);return t}var n=this.ast.functions.find((function(t){return t.name===e}));return n||null}},{key:"analyseTree",value:function(){var e=this.ast.global;this.pushMap(),this.assertDeclarations(e);var t=this.ast.functions;if(t.filter((function(e){return null===e.name})).length<=0)throw kt.main_missing();for(var n=0;n<t.length;n++){var i=t[n];this.assertFunction(i)}return this.ast}},{key:"assertDeclarations",value:function(e){for(var t=0;t<e.length;t++)this.assertDeclaration(e[t])}},{key:"assertDeclaration",value:function(e){if(e instanceof oe)this.assertArrayDeclaration(e),this.insertSymbol(e.id,{id:e.id,lines:e.lines,columns:e.columns,type:e.type,isConst:e.isConst});else{if(null===e.initial)return void this.insertSymbol(e.id,{id:e.id,type:e.type,isConst:e.isConst});var t=this.evaluateExpressionType(e.initial);if(t instanceof Ut.MultiType){if(!t.isCompatible(e.type)){var n=e.type.stringInfo()[0],i=t.stringInfo()[0],o=e.initial;throw kt.incompatible_types_full(n.type,n.dim,i.type,i.dim,o.toString(),e.sourceInfo)}this.insertSymbol(e.id,{id:e.id,type:e.type,isConst:e.isConst})}else{if(!e.type.isCompatible(t)&&!y.enable_type_casting||!e.type.isCompatible(t)&&y.enable_type_casting&&!di.Store.canImplicitTypeCast(e.type,t)){var a=e.type.stringInfo()[0],r=t.stringInfo()[0],s=e.initial;throw kt.incompatible_types_full(a.type,a.dim,r.type,r.dim,s.toString(),e.sourceInfo)}this.insertSymbol(e.id,{id:e.id,type:e.type,isConst:e.isConst})}}}},{key:"assertArrayDeclaration",value:function(e){if(null===e.initial){if(!this.evaluateExpressionType(e.lines).isCompatible(he.Types.INTEGER))throw kt.array_dimension_not_int_full(e.sourceInfo);if(null!==e.columns)if(!this.evaluateExpressionType(e.columns).isCompatible(he.Types.INTEGER))throw kt.array_dimension_not_int_full(e.sourceInfo)}else this.evaluateArrayLiteral(e);this.insertSymbol(e.id,{id:e.id,lines:e.lines,columns:e.columns,type:e.type})}},{key:"evaluateExpressionType",value:function(e){if(e instanceof Xn){var t=e.op,n=this.evaluateExpressionType(e.left),i=Ei(t,n);if(he.Types.UNDEFINED.isCompatible(i)){var o=n.stringInfo()[0],a=e.toString();throw kt.invalid_unary_op_full(a,t,o.type,o.dim,e.sourceInfo)}return i}if(e instanceof Gn){var r=e.op,s=this.evaluateExpressionType(e.left),l=this.evaluateExpressionType(e.right),c=xi(r,s,l);if(he.Types.UNDEFINED.isCompatible(c)){var u=s.stringInfo()[0],p=l.stringInfo()[0],_=e.toString();throw kt.invalid_infix_op_full(_,r,u.type,u.dim,p.type,p.dim,e.sourceInfo)}return c}if(e instanceof Zt)return this.evaluateLiteralType(e);if(e instanceof Xt){if(e.isMainCall)throw kt.void_in_expression_full(Gt.getMainFunctionName(),e.sourceInfo);var f=this.findFunction(e.id);if(null===f)throw kt.function_missing_full(e.id,e.sourceInfo);if(f.returnType.isCompatible(he.Types.VOID))throw kt.void_in_expression_full(e.id,e.sourceInfo);return this.assertParameters(f,e.actualParameters),f.returnType}if(e instanceof d){var m=this.findSymbol(e.id,this.symbolMap);if(null===m)throw kt.symbol_not_found_full(e.id,e.sourceInfo);if(!(m.type instanceof $t.ArrayType))throw kt.invalid_array_access_full(e.id,e.sourceInfo);if(!this.evaluateExpressionType(e.line).isCompatible(he.Types.INTEGER))throw kt.array_dimension_not_int_full(e.sourceInfo);if(null!==e.column){if(null===m.columns)throw kt.invalid_matrix_access_full(e.id,e.sourceInfo);if(!this.evaluateExpressionType(e.column).isCompatible(he.Types.INTEGER))throw kt.array_dimension_not_int_full(e.sourceInfo)}var v=m.type;return null!==e.column?v.innerType:null===m.columns?v.innerType:new $t.ArrayType(v.innerType,1)}}},{key:"evaluateLiteralType",value:function(e){if(e instanceof rn)return e.type;if(e instanceof pn)return e.type;if(e instanceof Tn)return e.type;if(e instanceof yn)return e.type;if(e instanceof Pn){var t=this.findSymbol(e.id,this.symbolMap);if(null===t)throw kt.symbol_not_found_full(e.id,e.sourceInfo);return t.type,$t.ArrayType,t.type}var n=null;if(1===e.value.length)n=this.evaluateExpressionType(e.value[0]);else for(var i=0;i<e.value.length;i++){var o=this.evaluateExpressionType(e.value[i]);if(null===n)n=o;else if(!n.isCompatible(o)){var a=n.stringInfo()[0],r=e.toString();throw kt.incompatible_types_array_full(r,a.type,a.dim,e.sourceInfo)}}return n instanceof $t.ArrayType?new $t.ArrayType(n.innerType,n.dimensions+1):new $t.ArrayType(n,1)}},{key:"evaluateArrayLiteral",value:function(e){var t=e.type,n=e.initial;if(e.isVector)this.evaluateVectorLiteralType(n,t);else for(var i=0;i<n.lines;++i){var o=n.value[i];this.evaluateVectorLiteralType(o,new $t.ArrayType(t.innerType,1))}return!0}},{key:"assertFunction",value:function(e){var t=this;this.pushMap(),this.currentFunction=e,e.formalParameters.forEach((function(e){e.type instanceof $t.ArrayType?e.type.dimensions>1?t.insertSymbol(e.id,{id:e.id,lines:-1,columns:-1,type:e.type}):t.insertSymbol(e.id,{id:e.id,lines:-1,columns:null,type:e.type}):t.insertSymbol(e.id,{id:e.id,type:e.type})})),this.assertDeclarations(e.variablesDeclarations);var n=e.returnType.isCompatible(he.Types.VOID);if(!this.assertReturn(e,n))throw kt.function_no_return(e.name);this.popMap()}},{key:"assertReturn",value:function(e,t){var n=this;return e.commands.reduce((function(i,o){return n.checkCommand(e.returnType,o,t)||i}),t)}},{key:"checkCommand",value:function(e,t,n){if(t instanceof ue){if(!this.evaluateExpressionType(t.expression).isCompatible(he.Types.BOOLEAN))throw kt.loop_condition_type_full(t.expression.toString(),t.sourceInfo);return this.checkCommands(e,t.commands,n),!1}if(t instanceof ve){if(!this.evaluateExpressionType(t.for_id).isCompatible(he.Types.INTEGER))throw kt.invalid_for_variable(t.for_id,t.sourceInfo);if(!this.evaluateExpressionType(t.for_from).isCompatible(he.Types.INTEGER))throw kt.invalid_for_from(t.for_from,t.sourceInfo);if(!this.evaluateExpressionType(t.for_to).isCompatible(he.Types.INTEGER))throw kt.invalid_for_to(t.for_to,t.sourceInfo);if(null!=t.for_pass)if(!this.evaluateExpressionType(t.for_pass).isCompatible(he.Types.INTEGER))throw kt.invalid_for_pass(t.for_pass,t.sourceInfo);return this.checkCommands(e,t.commands,n),!1}if(t instanceof Me){for(var i=this.evaluateExpressionType(t.expression),o=n,a=!1,r=0;r<t.cases.length;r++){var s=t.cases[r];if(null!==s.expression){var l=this.evaluateExpressionType(s.expression);if(!i.isCompatible(l)){var c=i.stringInfo()[0],u=s.expression.toString();throw kt.invalid_case_type_full(u,c.type,c.dim,s.sourceInfo)}}else a=!0;o=o&&this.checkCommands(e,s.commands,o)}return o&&a}if(t instanceof z){var d=0,p=this.findSymbol(t.id,this.symbolMap);if(null===p)throw kt.symbol_not_found_full(t.id,t.sourceInfo);if(p.isConst)throw kt.invalid_const_assignment_full(t.id,t.sourceInfo);if(!(p.type instanceof $t.ArrayType))throw kt.invalid_array_access_full(t.id,t.sourceInfo);var _=t.expression,f=t.line;if(!this.evaluateExpressionType(f).isCompatible(he.Types.INTEGER))throw kt.array_dimension_not_int_full(t.sourceInfo);d+=1;var m=t.column;if(null===p.columns&&null!==m)throw kt.invalid_matrix_access_full(t.id,t.sourceInfo);if(null!==m){if(!this.evaluateExpressionType(m).isCompatible(he.Types.INTEGER))throw kt.array_dimension_not_int_full(t.sourceInfo);d+=1}var v=this.evaluateExpressionType(_),h=p.type,g=!1;if(v instanceof Ut.MultiType){var b=h;b=h.dimensions-d==0?h.innerType:new $t.ArrayType(h.innerType,Math.max(0,h.dimensions-d)),g=v.isCompatible(b)}else g=h.canAccept(v,d);if(!(g||y.enable_type_casting&&di.Store.canImplicitTypeCast(h,v))){var w=h.stringInfo()[0],x=v.stringInfo()[0];throw kt.incompatible_types_full(w.type,w.dim-d,x.type,x.dim,_.toString(),t.sourceInfo)}return n}if(t instanceof G){var E=this.findSymbol(t.id,this.symbolMap);if(null===E)throw kt.symbol_not_found_full(t.id,t.sourceInfo);if(E.isConst)throw kt.invalid_const_assignment_full(t.id,t.sourceInfo);var T=t.expression,R=this.evaluateExpressionType(T);if(R instanceof $t.ArrayType){if(!(E.type instanceof $t.ArrayType))throw new Error("Cannot assign an array to a non-array variable ");if(!R.isCompatible(E.type))if(R.dimensions!==E.type.dimensions||R.innerType.isCompatible(E.type.innerType))switch(R.dimensions){case 1:throw kt.vector_to_matrix_attr(t.id,T.toString(),t.sourceInfo);case 2:throw kt.matrix_to_vector_attr(t.id,T.toString(),t.sourceInfo)}else if(!y.enable_type_casting||!di.Store.canImplicitTypeCast(E.type.innerType,R.innerType)){var A=E.type.stringInfo()[0],O=R.stringInfo()[0];throw kt.incompatible_types_full(A.type,A.dim,O.type,O.dim,T.toString(),t.sourceInfo)}}else if(!(R.isCompatible(E.type)||y.enable_type_casting&&di.Store.canImplicitTypeCast(E.type,R))){var I=E.type.stringInfo()[0],C=R.stringInfo()[0];throw kt.incompatible_types_full(I.type,I.dim,C.type,C.dim,T.toString(),t.sourceInfo)}return n}if(t instanceof S)return n;if(t instanceof Te){if(!this.evaluateExpressionType(t.condition).isCompatible(he.Types.BOOLEAN))throw kt.if_condition_type_full(t.condition.toString(),t.sourceInfo);return t.ifFalse instanceof Te?this.checkCommands(e,t.ifTrue.commands,n)&&this.checkCommand(e,t.ifFalse,n):null!=t.ifFalse?this.checkCommands(e,t.ifTrue.commands,n)&&this.checkCommands(e,t.ifFalse.commands,n):this.checkCommands(e,t.ifTrue.commands,n)}if(t instanceof Xt){var N=null;if(null===(N=t.isMainCall?this.getMainFunction():this.findFunction(t.id)))throw kt.function_missing_full(t.id,t.sourceInfo);return this.assertParameters(N,t.actualParameters),n}if(t instanceof M){var k=this.currentFunction.isMain?Gt.getMainFunctionName():this.currentFunction.name;if(null!==t.expression||e.isCompatible(he.Types.VOID)){if(null!==t.expression){var L=this.evaluateExpressionType(t.expression);if(e.isCompatible(L))return!0;var $=e.stringInfo()[0];throw kt.invalid_return_type_full(k,$.type,$.dim,t.sourceInfo)}return!0}var U=e.stringInfo()[0];throw kt.invalid_void_return_full(k,U.type,U.dim,t.sourceInfo)}}},{key:"checkCommands",value:function(e,t,n){var i=this;return t.reduce((function(t,o){return i.checkCommand(e,o,n)||t}),n)}},{key:"assertParameters",value:function(e,t){if(e.formalParameters.length!==t.length)throw kt.invalid_parameters_size_full(e.name,t.length,e.formalParameters.length,null);for(var n=0;n<t.length;++n){var i=t[n],o=e.formalParameters[n];if(o.byRef)if(i instanceof Pn){if(this.findSymbol(i.id,this.symbolMap).isConst)throw kt.invalid_const_ref_full(e.name,i.toString(),i.sourceInfo)}else if(!(i instanceof Pn||i instanceof d))throw kt.invalid_parameter_type_full(e.name,i.toString(),i.sourceInfo);var a=this.evaluateExpressionType(i);if(a instanceof Ut.MultiType&&o.type instanceof Ut.MultiType){for(var r=0,s=0;s<a.types.length;++s){var l=a.types[s];-1!==o.type.types.indexOf(l)&&(r+=1)}if(r<=0){if(y.enable_type_casting&&!o.byRef&&(a.isCompatible(he.Types.INTEGER)||a.isCompatible(he.Types.REAL))&&(o.type.isCompatible(he.Types.INTEGER)||o.type.isCompatible(he.Types.REAL)))continue;throw kt.invalid_parameter_type_full(e.name,i.toString(),i.sourceInfo)}}else if(a instanceof Ut.MultiType){if(!a.isCompatible(o.type)){if(y.enable_type_casting&&!o.byRef&&(a.isCompatible(he.Types.INTEGER)||a.isCompatible(he.Types.REAL))&&(o.type.isCompatible(he.Types.INTEGER)||o.type.isCompatible(he.Types.REAL)))continue;throw kt.invalid_parameter_type_full(e.name,i.toString(),i.sourceInfo)}}else if(!o.type.isCompatible(a)){if(y.enable_type_casting&&!o.byRef&&di.Store.canImplicitTypeCast(o.type,a))continue;throw kt.invalid_parameter_type_full(e.name,i.toString(),i.sourceInfo)}}}},{key:"evaluateVectorLiteralType",value:function(e,t){for(var n=0;n<e.value.length;n+=1){var i=e.value[n],o=this.evaluateExpressionType(i);if(!((o instanceof Ut.MultiType?o.isCompatible(t.innerType):t.canAccept(o,1))||y.enable_type_casting&&di.Store.canImplicitTypeCast(t.innerType,o))){var a=t.stringInfo()[0],r=o.stringInfo()[0];throw kt.incompatible_types_full(a.type,0,r.type,r.dim,i.toString(),e.sourceInfo)}}return t}}]),e}();function qi(){var e=T.getCurrentLexer(),t=new window.JsonEditor("#json-renderer",{}),n=new Bi("#console",!0);n.hide();try{window.$("#btn").click((function(){var i=window.$("#input").val(),o=new ui(i,e);try{var a=o.parseTree(),r=new Vi(a),s=new ki(r.analyseTree());s.registerInput(n),n.clear(),s.registerOutput(n),s.interpretAST().then((function(e){console.log(e),t.load(e.store),console.log(Ti.Location.size())})).catch((function(e){alert(e),console.log(e),console.log(Ti.Location.size())}))}catch(e){alert(e),console.log(e),console.log(Ti.Location.size())}}))}catch(e){console.log(e)}}var Hi=Object.freeze({INTEGER:"integer",REAL:"real",TEXT:"text",BOOLEAN:"boolean",VOID:"void"}),zi=n(10),Xi=n.n(zi);function Wi(e,t){e.popup({html:'<i class="ui icon inverted exclamation triangle yellow"></i>'+t,transition:"fade up",on:"click",closable:!0,movePopup:!0,boundary:window,preserve:!1,target:!1,className:{popup:"ui popup invalid-identifier"},onHidden:function(t){e.popup("destroy")}}).popup("toggle")}var Qi=[],Yi=!1,Ji=Object.freeze({INSERT_FUNCTION:"INSERT_FUNCTION",REMOVE_FUNCTION:"REMOVE_FUNCTION",INSERT_GLOBAL_VAR:"INSERT_GLOBAL_VAR",REMOVE_GLOBAL_VAR:"REMOVE_GLOBAL_VAR",RENAME_FUNCTION:"RENAME_FUNCTION",RENAME_GLOBAL_VAR:"RENAME_GLOBAL_VAR",SET_GLOBAL_CONST:"SET_GLOBAL_CONST",CHANGE_FUNCTION_RETURN:"CHANGE_FUNCTION_RETURN",CHANGE_GLOBAL_TYPE:"CHANGE_GLOBAL_TYPE",CHANGE_GLOBAL_VALUE:"CHANGE_GLOBAL_VALUE",INSERT_FUNCTION_PARAM:"INSERT_FUNCTION_PARAM",REMOVE_FUNCTION_PARAM:"REMOVE_FUNCTION_PARAM",CHANGE_PARAM_TYPE:"CHANGE_PARAM_TYPE",RENAME_FUNCTION_PARAM:"RENAME_FUNCTION_PARAM",INSERT_FUNCTION_VAR:"INSERT_FUCNTION_VAR",REMOVE_FUNCTION_VAR:"REMOVE_FUNCTION_VAR",RENAME_FUNCTION_VAR:"RENAME_FUNCTION_VAR",CHANGE_VAR_TYPE:"CHANGE_VAR_TYPE",CHANGE_VAR_VALUE:"CHANGE_VAR_VALUE",INSERT_COMMAND:"INSERT_COMMAND",REMOVE_COMMAND:"REMOVE_COMMAND",CHANGE_COMMAND_EXP:"CHANGE_COMMAND_EXP",CHANGE_ATTRIB_EXP:"CHANGE_ATTRIB_EXP",CHANGE_ATTRIB_VAR:"CHANGE_ATTRIB_VAR",MOVE_COMMAND:"MOVE_COMMAND",ENTER_CHANGE_VAR_NAME:"ENTER_CHANGE_VAR_NAME",ENTER_CHANGE_VAR_VALUE:"ENTER_CHANGE_VAR_VALUE",ENTER_CHANGE_GLOBAL_NAME:"ENTER_CHANGE_GLOBAL_NAME",ENTER_CHANGE_GLOBAL_VALUE:"ENTER_CHANGE_GLOBAL_VALUE",ENTER_CHANGE_PARAM_NAME:"ENTER_CHANGE_PARAM_NAME"});function Zi(e,t,n){Yi||Qi.push([e,t,Date.now(),n])}function eo(e,t){for(var n=arguments.length,i=new Array(n>2?n-2:0),o=2;o<n;o++)i[o-2]=arguments[o];no("user_event",e,t,i)}function to(e,t){for(var n=arguments.length,i=new Array(n>2?n-2:0),o=2;o<n;o++)i[o-2]=arguments[o];no("system_event",e,t,i)}function no(e,t,n,i){if(!Yi){var o={context:t,action:n,params:i};Qi.push([e,Date.now(),o])}}function io(){return Qi}function oo(){return JSON.stringify(Qi)}function ao(e){Qi=JSON.parse(e)}var ro=0;function so(e,t,n){e.name!=t&&(/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(t)?!function(e){for(var t=0;t<window.program_obj.globals.length;t++)if(window.program_obj.globals[t].name==e)return!0;return!1}(t)?(eo(e.name,Ji.RENAME_GLOBAL_VAR,t),e.name=t):Wi(n.find(".editing_name_var"),At.getUI("inform_valid_global_duplicated")):Wi(n.find(".editing_name_var"),At.getUI("inform_valid_name")))}function lo(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;e.type=t,e.dimensions=n,n>0&&(e.rows=n,e.columns=2),eo(e.name,Ji.CHANGE_VAR_TYPE,t,n,e.rows,e.columns),function(e){e.type==Hi.INTEGER&&(0==e.dimensions&&(e.value=0),1==e.dimensions&&(e.value=[0,0]),2==e.dimensions&&(e.value=[[0,0],[0,0]]));e.type==Hi.REAL&&(0==e.dimensions&&(e.value=0),1==e.dimensions&&(e.value=[0,0]),2==e.dimensions&&(e.value=[[0,0],[0,0]]));e.type==Hi.TEXT&&(0==e.dimensions&&(e.value=At.getUI("textvar_default_value")),1==e.dimensions&&(e.value=[At.getUI("textvar_default_value"),At.getUI("textvar_default_value")]),2==e.dimensions&&(e.value=[[At.getUI("textvar_default_value"),At.getUI("textvar_default_value")],[At.getUI("textvar_default_value"),At.getUI("textvar_default_value")]]));e.type==Hi.BOOLEAN&&(0==e.dimensions&&(e.value=!0),1==e.dimensions&&(e.value=[!0,!0]),2==e.dimensions&&(e.value=[[!0,!0],[!0,!0]]));to(function_name,Ji.CHANGE_GLOBAL_VALUE,e.name,e.value)}(e)}function co(e,t){var n="";if(0==e.dimensions)e.type==Hi.REAL?n+='<div class="created_div_valor_var"><span class="span_value_variable simple_var">'+e.value.toFixed(1)+"</span> </div> ":e.type==Hi.BOOLEAN?n+='<div class="created_div_valor_var"><span class="span_value_variable boolean_simple_type">'+At.getUI("logic_value_".concat(e.value))+"</span> </div> ":n+='<div class="created_div_valor_var"><span class="span_value_variable simple_var">'+e.value+"</span> </div> ";else{if(n+='<table class="tabela_var">',1==e.dimensions){if(n+="<tr>",e.type==Hi.REAL)for(var i=0;i<e.columns;i++)n+='<td><span class="span_value_variable vector_var" data-index="'+i+'">'+e.value[i].toFixed(1)+"</span></td>";else for(i=0;i<e.columns;i++)e.type==Hi.BOOLEAN?n+='<td><span class="span_value_variable boolean_vector_var" data-index="'+i+'">'+At.getUI("logic_value_".concat(e.value[i]))+"</span></td>":n+='<td><span class="span_value_variable vector_var" data-index="'+i+'">'+e.value[i]+"</span></td>";n+="</tr>",n+="</table>",n+='<div class="buttons_manage_columns"><i class="ui icon minus square outline remove_global_vector_column"></i> <i class="ui icon plus square outline add_global_vector_column"></i></div>'}if(2==e.dimensions){if(e.type==Hi.REAL)for(var o=0;o<e.rows;o++){n+="<tr>";for(i=0;i<e.columns;i++)n+='<td><span class="span_value_variable matrix_var" data-index="'+i+'" data-row="'+o+'">'+e.value[o][i].toFixed(1)+"</span></td>";n+="</tr>"}else for(o=0;o<e.rows;o++){n+="<tr>";for(i=0;i<e.columns;i++)e.type==Hi.BOOLEAN?n+='<td><span class="span_value_variable boolean_matrix_var" data-index="'+i+'" data-row="'+o+'">'+At.getUI("logic_value_".concat(e.value[o][i]))+"</span></td>":n+='<td><span class="span_value_variable matrix_var" data-index="'+i+'" data-row="'+o+'">'+e.value[o][i]+"</span></td>";n+="</tr>"}0==e.rows&&(n+="<tr><td></td></tr>"),n+='<tr><td colspan="'+e.columns+'" class="tr_manage_lines"><i class="ui icon minus square outline remove_global_matrix_line"></i> <i class="ui icon plus square outline add_global_matrix_line"></i></td></tr>',n+="</table>",n+='<div class="buttons_manage_columns"><i class="ui icon minus square outline remove_global_matrix_column"></i> <i class="ui icon plus square outline add_global_matrix_column"></i></div>'}}t.find(".div_valor_var").html(""),(n=$(n)).find(".span_value_variable").data("associatedOject",e),n.find(".boolean_simple_type").on("click",(function(t){!function(e,t){e.value=!e.value,$(t).find(".span_value_variable").text(At.getUI("logic_value_".concat(e.value)))}(e,this.parentNode),eo(e.name,Ji.CHANGE_GLOBAL_VALUE,e.value)})),n.find(".simple_var").on("click",(function(t){eo(e.name,Ji.ENTER_CHANGE_GLOBAL_VALUE),function(e,t){if(mo)return void vo.focus();var n;t=$(t),mo=!0,t.find(".span_value_variable").text(""),e.type==Hi.REAL?(n=$("<input type='text' class='width-dynamic input_name_function' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' value='"+e.value.toFixed(1)+"' />")).insertBefore(t.find(".span_value_variable")):(n=$("<input type='text' class='width-dynamic input_name_function' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' value='"+e.value+"' />")).insertBefore(t.find(".span_value_variable"));n.on("input",(function(){var e=n.textWidth()+10;vo=n,n.focus();var t=n.val();n.val(""),n.val(t),n.css({width:e})})).trigger("input"),n.focusout((function(){var i=!1;n.val().trim()?(e.type==Hi.REAL?(e.value=parseFloat(n.val().trim()),t.find(".span_value_variable").text(e.value.toFixed(1))):(e.type==Hi.INTEGER?e.value=parseInt(n.val().trim()):e.value=n.val().trim(),t.find(".span_value_variable").text(e.value)),i=!0):e.type==Hi.REAL?t.find(".span_value_variable").text(e.value.toFixed(1)):t.find(".span_value_variable").text(e.value),e.type==Hi.TEXT&&(e.value=n.val(),i=!0,t.find(".span_value_variable").text(e.value)),i&&eo(e.name,Ji.CHANGE_GLOBAL_VALUE,e.value),n.off(),n.remove(),mo=!1,vo=!1})),n.on("keydown",(function(i){var o=i.keyCode||i.which,a=!0;13==o&&(n.val().trim()?(e.type==Hi.REAL?(e.value=parseFloat(n.val().trim()),t.find(".span_value_variable").text(e.value.toFixed(1))):(e.type==Hi.INTEGER?e.value=parseInt(n.val().trim()):e.value=n.val().trim(),t.find(".span_value_variable").text(e.value)),a=!0):e.type==Hi.REAL?t.find(".span_value_variable").text(e.value.toFixed(1)):t.find(".span_value_variable").text(e.value),e.type==Hi.TEXT&&(e.value=n.val(),a=!0,t.find(".span_value_variable").text(e.value)),a&&eo(e.name,Ji.CHANGE_GLOBAL_VALUE,e.value),n.off(),n.remove(),mo=!1,vo=!1),27==o&&(e.type==Hi.REAL?t.find(".span_value_variable").text(e.value.toFixed(1)):t.find(".span_value_variable").text(e.value),n.off(),n.remove(),mo=!1,vo=!1)})),n.select()}(e,this.parentNode)})),n.find(".boolean_vector_var").on("click",(function(t){!function(e,t,n){e.value[t]=!e.value[t],$(n).find(".span_value_variable").text(At.getUI("logic_value_".concat(e.value[t])))}(e,$(this).data("index"),this.parentNode),eo(e.name,Ji.CHANGE_GLOBAL_VALUE,e.value)})),n.find(".vector_var").on("click",(function(t){eo(e.name,Ji.ENTER_CHANGE_GLOBAL_VALUE),function(e,t,n){if(go)return void bo.focus();var i;n=$(n),go=!0,n.find(".span_value_variable").text(""),e.type==Hi.REAL?(i=$("<input type='text' class='width-dynamic input_name_function' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' value='"+e.value[t].toFixed(1)+"' />")).insertBefore(n.find(".span_value_variable")):(i=$("<input type='text' class='width-dynamic input_name_function' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' value='"+e.value[t]+"' />")).insertBefore(n.find(".span_value_variable"));i.on("input",(function(){var e=i.textWidth()+10;bo=i,i.focus();var t=i.val();i.val(""),i.val(t),i.css({width:e})})).trigger("input"),i.focusout((function(){var o=!1;i.val().trim()?(e.type==Hi.REAL?(e.value[t]=parseFloat(i.val().trim()),n.find(".span_value_variable").text(e.value[t].toFixed(1))):(e.type==Hi.INTEGER?e.value[t]=parseInt(i.val().trim()):e.value[t]=i.val().trim(),n.find(".span_value_variable").text(e.value[t])),o=!0):e.type==Hi.REAL?n.find(".span_value_variable").text(e.value[t].toFixed(1)):n.find(".span_value_variable").text(e.value[t]),e.type==Hi.TEXT&&(e.value[t]=i.val(),o=!0,n.find(".span_value_variable").text(e.value[t])),o&&eo(e.name,Ji.CHANGE_GLOBAL_VALUE,e.value),i.off(),i.remove(),go=!1,bo=!1})),i.on("keydown",(function(o){var a=o.keyCode||o.which,r=!1;13==a&&(i.val().trim()?(e.type==Hi.REAL?(e.value[t]=parseFloat(i.val().trim()),n.find(".span_value_variable").text(e.value[t].toFixed(1))):(e.type==Hi.INTEGER?e.value[t]=parseInt(i.val().trim()):e.value[t]=i.val().trim(),n.find(".span_value_variable").text(e.value[t])),r=!0):e.type==Hi.REAL?n.find(".span_value_variable").text(e.value[t].toFixed(1)):n.find(".span_value_variable").text(e.value[t]),e.type==Hi.TEXT&&(e.value[t]=i.val(),r=!0,n.find(".span_value_variable").text(e.value[t])),r&&eo(e.name,Ji.CHANGE_GLOBAL_VALUE,e.value),i.off(),i.remove(),go=!1,bo=!1),27==a&&(e.type==Hi.REAL?n.find(".span_value_variable").text(e.value[t].toFixed(1)):n.find(".span_value_variable").text(e.value[t]),i.off(),i.remove(),go=!1,bo=!1)})),i.select()}(e,$(this).data("index"),this.parentNode)})),n.find(".remove_global_vector_column").on("click",(function(n){!function(e){0!=e.columns&&(e.columns--,e.value.splice(e.value.length-1,1))}(e),t.find(".div_valor_var").html(""),eo(e.name,Ji.CHANGE_GLOBAL_TYPE,e.type,e.dimensions,e.rows,e.columns),to(e.name,Ji.CHANGE_GLOBAL_VALUE,e.value),co(e,t)})),n.find(".add_global_vector_column").on("click",(function(n){!function(e){e.columns++,e.type==Hi.INTEGER&&e.value.push(0),e.type==Hi.REAL&&e.value.push(0),e.type==Hi.TEXT&&e.value.push(At.getUI("textvar_default_value")),e.type==Hi.BOOLEAN&&e.value.push(!0)}(e),eo(e.name,Ji.CHANGE_GLOBAL_TYPE,e.type,e.dimensions,e.rows,e.columns),to(e.name,Ji.CHANGE_GLOBAL_VALUE,e.value),t.find(".div_valor_var").html(""),co(e,t)})),n.find(".remove_global_matrix_column").on("click",(function(n){!function(e){if(0!=e.columns){e.columns--;for(var t=0;t<e.rows;t++)e.value[t].splice(e.value[t].length-1,1)}}(e),eo(e.name,Ji.CHANGE_GLOBAL_TYPE,e.type,e.dimensions,e.rows,e.columns),to(e.name,Ji.CHANGE_GLOBAL_VALUE,e.value),t.find(".div_valor_var").html(""),co(e,t)})),n.find(".add_global_matrix_column").on("click",(function(n){!function(e){if(e.columns++,e.type==Hi.INTEGER)for(var t=0;t<e.rows;t++)e.value[t].push(0);if(e.type==Hi.REAL)for(t=0;t<e.rows;t++)e.value[t].push(0);if(e.type==Hi.TEXT)for(t=0;t<e.rows;t++)e.value[t].push(At.getUI("textvar_default_value"));if(e.type==Hi.BOOLEAN)for(t=0;t<e.rows;t++)e.value[t].push(!0)}(e),eo(e.name,Ji.CHANGE_GLOBAL_TYPE,e.type,e.dimensions,e.rows,e.columns),to(e.name,Ji.CHANGE_GLOBAL_VALUE,e.value),t.find(".div_valor_var").html(""),co(e,t)})),n.find(".remove_global_matrix_line").on("click",(function(n){!function(e){0!=e.rows&&(e.rows--,e.value.splice(e.value.length-1,1))}(e),eo(e.name,Ji.CHANGE_GLOBAL_TYPE,e.type,e.dimensions,e.rows,e.columns),to(e.name,Ji.CHANGE_GLOBAL_VALUE,e.value),t.find(".div_valor_var").html(""),co(e,t)})),n.find(".add_global_matrix_line").on("click",(function(n){!function(e){if(e.rows++,e.type==Hi.INTEGER){for(var t=[],n=0;n<e.columns;n++)t.push(0);e.value.push(t)}if(e.type==Hi.REAL){t=[];for(n=0;n<e.columns;n++)t.push(0);e.value.push(t)}if(e.type==Hi.TEXT){t=[];for(n=0;n<e.columns;n++)t.push(At.getUI("textvar_default_value"));e.value.push(t)}if(e.type==Hi.BOOLEAN){t=[];for(n=0;n<e.columns;n++)t.push(!0);e.value.push(t)}}(e),eo(e.name,Ji.CHANGE_GLOBAL_TYPE,e.type,e.dimensions,e.rows,e.columns),to(e.name,Ji.CHANGE_GLOBAL_VALUE,e.value),t.find(".div_valor_var").html(""),co(e,t)})),n.find(".boolean_matrix_var").on("click",(function(t){!function(e,t,n,i){e.value[t][n]=!e.value[t][n],$(i).find(".span_value_variable").text(At.getUI("logic_value_".concat(e.value[t][n])))}(e,$(this).data("row"),$(this).data("index"),this.parentNode),eo(e.name,Ji.CHANGE_GLOBAL_VALUE,e.value)})),n.find(".matrix_var").on("click",(function(t){eo(e.name,Ji.ENTER_CHANGE_GLOBAL_VALUE),function(e,t,n,i){if(_o)return void fo.focus();var o;i=$(i),_o=!0,i.find(".span_value_variable").text(""),e.type==Hi.REAL?(o=$("<input type='text' class='width-dynamic input_name_function' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' value='"+e.value[t][n].toFixed(1)+"' />")).insertBefore(i.find(".span_value_variable")):(o=$("<input type='text' class='width-dynamic input_name_function' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' value='"+e.value[t][n]+"' />")).insertBefore(i.find(".span_value_variable"));o.on("input",(function(){var e=o.textWidth()+10;fo=o,o.focus();var t=o.val();o.val(""),o.val(t),o.css({width:e})})).trigger("input"),o.focusout((function(){o.val().trim()?(e.type==Hi.REAL?(e.value[t][n]=parseFloat(o.val().trim()),i.find(".span_value_variable").text(e.value[t][n].toFixed(1))):(e.type==Hi.INTEGER?e.value[t][n]=parseInt(o.val().trim()):e.value[t][n]=o.val().trim(),i.find(".span_value_variable").text(e.value[t][n])),eo(e.name,Ji.CHANGE_GLOBAL_VALUE,e.value)):e.type==Hi.REAL?i.find(".span_value_variable").text(e.value[t][n].toFixed(1)):i.find(".span_value_variable").text(e.value[t][n]),e.type==Hi.TEXT&&(e.value[t][n]=o.val(),i.find(".span_value_variable").text(e.value[t][n])),o.off(),o.remove(),_o=!1,fo=!1})),o.on("keydown",(function(a){var r=a.keyCode||a.which;13==r&&(o.val().trim()?(e.type==Hi.REAL?(e.value[t][n]=parseFloat(o.val().trim()),i.find(".span_value_variable").text(e.value[t][n].toFixed(1))):(e.type==Hi.INTEGER?e.value[t][n]=parseInt(o.val().trim()):e.value[t][n]=o.val().trim(),i.find(".span_value_variable").text(e.value[t][n])),eo(e.name,Ji.CHANGE_GLOBAL_VALUE,e.value)):e.type==Hi.REAL?i.find(".span_value_variable").text(e.value[t][n].toFixed(1)):i.find(".span_value_variable").text(e.value[t][n]),e.type==Hi.TEXT&&(e.value[t][n]=o.val(),eo(e.name,Ji.CHANGE_GLOBAL_VALUE,e.value),i.find(".span_value_variable").text(e.value[t][n])),o.off(),o.remove(),_o=!1,fo=!1),27==r&&(e.type==Hi.REAL?i.find(".span_value_variable").text(e.value[t][n].toFixed(1)):i.find(".span_value_variable").text(e.value[t][n]),o.off(),o.remove(),_o=!1,fo=!1)})),o.select()}(e,$(this).data("row"),$(this).data("index"),this.parentNode)})),t.find(".div_valor_var").append(n),function(e,t){var n=e.find(".text").text().split("[");if(2==n.length){var i=n[0]+"[ "+t.columns+" ] ";e.find(".text").empty(),e.find(".text").text(i)}if(3==n.length){i=n[0]+"[ "+t.columns+" ] [ "+t.rows+" ] ";e.find(".text").empty(),e.find(".text").text(i)}}(t,e)}function uo(e){var t=e.data("associatedOject");e.find(".alternate_constant").on("click",(function(e){!function(e){e.is_constant=!e.is_constant,eo(e.name,Ji.SET_GLOBAL_CONST)}(t),$(this).removeClass("on off"),t.is_constant?$(this).addClass("on"):$(this).addClass("off")})),e.find(".editing_name_var").on("click",(function(n){eo(t.name,Ji.ENTER_CHANGE_GLOBAL_NAME),function(e){var t=e.data("associatedOject");if(ho)return void yo.focus();ho=!0,e.find(".span_name_variable").text("");var n=$("<input type='text' class='width-dynamic input_name_function' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' value='"+t.name+"' />");n.insertBefore(e.find(".span_name_variable")),n.on("input",(function(){var e=n.textWidth()+10;(yo=n).focus(),yo.css({width:e})})).trigger("input"),n.focusout((function(){n.val().trim().length>0?(so(t,n.val().trim(),e),e.find(".span_name_variable").text(t.name)):e.find(".span_name_variable").text(t.name),n.off(),n.remove(),ho=!1,yo=!1})),n.on("keydown",(function(i){var o=i.keyCode||i.which;13==o&&(n.val().trim()?(so(t,n.val().trim(),e),e.find(".span_name_variable").text(t.name)):e.find(".span_name_variable").text(t.name),n.off(),n.remove(),ho=!1,yo=!1),27==o&&(e.find(".span_name_variable").text(t.name),n.off(),n.remove(),ho=!1,yo=!1)})),n.select()}(e)})),e.find(".ui.dropdown.global_type").dropdown({onChange:function(n,i,o){o.data("dimensions")?lo(t,Hi[o.data("type")],o.data("dimensions")):lo(t,Hi[o.data("type")]),co(t,e)},selectOnKeydown:!1}),e.find(".remove_global").on("click",(function(n){!function(e,t){var n=window.program_obj.globals.indexOf(e);n>-1&&(window.insertContext=!0,window.program_obj.globals.splice(n,1)),eo(e.name,Ji.REMOVE_GLOBAL_VAR),t.children().off(),t.off(),t.fadeOut()}(t,e)}))}function po(e){var t='<div class="ui label global_container pink"><i class="ui icon ellipsis vertical inverted"></i><div class="global_const">const: ';for(var n in t+='<i class="ui icon toggle '+(e.is_constant?"on":"off")+' alternate_constant"></i></div>',t+='<div class="ui dropdown global_type">',1==e.dimensions?(t+='<div class="text">'+At.getUI("vector")+": "+At.getUI("type_".concat(e.type)),t+=' [ <span class="dimensions_0"></span> ] ',t+="</div>"):2==e.dimensions?(t+='<div class="text">'+At.getUI("matrix")+": "+At.getUI("type_".concat(e.type)),t+=' [ <span class="dimensions_0"></span> ] [ <span class="dimensions_1"></span> ] ',t+="</div>"):t+='<div class="text">'+At.getUI("type_".concat(e.type.toLowerCase()))+"</div>",t+='<div class="menu">',Hi)n!=Hi.VOID.toUpperCase()&&(t+='<div class="item '+(e.type==n.toLowerCase()&&0==e.dimensions?" selected ":"")+'" data-type="'+n+'" >'+At.getUI("type_".concat(n.toLowerCase()))+"</div>");for(var n in t+='<div class="item '+(1==e.dimensions?" selected ":"")+'"><i class="dropdown icon"></i>'+At.getUI("vector")+'<div class="menu">',Hi)n!=Hi.VOID.toUpperCase()&&(t+='<div class="item '+(e.type==n.toLowerCase()&&1==e.dimensions?" selected ":"")+'" data-text="'+At.getUI("vector")+":"+At.getUI("type_".concat(n.toLowerCase()))+' [ ] " data-type="'+n+'" data-dimensions="1"> '+At.getUI("type_".concat(n.toLowerCase()))+"</div>");for(var n in t+="</div></div>",t+='<div class="item '+(2==e.dimensions?" selected ":"")+'"><i class="dropdown icon"></i>'+At.getUI("matrix")+'<div class="menu">',Hi)n!=Hi.VOID.toUpperCase()&&(t+='<div class="item '+(e.type==n.toLowerCase()&&2==e.dimensions?" selected ":"")+'" data-text="'+At.getUI("matrix")+":"+At.getUI("type_".concat(n.toLowerCase()))+' [ ] " data-type="'+n+'" data-dimensions="2"> '+At.getUI("type_".concat(n.toLowerCase()))+"</div>");t+="</div></div>",t+='</div></div> <div class="editing_name_var"> <span class="span_name_variable enable_edit_name_parameter">'+e.name+'</span> </div> <span class="character_equals"> <— </span> ',t+='<div class="ui div_valor_var">'+e.value+"</div>",t+=' <i class="yellow inverted icon times remove_global"></i></div>';var i=$(t);return i.data("associatedOject",e),$(".list_globals").append(i),uo(i),co(e,i),1==e.dimensions&&i.find(".dimensions_0").text(e.columns),2==e.dimensions&&(i.find(".dimensions_0").text(e.columns),i.find(".dimensions_1").text(e.rows)),i}var _o=!1,fo=null;var mo=!1,vo=null;var ho=!1,yo=null;var go=!1,bo=null;function wo(){if(!window.block_render&&!window.draging){window.block_render=!0,console.log("rendering algorithm"),$(".all_functions").children().off(),$(".all_functions").empty(),$(".list_globals").children().off(),$(".list_globals").empty();for(var e=0;e<window.program_obj.functions.length;e++)Os(window.program_obj.functions[e]);for(e=0;e<window.program_obj.globals.length;e++)po(window.program_obj.globals[e]);setTimeout((function(){window.block_render=!1}),100),console.log("fim do render"),settingsFilter&&settingsFilter[0]&&blockAllEditingOptions()}}function xo(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function Eo(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}$.fn.textWidth=function(e,t){return $.fn.textWidth.fakeEl||($.fn.textWidth.fakeEl=$("<span>").hide().appendTo(document.body)),$.fn.textWidth.fakeEl.text(e||this.val()||this.text()||this.attr("placeholder")).css("font",t||this.css("font")),$.fn.textWidth.fakeEl.width()},window.block_render=!1;var To=Object.freeze({function:"function",comment:"comment",reader:"reader",writer:"writer",attribution:"attribution",iftrue:"iftrue",repeatNtimes:"repeatNtimes",whiletrue:"whiletrue",dowhiletrue:"dowhiletrue",switch:"switch",switchcase:"switchcase",functioncall:"functioncall",break:"break",return:"return"}),Ro=Object.freeze({plus:"plus",minus:"minus",multiplication:"multiplication",division:"division",module:"module",none:"none"}),Ao=Object.freeze({exp_op_exp:"exp_op_exp",op_exp:"op_exp",par_exp_par:"par_exp_par",start_point:"start_point"}),Oo=Object.freeze({exp_conditional:"exp_conditional",exp_logic:"exp_logic",exp_arithmetic:"exp_arithmetic"}),Io=Object.freeze({greater_than:"greater_than",less_than:"less_than",equals_to:"equals_to",not_equals_to:"not_equals_to",greater_than_or_equals_to:"greater_than_or_equals_to",less_than_or_equals_to:"less_than_or_equals_to"}),Co=Object.freeze({equals_to:"equals_to",not_equals_to:"not_equals_to",and:"and",or:"or",not:"not"}),No=Object.freeze({math:"$mathLib",text:"$strLib",arrangement:"$arrayLib",conversion:"$langLib"}),So=function e(t,n,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0;Eo(this,e),this.type=t,this.name=n,this.value=i,this.dimensions=o,this.is_constant=a,this.rows=r,this.columns=s},ko=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Hi.VOID,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r=arguments.length>5&&void 0!==arguments[5]&&arguments[5],s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:[],l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,c=arguments.length>8&&void 0!==arguments[8]?arguments[8]:[];Eo(this,e),this.type=To.function,this.name=t,this.return_type=n,this.return_dimensions=i,this.parameters_list=o,this.is_main=a,this.is_hidden=r,this.variables_list=s,this.function_comment=l,this.commands=c},Lo=function e(t,n,i,o){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,r=arguments.length>5?arguments[5]:void 0;Eo(this,e),this.type=To.function,this.identifier=t,this.return_type=n,this.return_dimensions=i,this.parameters_list=o,this.function_comment=a,this.category=r},$o=function e(t){Eo(this,e),this.type=To.comment,this.comment_text=t},Uo=function e(){Eo(this,e),this.type=To.break},Po=function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Qo;Eo(this,e),this.type=To.reader,this.variable_value_menu=t},Mo=function e(t){Eo(this,e),this.type=To.writer,this.content=t},Fo=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];Eo(this,e),this.type=To.attribution,this.variable=t,this.expression=n},jo=function e(t,n){Eo(this,e),this.type_op=t,this.item=n},Ko=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];Eo(this,e),this.type_exp=t,this.itens=n},Bo=function e(t,n,i){Eo(this,e),this.type=Oo.exp_arithmetic,this.first_operand=t,this.second_operand=n,this.operator=i},Go=function e(t,n,i){Eo(this,e),this.type=To.iftrue,this.expression=t,this.commands_block=n,this.commands_else=i},Do=function e(t,n,i,o,a,r){Eo(this,e),this.type=To.repeatNtimes,this.var_attribution=t,this.var_incrementation=n,this.expression1=i,this.expression2=o,this.expression3=a,this.commands_block=r},Vo=function e(t,n){Eo(this,e),this.type=To.whiletrue,this.expression=t,this.commands_block=n},qo=function e(t,n){Eo(this,e),this.type=To.dowhiletrue,this.expression=t,this.commands_block=n},Ho=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];Eo(this,e),this.type=To.switch,this.variable=t,this.cases=n},zo=function e(t){Eo(this,e),this.type=To.return,this.variable_value_menu=t},Xo=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];Eo(this,e),this.type=To.switchcase,this.variable_value_menu=t,this.commands_block=n},Wo=function e(t,n){Eo(this,e),this.type=To.functioncall,this.function_called=t,this.parameters_list=n},Qo=function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:7,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,a=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;Eo(this,e),this.type="var_value",this.variable_and_value=t,this.content=n,this.row=i,this.column=o,this.include_constant=a,this.dimensions=r},Yo=function(){function e(){Eo(this,e),this.functions=[],this.globals=[]}var t,n,i;return t=e,(n=[{key:"addFunction",value:function(e){Xi.a.watch(e.parameters_list,(function(){window.insertContext?(setTimeout((function(){wo()}),300),window.insertContext=!1):wo()}),1),Xi.a.watch(e.variables_list,(function(){window.insertContext?(setTimeout((function(){wo()}),300),window.insertContext=!1):wo()}),1),this.functions.push(e)}},{key:"addVariable",value:function(e,t){null===this.functions[e].variable&&(this.functions[e].variables_list=[]),this.functions[e].variables_list.push(t)}},{key:"addGlobal",value:function(e){this.globals.push(e)}}])&&xo(t.prototype,n),i&&xo(t,i),e}(),Jo=0;function Zo(e,t,n,i){e.name!=t&&(Pi(t)?!function(e,t){if(t.parameters_list)for(var n=0;n<t.parameters_list.length;n++)if(t.parameters_list[n].name==e)return!0;if(t.variables_list)for(n=0;n<t.variables_list.length;n++)if(t.variables_list[n].name==e)return!0;return!1}(t,i)?(eo(i.name,Ji.RENAME_FUNCTION_VAR,e.name,t),e.name=t):Wi(n.find(".editing_name_var"),At.getError("inform_valid_variable_duplicated",[t,i.name])):Wi(n.find(".editing_name_var"),At.getError("inform_valid_identifier")))}function ea(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;e.type=t,e.dimensions=i,i>0&&(e.rows=i,e.columns=2),eo(n,Ji.CHANGE_VAR_TYPE,e.name,t,i,e.rows,e.columns),function(e,t){e.type==Hi.INTEGER&&(0==e.dimensions&&(e.value=0),1==e.dimensions&&(e.value=[0,0]),2==e.dimensions&&(e.value=[[0,0],[0,0]]));e.type==Hi.REAL&&(0==e.dimensions&&(e.value=0),1==e.dimensions&&(e.value=[0,0]),2==e.dimensions&&(e.value=[[0,0],[0,0]]));e.type==Hi.TEXT&&(0==e.dimensions&&(e.value=At.getUI("textvar_default_value")),1==e.dimensions&&(e.value=[At.getUI("textvar_default_value"),At.getUI("textvar_default_value")]),2==e.dimensions&&(e.value=[[At.getUI("textvar_default_value"),At.getUI("textvar_default_value")],[At.getUI("textvar_default_value"),At.getUI("textvar_default_value")]]));e.type==Hi.BOOLEAN&&(0==e.dimensions&&(e.value=!0),1==e.dimensions&&(e.value=[!0,!0]),2==e.dimensions&&(e.value=[[!0,!0],[!0,!0]]));to(t,Ji.CHANGE_VAR_VALUE,e.name,e.value)}(e,n)}function ta(e,t,n){t.find(".editing_name_var").on("click",(function(i){eo(n.name,Ji.ENTER_CHANGE_VAR_NAME,e.name),function(e,t,n){if(la)return void ca.focus();var i;la=!0,t.find(".span_name_variable").text(""),(i=$("<input type='text' class='width-dynamic input_name_function' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' value='"+e.name+"' />")).insertBefore(t.find(".span_name_variable")),i.on("input",(function(){var e=i.textWidth()+10;ca=i,i.focus();var t=i.val();i.val(""),i.val(t),i.css({width:e})})).trigger("input"),i.focusout((function(){i.val().trim().length>0?(Zo(e,i.val().trim(),t,n),t.find(".span_name_variable").text(e.name)):t.find(".span_name_variable").text(e.name),i.off(),i.remove(),la=!1,ca=!1})),i.on("keydown",(function(o){var a=o.keyCode||o.which;13==a&&(i.val().trim().length>0?(Zo(e,i.val().trim(),t,n),t.find(".span_name_variable").text(e.name)):t.find(".span_name_variable").text(e.name),i.off(),i.remove(),la=!1,ca=!1),27==a&&(t.find(".span_name_variable").text(e.name),i.off(),i.remove(),la=!1,ca=!1)})),i.select()}(e,t,n)})),t.find(".ui.dropdown.variable_type").dropdown({onChange:function(i,o,a){a.data("dimensions")?ea(e,Hi[a.data("type")],n.name,a.data("dimensions")):ea(e,Hi[a.data("type")],n.name),ia(e,t,n.name)},selectOnKeydown:!1}),t.find(".remove_variable").on("click",(function(i){!function(e,t,n){var i=t.data("associatedFunction");eo(n,Ji.REMOVE_FUNCTION_VAR,e.name);var o=i.variables_list.indexOf(e);o>-1&&(window.insertContext=!0,delete i.variables_list[o],i.variables_list.splice(o,1)),t.children().off(),t.off(),t.fadeOut()}(e,t,n.name)}))}function na(e,t,n){var i='<div class="ui label variable_container pink"><i class="ui icon ellipsis vertical inverted"></i>';for(var o in i+='<div class="ui dropdown variable_type">',1==t.dimensions?(i+='<div class="text">'+At.getUI("vector")+": "+At.getUI("type_".concat(t.type.toLowerCase())),i+=" [ ] </div>"):2==t.dimensions?(i+='<div class="text">'+At.getUI("matrix")+": "+At.getUI("type_".concat(t.type.toLowerCase())),i+=" [ ] [ ] </div>"):i+='<div class="text">'+At.getUI("type_".concat(t.type.toLowerCase()))+"</div>",i+='<div class="menu">',Hi)o!=Hi.VOID.toUpperCase()&&(i+='<div class="item '+(t.type==o.toLowerCase()&&0==t.dimensions?" selected ":"")+'" data-type="'+o+'" >'+At.getUI("type_".concat(o.toLowerCase()))+"</div>");for(var o in i+='<div class="item '+(1==t.dimensions?" selected ":"")+'"><i class="dropdown icon"></i>'+At.getUI("vector")+'<div class="menu">',Hi)o!=Hi.VOID.toUpperCase()&&(i+='<div class="item '+(t.type==o.toLowerCase()&&1==t.dimensions?" selected ":"")+'" data-text="'+At.getUI("vector")+":"+At.getUI("type_".concat(o.toLowerCase()))+' [ ] " data-type="'+o+'" data-dimensions="1"> '+At.getUI("type_".concat(o.toLowerCase()))+"</div>");for(var o in i+="</div></div>",i+='<div class="item '+(2==t.dimensions?" selected ":"")+'"><i class="dropdown icon"></i>'+At.getUI("matrix")+'<div class="menu">',Hi)o!=Hi.VOID.toUpperCase()&&(i+='<div class="item '+(t.type==o.toLowerCase()&&2==t.dimensions?" selected ":"")+'" data-text="'+At.getUI("matrix")+":"+At.getUI("type_".concat(o.toLowerCase()))+' [ ] " data-type="'+o+'" data-dimensions="2"> '+At.getUI("type_".concat(o.toLowerCase()))+"</div>");return i+="</div></div>",i+="</div></div> ",i+='<div class="editing_name_var"><span class="span_name_variable enable_edit_name_variable">'+t.name+"</span> </div>",i+=' <span class="character_equals"> <— </span> <div class="ui div_valor_var">'+t.value+"</div>",i+=' <i class="yellow inverted icon times remove_variable"></i></div>',(i=$(i)).data("associatedFunction",n),e.find(".variables_list_div").append(i),ta(t,i,n),ia(t,i,n.name),i}function ia(e,t,n){var i="";if(0==e.dimensions)e.type==Hi.REAL?i+='<div class="created_div_valor_var"><span class="span_value_variable simple_var">'+e.value.toFixed(1)+"</span> </div> ":e.type==Hi.BOOLEAN?i+='<div class="created_div_valor_var"><span class="span_value_variable boolean_simple_type">'+At.getUI("logic_value_".concat(e.value))+"</span> </div> ":i+='<div class="created_div_valor_var"><span class="span_value_variable simple_var">'+e.value+"</span> </div> ";else{if(i+='<table class="tabela_var">',1==e.dimensions){if(i+="<tr>",e.type==Hi.REAL)for(var o=0;o<e.columns;o++)i+='<td><span class="span_value_variable vector_var" data-index="'+o+'">'+e.value[o].toFixed(1)+"</span></td>";else for(o=0;o<e.columns;o++)e.type==Hi.BOOLEAN?i+='<td><span class="span_value_variable boolean_vector_var" data-index="'+o+'">'+At.getUI("logic_value_".concat(e.value[o]))+"</span></td>":i+='<td><span class="span_value_variable vector_var" data-index="'+o+'">'+e.value[o]+"</span></td>";i+="</tr>",i+="</table>",i+='<div class="buttons_manage_columns"><i class="ui icon minus square outline remove_global_vector_column"></i> <i class="ui icon plus square outline add_global_vector_column"></i></div>'}if(2==e.dimensions){if(e.type==Hi.REAL)for(var a=0;a<e.rows;a++){i+="<tr>";for(o=0;o<e.columns;o++)i+='<td><span class="span_value_variable matrix_var" data-index="'+o+'" data-row="'+a+'">'+e.value[a][o].toFixed(1)+"</span></td>";i+="</tr>"}else for(a=0;a<e.rows;a++){i+="<tr>";for(o=0;o<e.columns;o++)e.type==Hi.BOOLEAN?i+='<td><span class="span_value_variable boolean_matrix_var" data-index="'+o+'" data-row="'+a+'">'+At.getUI("logic_value_".concat(e.value[a][o]))+"</span></td>":i+='<td><span class="span_value_variable matrix_var" data-index="'+o+'" data-row="'+a+'">'+e.value[a][o]+"</span></td>";i+="</tr>"}0==e.rows&&(i+="<tr><td></td></tr>"),i+='<tr><td colspan="'+e.columns+'" class="tr_manage_lines"><i class="ui icon minus square outline remove_global_matrix_line"></i> <i class="ui icon plus square outline add_global_matrix_line"></i></td></tr>',i+="</table>",i+='<div class="buttons_manage_columns"><i class="ui icon minus square outline remove_global_matrix_column"></i> <i class="ui icon plus square outline add_global_matrix_column"></i></div>'}}$(t).find(".div_valor_var").html(""),i=$(i),$(i).find(".span_value_variable").data("associatedOject",e),$(i).find(".boolean_simple_type").on("click",(function(t){var i,o;eo(n,Ji.CHANGE_VAR_VALUE,e.name,e.value),i=e,o=this.parentNode,i.value=!i.value,$(o).find(".span_value_variable").text(At.getUI("logic_value_".concat(i.value)))})),$(i).find(".simple_var").on("click",(function(t){eo(n,Ji.ENTER_CHANGE_VAR_VALUE,e.name),function(e,t,n){if(ra)return void sa.focus();var i;t=$(t),ra=!0,t.find(".span_value_variable").text(""),e.type==Hi.REAL?(i=$("<input type='text' class='width-dynamic input_name_function' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' value='"+e.value.toFixed(1)+"' />")).insertBefore(t.find(".span_value_variable")):(i=$("<input type='text' class='width-dynamic input_name_function' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' value='"+e.value+"' />")).insertBefore(t.find(".span_value_variable"));i.on("input",(function(){var e=i.textWidth()+10;sa=i,i.focus();var t=i.val();i.val(""),i.val(t),i.css({width:e})})).trigger("input"),i.focusout((function(){var o=!1;i.val().trim()?(e.type==Hi.REAL?(e.value=parseFloat(i.val().trim()),t.find(".span_value_variable").text(e.value.toFixed(1))):(e.type==Hi.INTEGER?e.value=parseInt(i.val().trim()):e.value=i.val().trim(),t.find(".span_value_variable").text(e.value)),o=!0):e.type==Hi.REAL?t.find(".span_value_variable").text(e.value.toFixed(1)):t.find(".span_value_variable").text(e.value),e.type==Hi.TEXT&&(e.value=i.val(),o=!0,t.find(".span_value_variable").text(e.value)),o&&eo(n,Ji.CHANGE_VAR_VALUE,e.name,e.value),i.off(),i.remove(),ra=!1,sa=!1})),i.on("keydown",(function(o){var a=o.keyCode||o.which,r=!1;13==a&&(i.val().trim()?(e.type==Hi.REAL?(e.value=parseFloat(i.val().trim()),t.find(".span_value_variable").text(e.value.toFixed(1))):(e.type==Hi.INTEGER?e.value=parseInt(i.val().trim()):e.value=i.val().trim(),t.find(".span_value_variable").text(e.value)),r=!0):e.type==Hi.REAL?t.find(".span_value_variable").text(e.value.toFixed(1)):t.find(".span_value_variable").text(e.value),e.type==Hi.TEXT&&(e.value=i.val(),r=!0,t.find(".span_value_variable").text(e.value)),r&&eo(n,Ji.CHANGE_VAR_VALUE,e.name,e.value),i.off(),i.remove(),ra=!1,sa=!1),27==a&&(e.type==Hi.REAL?t.find(".span_value_variable").text(e.value.toFixed(1)):t.find(".span_value_variable").text(e.value),i.off(),i.remove(),ra=!1,sa=!1)})),i.select()}(e,this.parentNode,n)})),$(i).find(".boolean_vector_var").on("click",(function(t){var i,o,a;i=e,o=$(this).data("index"),a=this.parentNode,i.value[o]=!i.value[o],$(a).find(".span_value_variable").text(At.getUI("logic_value_".concat(i.value[o]))),eo(n,Ji.CHANGE_VAR_VALUE,e.name,e.value)})),$(i).find(".vector_var").on("click",(function(t){!function(e,t,n,i){if(oa)return void aa.focus();var o;n=$(n),oa=!0,n.find(".span_value_variable").text(""),e.type==Hi.REAL?(o=$("<input type='text' class='width-dynamic input_name_function' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' value='"+e.value[t].toFixed(1)+"' />")).insertBefore(n.find(".span_value_variable")):(o=$("<input type='text' class='width-dynamic input_name_function' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' value='"+e.value[t]+"' />")).insertBefore(n.find(".span_value_variable"));o.on("input",(function(){var e=o.textWidth()+10;aa=o,o.focus();var t=o.val();o.val(""),o.val(t),o.css({width:e})})).trigger("input"),o.focusout((function(){var a=!1;o.val().trim()?(e.type==Hi.REAL?(e.value[t]=parseFloat(o.val().trim()),n.find(".span_value_variable").text(e.value[t].toFixed(1))):(e.type==Hi.INTEGER?e.value[t]=parseInt(o.val().trim()):e.value[t]=o.val().trim(),n.find(".span_value_variable").text(e.value[t])),a=!0):e.type==Hi.REAL?n.find(".span_value_variable").text(e.value[t].toFixed(1)):n.find(".span_value_variable").text(e.value[t]),e.type==Hi.TEXT&&(e.value[t]=o.val(),a=!0,n.find(".span_value_variable").text(e.value[t])),a&&eo(i,Ji.CHANGE_VAR_VALUE,e.name,e.value),o.off(),o.remove(),oa=!1,aa=!1})),o.on("keydown",(function(a){var r=a.keyCode||a.which,s=!1;13==r&&(o.val().trim()?(e.type==Hi.REAL?(e.value[t]=parseFloat(o.val().trim()),n.find(".span_value_variable").text(e.value[t].toFixed(1))):(e.type==Hi.INTEGER?e.value[t]=parseInt(o.val().trim()):e.value[t]=o.val().trim(),n.find(".span_value_variable").text(e.value[t])),s=!0):e.type==Hi.REAL?n.find(".span_value_variable").text(e.value[t].toFixed(1)):n.find(".span_value_variable").text(e.value[t]),e.type==Hi.TEXT&&(e.value[t]=o.val(),s=!0,n.find(".span_value_variable").text(e.value[t])),s&&eo(i,Ji.CHANGE_VAR_VALUE,e.name,e.value),o.off(),o.remove(),oa=!1,aa=!1),27==r&&(e.type==Hi.REAL?n.find(".span_value_variable").text(e.value[t].toFixed(1)):n.find(".span_value_variable").text(e.value[t]),o.off(),o.remove(),oa=!1,aa=!1)})),o.select()}(e,$(this).data("index"),this.parentNode,n)})),$(i).find(".remove_global_vector_column").on("click",(function(i){!function(e){if(0==e.columns)return;e.columns--,e.value.splice(e.value.length-1,1)}(e),eo(n,Ji.CHANGE_VAR_TYPE,e.name,e.type,e.dimensions,e.rows,e.columns),to(n,Ji.CHANGE_VAR_VALUE,e.name,e.value),$(t).find(".div_valor_var").html(""),ia(e,t,n)})),$(i).find(".add_global_vector_column").on("click",(function(i){!function(e){e.columns++,e.type==Hi.INTEGER&&e.value.push(0);e.type==Hi.REAL&&e.value.push(0);e.type==Hi.TEXT&&e.value.push(At.getUI("textvar_default_value"));e.type==Hi.BOOLEAN&&e.value.push(!0)}(e),eo(n,Ji.CHANGE_VAR_TYPE,e.name,e.type,e.dimensions,e.rows,e.columns),to(n,Ji.CHANGE_VAR_VALUE,e.name,e.value),$(t).find(".div_valor_var").html(""),ia(e,t,n)})),$(i).find(".remove_global_matrix_column").on("click",(function(i){!function(e){if(0==e.columns)return;e.columns--;for(var t=0;t<e.rows;t++)e.value[t].splice(e.value[t].length-1,1)}(e),eo(n,Ji.CHANGE_VAR_TYPE,e.name,e.type,e.dimensions,e.rows,e.columns),to(n,Ji.CHANGE_VAR_VALUE,e.name,e.value),$(t).find(".div_valor_var").html(""),ia(e,t,n)})),$(i).find(".add_global_matrix_column").on("click",(function(i){!function(e){if(e.columns++,e.type==Hi.INTEGER)for(var t=0;t<e.rows;t++)e.value[t].push(0);if(e.type==Hi.REAL)for(t=0;t<e.rows;t++)e.value[t].push(0);if(e.type==Hi.TEXT)for(t=0;t<e.rows;t++)e.value[t].push(At.getUI("textvar_default_value"));if(e.type==Hi.BOOLEAN)for(t=0;t<e.rows;t++)e.value[t].push(!0)}(e),eo(n,Ji.CHANGE_VAR_TYPE,e.name,e.type,e.dimensions,e.rows,e.columns),to(n,Ji.CHANGE_VAR_VALUE,e.name,e.value),$(t).find(".div_valor_var").html(""),ia(e,t,n)})),$(i).find(".remove_global_matrix_line").on("click",(function(i){!function(e){if(0==e.rows)return;e.rows--,e.value.splice(e.value.length-1,1)}(e),eo(n,Ji.CHANGE_VAR_TYPE,e.name,e.type,e.dimensions,e.rows,e.columns),to(n,Ji.CHANGE_VAR_VALUE,e.name,e.value),$(t).find(".div_valor_var").html(""),ia(e,t,n)})),$(i).find(".add_global_matrix_line").on("click",(function(i){!function(e){if(e.rows++,e.type==Hi.INTEGER){for(var t=[],n=0;n<e.columns;n++)t.push(0);e.value.push(t)}if(e.type==Hi.REAL){t=[];for(n=0;n<e.columns;n++)t.push(0);e.value.push(t)}if(e.type==Hi.TEXT){t=[];for(n=0;n<e.columns;n++)t.push(At.getUI("textvar_default_value"));e.value.push(t)}if(e.type==Hi.BOOLEAN){t=[];for(n=0;n<e.columns;n++)t.push(!0);e.value.push(t)}}(e),eo(n,Ji.CHANGE_VAR_TYPE,e.name,e.type,e.dimensions,e.rows,e.columns),to(n,Ji.CHANGE_VAR_VALUE,e.name,e.value),$(t).find(".div_valor_var").html(""),ia(e,t,n)})),$(i).find(".boolean_matrix_var").on("click",(function(t){var i,o,a,r;i=e,o=$(this).data("row"),a=$(this).data("index"),r=this.parentNode,i.value[o][a]=!i.value[o][a],$(r).find(".span_value_variable").text(At.getUI("logic_value_".concat(i.value[o][a]))),eo(n,Ji.CHANGE_VAR_VALUE,e.name,e.value)})),$(i).find(".matrix_var").on("click",(function(t){eo(n,Ji.ENTER_CHANGE_VAR_VALUE,e.name),function(e,t,n,i,o){if(ua)return void da.focus();var a;i=$(i),ua=!0,i.find(".span_value_variable").text(""),e.type==Hi.REAL?(a=$("<input type='text' class='width-dynamic input_name_function' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' value='"+e.value[t][n].toFixed(1)+"' />")).insertBefore(i.find(".span_value_variable")):(a=$("<input type='text' class='width-dynamic input_name_function' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' value='"+e.value[t][n]+"' />")).insertBefore(i.find(".span_value_variable"));a.on("input",(function(){var e=a.textWidth()+10;da=a,a.focus();var t=a.val();a.val(""),a.val(t),a.css({width:e})})).trigger("input"),a.focusout((function(){var r=!1;a.val().trim()?(e.type==Hi.REAL?(e.value[t][n]=parseFloat(a.val().trim()),i.find(".span_value_variable").text(e.value[t][n].toFixed(1))):(e.type==Hi.INTEGER?e.value[t][n]=parseInt(a.val().trim()):e.value[t][n]=a.val().trim(),i.find(".span_value_variable").text(e.value[t][n])),r=!0):e.type==Hi.REAL?i.find(".span_value_variable").text(e.value[t][n].toFixed(1)):i.find(".span_value_variable").text(e.value[t][n]),e.type==Hi.TEXT&&(e.value[t][n]=a.val(),r=!0,i.find(".span_value_variable").text(e.value[t][n])),r&&eo(o,Ji.CHANGE_VAR_VALUE,e.name,e.value),a.off(),a.remove(),ua=!1,da=!1})),a.on("keydown",(function(r){var s=r.keyCode||r.which,l=!1;13==s&&(a.val().trim()?(e.type==Hi.REAL?(e.value[t][n]=parseFloat(a.val().trim()),i.find(".span_value_variable").text(e.value[t][n].toFixed(1))):(e.type==Hi.INTEGER?e.value[t][n]=parseInt(a.val().trim()):e.value[t][n]=a.val().trim(),i.find(".span_value_variable").text(e.value[t][n])),l=!0):e.type==Hi.REAL?i.find(".span_value_variable").text(e.value[t][n].toFixed(1)):i.find(".span_value_variable").text(e.value[t][n]),e.type==Hi.TEXT&&(e.value[t][n]=a.val(),l=!0,i.find(".span_value_variable").text(e.value[t][n])),l&&eo(o,Ji.CHANGE_VAR_VALUE,e.name,e.value),a.off(),a.remove(),ua=!1,da=!1),27==s&&(e.type==Hi.REAL?i.find(".span_value_variable").text(e.value[t][n].toFixed(1)):i.find(".span_value_variable").text(e.value[t][n]),a.off(),a.remove(),ua=!1,da=!1)})),a.select()}(e,$(this).data("row"),$(this).data("index"),this.parentNode,n)})),$(t).find(".div_valor_var").append(i),function(e,t){var n=e.find(".text").text().split("[");if(2==n.length){var i=n[0]+"[ "+t.columns+" ] ";e.find(".text").empty(),e.find(".text").text(i)}if(3==n.length){i=n[0]+"[ "+t.columns+" ] [ "+t.rows+" ] ";e.find(".text").empty(),e.find(".text").text(i)}}(t,e)}var oa=!1,aa=null;var ra=!1,sa=null;var la=!1,ca=null;var ua=!1,da=null;function pa(e,t,n,i){if(n.empty(),Xi.a.unwatch(e,"expression"),Xi.a.watch(e,"expression",(function(){if(!window.timer){var i=n.find(".single_element_expression").not(".mouse_distance").not(".add_parentheses"),o="";i.each((function(e){$(this).hasClass("parentheses_in_expression")?o+=$(this).text()+" ":(o+=$(this).find(".text").text(),o+=$(this).find(".var_name").text(),o+=$(this).find(".parameters_function_called").text(),o+=$(this).find(".value_rendered").text(),o+=" ")})),o&&(window.timer=!0,eo(t.name,Ji.CHANGE_COMMAND_EXP,e.type,"/",o),setTimeout((function(){window.timer=!1}),200))}}),20,!0),e.type===To.attribution)if(Xi.a.unwatch(e.variable),Xi.a.watch(e.variable,(function(){pa(e,t,n,i)}),0),e.variable.content){var o=[];e.variable.content.type==Hi.INTEGER||e.variable.content.type==Hi.REAL?o.push(Oo.exp_arithmetic):e.variable.content.type==Hi.BOOLEAN?(o.push(Oo.exp_conditional),o.push(Oo.exp_logic),o.push(Oo.exp_arithmetic)):e.variable.content.type==Hi.TEXT?(o.push(Oo.exp_conditional),o.push(Oo.exp_logic),o.push(Oo.exp_arithmetic)):console.log("NÃO RECONHECI! VEJA: ",e.variable.content.type),_a(e,t,n,i,o)}else n.text(At.getUI("var_menu_select_var").toLowerCase());else(o=[]).push(Oo.exp_conditional),o.push(Oo.exp_logic),o.push(Oo.exp_arithmetic),_a(e,t,n,i,o);n.children(".mouse_distance").addClass("mouse_distance_hidden"),n.children(".higher_element").on("mousemove",(function(e){window.open_or_close||($(this).css("position","relative","!important"),$(this).children(".mouse_distance").css("opacity","1"))})),n.children(".higher_element").on("mouseout",(function(e){window.open_or_close||($(this).css("position","absolute","!important"),$(this).children(".mouse_distance").css("opacity","0"))}));var a=$('<div class="lixeira" draggable="true"></div>');n.find(".single_element_expression").on("mousedown",(function(e){window.posX=e.clientX,window.posY=e.clientY})),Sortable.create(n[0],{animation:100,ghostClass:"ghost",group:{name:"shared",put:!1},draggable:".single_element_expression",sort:!1,filter:".not_allowed",onStart:function(){$("body").append(a),a.css("display","block"),a.css("top",window.posY+70,"!important"),a.css("left",window.posX-20,"!important")},onMove:function(){a.addClass("color_test")},onEnd:function(){a.remove(),n.find(".ghost").removeClass("ghost")}}),new Sortable(a[0],{group:"shared",animation:150,onAdd:function(o){a.css("display","none"),a.find(".single_element_expression").remove(),a.css("background-color",""),a.remove(),function(e,t){var n=$(e.item).data("index"),i=t[0];if(console.log("indice: ",n),t[n].type)1==t.length?t.splice(0,1):t.length>1&&(n>0&&t[n-1].type_op?(n<t.length&&"("==t[n-2]&&t[n+1].type_op&&t.splice(n+1,1),t.splice(n,1),t.splice(n-1,1),n-2<t.length&&"("==t[n-2]&&")"==t[n-1]&&(t.splice(n-1,1),t.splice(n-2,1),n-3>=0&&n-3<t.length&&t[n-3].type_op&&t.splice(n-3,1))):n<t.length-1&&t[n+1].type_op?(t.splice(n+1,1),t.splice(n,1)):n<t.length-1&&n>0&&"("==t[n-1]&&")"==t[n+1]&&(n>1&&t[n-2].type_op?(t.splice(n+1,1),t.splice(n,1),t.splice(n-1,1),t.splice(n-2,1)):(n<t.length-2&&t[n+2].type_op,t.splice(n+1,1),t.splice(n,1),t.splice(n-1,1))));else if(t[n].type_op);else{var o=-1,a=-1;if("("==t[n]){o=n;for(var r=n+1;r<t.length;r++)if(")"==t[r]){a=r;break}}else{a=n;for(r=n-1;r>=0;r--)if("("==t[r]){o=r;break}}t[o+1].type_op?(t.splice(a,1),t.splice(o+1,1),t.splice(o,1)):(t.splice(a,1),t.splice(o,1))}0==t.length&&t.push(new Qo(ka.all,null,null,null,!0));i!=t[0]&&t[0].type_op&&t.splice(0,1)}(o,i),pa(e,t,n,i)}})}function _a(e,t,n,i,o){var a=0;for(a=0;a<i.length;a++)if("var_value"==i[a].type){var r=$('<div class="single_element_expression" data-index="'+a+'"></div>');0==a&&i.length>0&&i[0].type_op,La(e,i[a],r,t),n.append(r)}else"("==i[a]||")"==i[a]?")"==i[a]?(va(n,o,i,e,t,a),fa(n,i[a],e,t,a,i)):"("!=i[a]||i[a+1].type_op?fa(n,i[a],e,t,a,i):(fa(n,i[a],e,t,a,i),ma(n,o,i,e,t,a+1)):(0==a?console.log("NEGAÇÃO NO PRIMEIRO ELEMENTO"):"("==i[a-1]&&console.log("NEGAÇÃO APÓS O PARÊNTESES"),ha(e,t,n,i[a],o,a,i));va(n,o,i,e,t,a,!0),function(e,t,n,i,o){var a=$('<div class="single_element_expression add_parentheses not_allowed"><img style="width: 15px; position: relative; top: 3px; left: 1px; height: 15px;" src="data:image/png;base64,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"></div>');n.append(a),a.popup({content:"Adicionar parênteses",delay:{show:750,hide:0}}),a.on("click",(function(o){if(!window.parentheses_activate){n.find(".usepointer").off("click"),window.parentheses_activate=!0,window.open_or_close="open",n.find(".dropdown").addClass("disabled"),n.find(".ghost_element").addClass("temp_class"),n.find(".ghost_element").removeClass("ghost_element");var a,r=$('<div class="floating_parenthesis"> ( </div>');r.draggable().appendTo("body"),r.css("position","absolute"),o.type="mousedown.draggable",o.target=r[0],r.css("left",o.pageX+10),r.css("top",o.pageY+10),r.trigger(o),n.on("mousemove",(function(e){var t=null;t=$(e.target).hasClass("single_element_expression")?$(e.target):$(e.target).closest(".single_element_expression"),$(e.target).hasClass("temp_class")||t.length<1||t.hasClass("add_parentheses")||t.hasClass("rendered_parentheses")||$(e.target).hasClass("expression_elements")||function(e,t,n,i,o){var a=e.data("index");if("("==o[a]||")"==o[a])return;if("close"==window.open_or_close&&a<window.inserir_open)return;if(0==a){if("var_value"==o[a].type){"open"==window.open_or_close&&(window.open_parentheses.insertBefore(e),window.inserir_open=a);for(var r=0,s=0,l=0;l<o.length;l++)if("("==o[l]&&r++,")"==o[l]&&s++,r!=s);else{if(r>0){"close"==window.open_or_close&&(window.close_parentheses.insertAfter(i.find('.single_element_expression[data-index="'+l+'"]')),window.inserir_close=l+2);break}if("var_value"==o[l].type){"close"==window.open_or_close&&(window.close_parentheses.insertAfter(i.find('.single_element_expression[data-index="'+l+'"]')),window.inserir_close=l+2);break}}}else if(o[a].type_op){"open"==window.open_or_close&&(window.open_parentheses.insertBefore(e),window.inserir_open=a);for(r=0,s=0,l=1;l<o.length;l++)if("("==o[l]&&r++,")"==o[l]&&s++,r!=s);else{if(r>0){"var_value"==o[l].type&&(window.close_parentheses.insertAfter(i.find('.single_element_expression[data-index="'+l+'"]')),window.inserir_close=l+2);break}if("var_value"==o[l].type){"var_value"==o[l].type&&(window.close_parentheses.insertAfter(i.find('.single_element_expression[data-index="'+l+'"]')),window.inserir_close=l+2);break}}}return}if("var_value"==o[a].type)return"open"==window.open_or_close&&(window.open_parentheses.insertBefore(e),window.inserir_open=a),void("close"==window.open_or_close&&(window.close_parentheses.insertAfter(e),window.inserir_close=a+2));if(o[a].type_op){if("("==o[a-1])"open"==window.open_or_close&&(window.open_parentheses.insertBefore(e),window.inserir_open=a);else if(")"==o[a-1]){r=0,s=0;for(var c=a-1;c>=0;c--)if("("==o[c]&&r++,")"==o[c]&&s++,r!=s);else if(s>0){"open"==window.open_or_close&&(window.open_parentheses.insertBefore(i.find('.single_element_expression[data-index="'+c+'"]')),window.inserir_open=c);break}}else"var_value"==o[a-1].type&&"open"==window.open_or_close&&(window.open_parentheses.insertBefore(i.find('.single_element_expression[data-index="'+(a-1)+'"]')),window.inserir_open=a-1);if("("==o[a+1]){for(r=0,s=0,c=a+1;c<o.length;c++)if("("==o[c]&&r++,")"==o[c]&&s++,r!=s);else if(r>0){"close"==window.open_or_close&&(window.close_parentheses.insertAfter(i.find('.single_element_expression[data-index="'+c+'"]')),window.inserir_close=c+2);break}}else"var_value"==o[a+1].type&&"close"==window.open_or_close&&(window.close_parentheses.insertAfter(i.find('.single_element_expression[data-index="'+(a+1)+'"]')),window.inserir_close=a+3)}}(t,0,0,n,i)})),n.on("mouseleave",(function(){})),$("body").on("mouseup",(function(o){if("open"==window.open_or_close){window.open_or_close="close",r.remove();var s=$(o.target).closest(".command_container"),l=n.closest(".command_container");if(!s.is(l))return window.parentheses_activate=!1,n.find(".temp_class").addClass("ghost_element"),n.find(".temp_class").removeClass("temp_class"),n.off("mousemove"),n.off("mouseleave"),$("body").off("mouseup"),window.open_parentheses.remove(),window.close_parentheses.remove(),window.inserir_open=-1,window.inserir_close=-1,window.open_or_close=null,void pa(e,t,n,i);window.open_parentheses.addClass("parentheses_fixed"),(a=$('<div class="floating_parenthesis"> ) </div>')).draggable().appendTo("body"),a.css("position","absolute"),a.css("left",o.pageX+10),a.css("top",o.pageY+10),$("body").on("mousemove",(function(e){a.css("left",e.pageX+10),a.css("top",e.pageY+10)}))}else{a.remove(),window.open_parentheses.removeClass("parentheses_fixed"),n.off("mousemove"),n.off("mouseleave"),$("body").off("mouseup"),setTimeout((function(){window.parentheses_activate=!1}),50);s=$(o.target).closest(".command_container"),l=n.closest(".command_container");var c=!1;s.is(l)&&(c=!0),c&&(i.splice(window.inserir_open,0,"("),i.splice(window.inserir_close,0,")")),window.inserir_open=-1,window.inserir_close=-1,window.open_or_close=null,pa(e,t,n,i)}}))}}))}(e,t,n,i)}function fa(e,t,n,i,o,a){var r=$('<div class="single_element_expression parentheses_in_expression" data-index="'+o+'">'+t+"</div>");e.append(r)}function ma(e,t,n,i,o,a){var r='<div class="ui dropdown disabled usepointer"><div class="text"> + </div><i class="dropdown icon"></i><div class="menu">';t.indexOf(Oo.exp_arithmetic)>=0&&(t.length>1?(r+='<div class="item"><i class="dropdown icon"></i>'+At.getUI("text_arithmetic_expression")+'<div class="menu">',r+=ya(),r+="</div></div>"):r+=ya()),t.indexOf(Oo.exp_logic)>=0&&(t.length>1?(r+='<div class="item"><i class="dropdown icon"></i>'+At.getUI("text_logic_expression")+'<div class="menu">',r+=ga(),r+="</div></div>"):r+=ga()),t.indexOf(Oo.exp_conditional)>=0&&(t.length>1?(r+='<div class="item"><i class="dropdown icon"></i>'+At.getUI("text_relational_expression")+'<div class="menu">',r+=ba(),r+="</div></div>"):r+=ba()),r+="</div></div>",r=$(r);var s=$('<div class="single_element_expression ghost_element mouse_distance"></div>');s.append(r);var l=$('<div class="higher_element"></div>');l.append(s),e.append(l),r.dropdown("set selected",Ro.minus),s.on("click",(function(){if(!window.open_or_close){var r=a;t.indexOf(Oo.exp_arithmetic)>=0?(console.log("p1"),n.splice(r,0,new jo(Oo.exp_arithmetic,Ro.minus))):t.indexOf(Oo.exp_logic)>=0?(console.log("p2"),n.splice(r,0,new jo(Oo.exp_logic,Co.equals_to))):t.indexOf(Oo.exp_conditional)>=0&&(console.log("p3"),n.splice(r,0,new jo(Oo.exp_conditional,Io.greater_than))),pa(i,o,e,n)}}))}function va(e,t,n,i,o,a){var r=arguments.length>6&&void 0!==arguments[6]&&arguments[6],s='<div class="ui dropdown disabled usepointer"><div class="text"> + </div><i class="dropdown icon"></i><div class="menu">';t.indexOf(Oo.exp_arithmetic)>=0&&(t.length>1?(s+='<div class="item"><i class="dropdown icon"></i>'+At.getUI("text_arithmetic_expression")+'<div class="menu">',s+=ya(),s+="</div></div>"):s+=ya()),t.indexOf(Oo.exp_logic)>=0&&(t.length>1?(s+='<div class="item"><i class="dropdown icon"></i>'+At.getUI("text_logic_expression")+'<div class="menu">',s+=ga(),s+="</div></div>"):s+=ga()),t.indexOf(Oo.exp_conditional)>=0&&(t.length>1?(s+='<div class="item"><i class="dropdown icon"></i>'+At.getUI("text_relational_expression")+'<div class="menu">',s+=ba(),s+="</div></div>"):s+=ba()),s+="</div></div>",s=$(s);var l=$('<div class="simple_add mouse_distance"></div>'),c=$('<div class="higher_element"></div>'),u=$('<button class="ui button green add_expression"><i class="plus circle inverted icon"></i></button>');l.append(u),r?(l.removeClass("mouse_distance"),l.css("opacity","1","!important"),e.append(l)):(c.append(l),e.append(c),l.css("opacity","0","!important")),s.dropdown("set selected",Ro.plus),l.on("click",(function(){var r=a;if(")"==n[r]&&"("==n[r-1])return n.splice(r,0,new Qo(ka.all,null,null,null,!0)),void pa(i,o,e,n);t.indexOf(Oo.exp_arithmetic)>=0?(n.splice(r,0,new jo(Oo.exp_arithmetic,Ro.plus)),n.splice(r+1,0,new Qo(ka.all,null,null,null,!0))):t.indexOf(Oo.exp_logic)>=0?(n.splice(r,0,new jo(Oo.exp_logic,Co.equals_to)),n.splice(r+1,0,new Qo(ka.all,null,null,null,!0))):t.indexOf(Oo.exp_conditional)>=0&&(n.splice(r,0,new jo(Oo.exp_conditional,Io.greater_than)),n.splice(r+1,0,new Qo(ka.all,null,null,null,!0))),pa(i,o,e,n)}))}function ha(e,t,n,i,o,a,r){var s='<div class="ui dropdown"><div class="text"> + </div><i class="dropdown icon"></i><div class="menu">';o.indexOf(Oo.exp_arithmetic)>=0&&(o.length>1?(s+='<div class="item"><i class="dropdown icon"></i>'+At.getUI("text_arithmetic_expression")+'<div class="menu">',s+=ya(),s+="</div></div>"):s+=ya()),o.indexOf(Oo.exp_logic)>=0&&(o.length>1?(s+='<div class="item"><i class="dropdown icon"></i>'+At.getUI("text_logic_expression")+'<div class="menu">',s+=ga(),s+="</div></div>"):s+=ga()),o.indexOf(Oo.exp_conditional)>=0&&(o.length>1?(s+='<div class="item"><i class="dropdown icon"></i>'+At.getUI("text_relational_expression")+'<div class="menu">',s+=ba(),s+="</div></div>"):s+=ba()),s+="</div></div>",s=$(s);var l=$('<div class="single_element_expression not_allowed" data-index="'+a+'"></div>');l.append(s),n.append(l),s.dropdown({onChange:function(e,t,n){i.item=n.data("value"),i.type_op=n.data("type")}}),s.dropdown("set selected",i.item)}function ya(){var e;return e='<div class="item" data-type="'+Oo.exp_arithmetic+'" data-value="'+Ro.plus+'">+</div>',e+='<div class="item" data-type="'+Oo.exp_arithmetic+'" data-value="'+Ro.minus+'">-</div>',e+='<div class="item" data-type="'+Oo.exp_arithmetic+'" data-value="'+Ro.multiplication+'">*</div>',e+='<div class="item" data-type="'+Oo.exp_arithmetic+'" data-value="'+Ro.division+'">/</div>',e+='<div class="item" data-type="'+Oo.exp_arithmetic+'" data-value="'+Ro.module+'">%</div>'}function ga(){var e;return e='<div class="item" data-type="'+Oo.exp_logic+'" data-value="'+Co.equals_to+'">==</div>',e+='<div class="item" data-type="'+Oo.exp_logic+'" data-value="'+Co.not_equals_to+'">!=</div>',e+='<div class="item" data-type="'+Oo.exp_logic+'" data-value="'+Co.and+'">'+At.getUI("logic_operator_and")+"</div>",e+='<div class="item" data-type="'+Oo.exp_logic+'" data-value="'+Co.or+'">'+At.getUI("logic_operator_or")+"</div>",e+='<div class="item" data-type="'+Oo.exp_logic+'" data-value="'+Co.not+'">'+At.getUI("logic_operator_not")+"</div>"}function ba(){var e;return e='<div class="item" data-type="'+Oo.exp_conditional+'" data-value="'+Io.greater_than+'">></div>',e+='<div class="item" data-type="'+Oo.exp_conditional+'" data-value="'+Io.less_than+'"><</div>',e+='<div class="item" data-type="'+Oo.exp_conditional+'" data-value="'+Io.equals_to+'">==</div>',e+='<div class="item" data-type="'+Oo.exp_conditional+'" data-value="'+Io.not_equals_to+'">!=</div>',e+='<div class="item" data-type="'+Oo.exp_conditional+'" data-value="'+Io.greater_than_or_equals_to+'">>=</div>',e+='<div class="item" data-type="'+Oo.exp_conditional+'" data-value="'+Io.less_than_or_equals_to+'"><=</div>'}function wa(e,t){var n=$('<div class="ui attribution command_container"><i class="ui icon small arrow left command_drag"></i> <i class="ui icon times red button_remove_command"></i> <div class="var_attributed"></div> <span class="text_attr_receives span_command_spec">'+At.getUI("text_receives")+'</span> <div class="expression_elements"></div> </div>');if(n.data("command",e),La(e,e.variable,n.find(".var_attributed"),t),!e.expression||e.expression.length<1){var i=new Qo(ka.all,null,null,null,!0);e.expression.push(i)}return function(e,t,n){n.find(".button_remove_command").on("click",(function(){Xa(e,t,n)&&n.fadeOut(400,(function(){n.remove()}))})),n.find(".button_refresh_attribution").on("click",(function(){Ea(e,t,n)}))}(e,t,n),pa(e,t,n.find(".expression_elements"),e.expression),n}function xa(e,t,n,i,o,a,r){var s=r.itens.indexOf(t);switch(a.data("exp")){case Ao.exp_op_exp:var l=new Ko(Ao.exp_op_exp,[r.itens[s],Ro.plus,new Qo(ka.all,null,null,null,!0)]);r.itens[s]=l;break;case Ao.op_exp:l=new Ko(Ao.op_exp,[Ro.plus,r.itens[s]]);r.itens[s]=l;break;case Ao.par_exp_par:l=new Ko(Ao.par_exp_par,[r.itens[s]]);r.itens[s]=l}Ea(e,o,n)}function Ea(e,t,n){var i,o=n.find(".expression_elements");if(0==n.hasClass("command_container"))for(var a=n.parentsUntil(".command_container"),r=0;r<a.length;r++){if($(a[r]).hasClass("command_container")){i=$(a[r]);break}if($(a[r]).hasClass("expression_elements")){o=$(a[r]);break}}i&&(o=i.find(".expression_elements")),o.text("");for(r=0;r<e.expression.length;r++){var s=$('<div class="expression_element"></div>');s.data("ref_element",e.expression[r]),s.data("ref_index",r),o.append(s),Ra(e,t,s,e.expression[r])}}function Ta(e,t,n,i,o){var a='<div class="ui dropdown"><div class="text">';switch(i.itens[o]){case Ro.plus:a+="+";break;case Ro.minus:a+="-";break;case Ro.multiplication:a+="*";break;case Ro.division:a+="/";break;case Ro.module:a+="%";break;case Ro.none:a+="..."}a+='</div><div class="menu">',a+='<div class="item" data-value="'+Ro.plus+'">+</div>',a+='<div class="item" data-value="'+Ro.minus+'">-</div>',a+='<div class="item" data-value="'+Ro.multiplication+'">*</div>',a+='<div class="item" data-value="'+Ro.division+'">/</div>',a+='<div class="item" data-value="'+Ro.module+'">%</div>',a+='<div class="item" data-value="'+Ro.none+'" data-text="...">Nenhum</div>',a+="</div></div>",a=$(a),n.append(a),a.dropdown({onChange:function(e,t,n){i.itens[o]=e}})}function Ra(e,t,n,i){switch(i.type_exp){case Ao.exp_op_exp:var o=$('<div class="component_element"></div>'),a=$('<div class="component_element"></div>'),r=$('<div class="component_element"></div>');n.append(a),n.append(o),n.append(r),i.itens[0].type?La(e,i.itens[0],a,t,2,i):Ra(e,t,a,i.itens[0]),Ta(0,0,o,i,1),i.itens[2].type?La(e,i.itens[2],r,t,2,i):Ra(e,t,r,i.itens[2]);break;case Ao.op_exp:o=$('<div class="component_element"></div>');var s=$('<div class="component_element"></div>');n.append(o),n.append(s),Ta(0,0,o,i,0),i.itens[1].type?La(e,i.itens[1],s,t,2,i):Ra(e,t,s,i.itens[1]);break;case Ao.par_exp_par:var l=$('<div class="component_element"> ( </div>'),c=(s=$('<div class="component_element"></div>'),$('<div class="component_element"> ) </div>'));n.append(l),n.append(s);for(var u=0;u<i.itens.length;u++)i.itens[u].type?La(e,i.itens[u],s,t,2,i):Ra(e,t,s,i.itens[u]);n.append(c)}}function Aa(e,t){var n="";n+='<div class="ui switch command_container"> <i class="ui icon small random command_drag" ></i> <i class="ui icon times red button_remove_command"></i> <div class="ui context_menu"></div> <span> '+At.getUI("text_code_switch")+' ( <div class="ui variable_to_switch"></div> ) <div class="ui all_cases_div"></div></span>',n+="</div>";var i=$(n);if(i.data("command",e),function(e,t,n){n.find(".button_remove_command").on("click",(function(){Xa(e,t,n)&&n.fadeOut(400,(function(){n.remove()}))}))}(e,t,i),Ia(e,i.find(".context_menu"),t,i),La(e,e.variable,i.find(".variable_to_switch"),t),e.cases)for(var o=0;o<e.cases.length;o++)Oa(e.cases[o],e,t,i.find(".all_cases_div"));return i}function Oa(e,t,n,i){var o=$('<div class="ui case_div"><i class="ui icon times red button_remove_command"></i><span>'+At.getUI("text_code_case")+'</span> <div class="ui variable_case"></div>: <div class="case_commands_block"></div></div>');if(La(t,e.variable_value_menu,o.find(".variable_case"),n),o.data("switchcase",e),o.find(".case_commands_block").data("switchcase",e),i.append(o),e.commands_block)for(var a=0;a<e.commands_block.length;a++)er(e.commands_block[a],$(o.find(".case_commands_block")[0]),3,n);o.find(".button_remove_command").on("click",(function(){for(var n=0;n<t.cases.length;n++)if(e==t.cases[n]){delete t.cases[n],t.cases.splice(n,1),o.remove();break}}))}function Ia(e,t,n,i){var o='<div class="ui dropdown menu_commands" ><i class="icon code"></i> <div class="menu"> ';e.type==To.repeatNtimes||e.type==To.whiletrue||e.type==To.dowhiletrue?o+='<a class="item" data-command="'+To.break+'"><i class="download icon"></i> '+At.getUI("btn_break")+" </a>":(o+='<a class="item" data-command="'+To.break+'"><i class="download icon"></i> '+At.getUI("btn_break")+" </a>",o+='<a class="item" data-command="'+To.switchcase+'"><i class="download icon"></i> '+At.getUI("btn_case")+" </a>"),o+="</div></div>",o=$(o),t.append(o),function(e,t,n,i){t.find(".menu_commands").dropdown({on:"hover"}),t.find(".menu_commands a").on("click",(function(t){if(e.type==To.repeatNtimes||e.type==To.whiletrue||e.type==To.dowhiletrue)if(null==e.commands_block||0==e.commands_block.length){e.commands_block=[];var o=tr($(this).data("command"));e.commands_block.push(o),er(o,i.find(".block_commands"),3,n)}else Wa(n,i.find(".block_commands"),$(this).data("command"),t);else switch($(this).data("command")){case To.break:Wa(n,i.find(".block_commands"),$(this).data("command"),t);break;case To.switchcase:!function(e,t,n,i){null==e.cases&&(e.cases=[]);var o=new Xo(new Qo(ka.all,null,null,null,!0));e.cases.push(o),Oa(o,e,n,i.find(".all_cases_div"))}(e,0,n,i)}}))}(e,t,n,i)}function Ca(e,t){var n='<div class="ui repeatNtimes command_container"> \n\t\t<i class="ui icon small sync command_drag"></i>\n\t\t<i class="ui icon times red button_remove_command"></i>\n\t\t<div class="ui context_menu"></div> <span class="span_command_spec"> '.concat(At.getUI("text_for"),'\n\t\t</span> <div class="ui attribution_expression">\n\t\t<div class="ui variable_attribution"></div>\n\t\t<span class="text_receives span_command_spec" style="margin-left: 10px;margin-right: 20px;"></span>\n\t\t<div class="ui var_value_expression div_expression_st"></div>\n\t\t</div>\n\t\t<span class="span_command_spec separator_character" style="margin-left: 25px; margin-right: 15px;">\n\t\t').concat(At.getUI("text_for_to"),' </span>\n\t\t<div class="conditional_expression"></div> <div class="pass_button"></div> \n\t\t<div class="ui incrementation_field"><span class="text_inc_receives span_command_spec"></span>\n\t\t<div class="ui first_operand"></div><div class="ui operator"></div>\n\t\t<div class="ui second_operand"></div></div> <span class="span_command_spec"> </span>\'');n+='<div class="ui block_commands">',n+="</div>",n+="<span> </span>",n+="</div>";var i=$(n);if(i.data("command",e),i.find(".block_commands").data("command",e),function(e,t,n){n.find(".button_remove_command").on("click",(function(){Xa(e,t,n)&&n.fadeOut(400,(function(){n.remove()}))}))}(e,t,i),Ia(e,i.find(".context_menu"),t,i),La(e,e.var_attribution,i.find(".variable_attribution"),t),La(e,e.expression2,i.find(".conditional_expression"),t),e.expression1||(e.expression1=new Qo(ka.all,"0",null,null,!0)),i.find(".text_receives").text(At.getUI("text_for_from")),La(e,e.expression1,i.find(".var_value_expression"),t),e.expression3?(i.find(".pass_button").html('<button class="ui">'+At.getUI("text_for_pass")+'<i class="ui icon angle double left"></i></button>'),i.find(".pass_button").find("button").on("click",(function(){Na(e)})),Sa(e,t,i.find(".operator"),e.expression3,1),La(e,e.expression3.itens[2],i.find(".second_operand"),t)):(i.find(".pass_button").html('<button class="ui">'+At.getUI("text_for_pass")+'<i class="ui icon angle double right"></i></button>'),i.find(".pass_button").find("button").on("click",(function(){Na(e)}))),e.commands_block)for(var o=0;o<e.commands_block.length;o++)er(e.commands_block[o],$(i.find(".block_commands")[0]),3,t);return i}function Na(e){if(e.expression3)e.expression3=null;else{var t=new Ko(Ao.exp_op_exp,[e.var_attribution,Ro.plus,new Qo(ka.all,"1",null,null,!0)]);e.expression3=t,e.var_incrementation=e.var_attribution}renderAlgorithm()}function Sa(e,t,n,i,o){var a=$('<div class="ui dropdown"><div class="text"></div></div>');a.dropdown({values:[{name:"+",value:Ro.plus,selected:i.itens[o]==Ro.plus},{name:"-",value:Ro.minus,selected:i.itens[o]==Ro.minus}],onChange:function(e,t,n){i.itens[o]=e}}),n.append(a)}window.timer=!1,window.parentheses_activate=!1,window.open_or_close=null,window.open_parentheses=$('<div class="parentheses_ghost">(</div>'),window.close_parentheses=$('<div class="parentheses_ghost">)</div>'),window.inserir_open=-1,window.inserir_close=-1;var ka=Object.freeze({only_variable:1,only_value:2,only_function:3,variable_and_function:4,variable_and_value_opt:5,value_and_function:6,all:7});function La(e,t,n,i){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:2,a=arguments.length>5?arguments[5]:void 0;if(t.function_called&&t.function_called.parameters_list)for(;t.function_called.parameters_list.length!=t.parameters_list.length;)t.parameters_list.length>t.function_called.parameters_list.length?t.parameters_list.pop():t.parameters_list.push(new Qo(ka.all,null,null,null,!0));var r='<div class="ui dropdown menu_var_or_value_dom" data-varmenu="true"><div class="text"></div><i class="dropdown icon"></i><div class="menu">';if(t.variable_and_value==ka.only_variable&&(r='<div class="ui dropdown menu_var_or_value_dom" data-varmenu="true"><div class="text"></div><i class="dropdown icon"></i><div class="menu menu_only_vars">',r+="</div>"),t.variable_and_value!=ka.variable_and_function&&t.variable_and_value!=ka.variable_and_value_opt&&t.variable_and_value!=ka.all||(r+='<div class="item" data-option="'+ka.only_variable+'"><i class="dropdown icon"></i>'+At.getUI("variable"),r+='<div class="menu menu_only_vars">',r+="</div></div>"),t.variable_and_value==ka.only_value&&(r='<input type="text" class="width-dynamic" size="'+o+'" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />'),t.variable_and_value!=ka.variable_and_value_opt&&t.variable_and_value!=ka.value_and_function&&t.variable_and_value!=ka.all||(r+='<div class="item" data-option="'+ka.only_value+'">'+At.getUI("text_value")+"</div>"),t.variable_and_value==ka.only_function&&(r='<div class="ui dropdown menu_var_or_value_dom" data-varmenu="true"><div class="text"></div><i class="dropdown icon"></i><div class="menu menu_only_functions">',r+="</div>"),t.variable_and_value!=ka.variable_and_function&&t.variable_and_value!=ka.value_and_function&&t.variable_and_value!=ka.all||(r+='<div class="item" data-option="'+ka.only_function+'"><i class="dropdown icon"></i>'+At.getUI("btn_function"),r+='<div class="menu menu_only_functions">',r+="</div></div>"),r+="</div></div>",r=$(r),n.append(r),t.dom_object=r,function(e,t,n,i,o,a){t.variable_and_value!=ka.only_value&&i.dropdown({onChange:function(r,s,l){switch(console.log("S7"),n.find(".var_name").remove(),l.data("option")){case ka.only_function:!function(e,t,n,i,o,a,r){if(t.function_called=a,t.parameters_list=[],null!=a.parameters_list&&a.parameters_list.length>0){i.find(".text").text(" "),n.find(".menu_var_or_value_dom").remove(),u=a.name?'<div class="parameters_function_called"> '+a.name+" <span> ( </span>":'<div class="parameters_function_called"> <i>'+At.translateInternalFunction(a.identifier,a.category)+"</i> <span> ( </span>";for(var s=0;s<a.parameters_list.length;s++)u+='<div class="render_style_param parameter_'+s+'"></div>',s+1!=a.parameters_list.length&&(u+=" , ");u+="<span> ) </span></div>",u=$(u),n.append(u);for(s=0;s<a.parameters_list.length;s++){var l;l=a.parameters_list[s].dimensions>0?new Qo(ka.variable_and_function,null,null,null,!0,a.parameters_list[s].dimensions):new Qo(ka.all,null,null,null,!0),t.parameters_list.push(l),La(e,l,u.find(".parameter_"+s),o,2,r)}var c='<div class="ui dropdown context_menu_clear"><div class="text"></div><i class="dropdown icon"></i><div class="menu">';c+='<div class="item" data-clear="true">'+At.getUI("btn_clear")+"</div>",c+="</div></div>",(c=$(c)).insertAfter(n.find(".parameters_function_called")),c.dropdown({onChange:function(i,a,s){console.log("S8"),s.data("clear")&&(console.log("PP7"),n.text(""),t.content=null,t.row=null,t.column=null,delete t.function_called,delete t.parameters_list,La(e,t,n,o,2,r)),s.data("exp")&&xa(e,t,n,0,o,s,r)},selectOnKeydown:!1})}else{var u;i.find(".text").text(" "),n.find(".menu_var_or_value_dom").remove(),u=a.name?'<div class="parameters_function_called"> '+a.name+" <span> ( </span>":'<div class="parameters_function_called"> <i>'+At.translateInternalFunction(a.identifier,a.category)+"</i> <span> ( </span>",u+="<span> ) </span></div>",u=$(u),n.append(u);c='<div class="ui dropdown context_menu_clear"><div class="text"></div><i class="dropdown icon"></i><div class="menu">';c+='<div class="item" data-clear="true">'+At.getUI("btn_clear")+"</div>",c+="</div></div>",(c=$(c)).insertAfter(n.find(".parameters_function_called")),c.dropdown({onChange:function(i,a,s){console.log("S9"),s.data("clear")&&(console.log("PP8"),n.text(""),t.content=null,t.row=null,t.column=null,delete t.function_called,delete t.parameters_list,La(e,t,n,o,2,r)),s.data("exp")&&xa(e,t,n,0,o,s,r)},selectOnKeydown:!1})}}(e,t,n,i,o,$(l).data("function_reference"),a);break;case ka.only_value:Fa(e,t,n,i,o,a);break;case ka.only_variable:!function(e,t,n,i,o,a,r){t.content=a,i.find(".text").text(" "),n.find(".menu_var_or_value_dom").remove();var s='<div class="variable_rendered"> <span class="var_name">'+a.name+"</span>";1==a.dimensions&&1!=t.dimensions&&(s+=' <span>[ </span> <div class="column_container"></div> <span> ]</span>');2==a.dimensions&&2!=t.dimensions&&(s+=' <span>[ </span> <div class="row_container"></div> <span> ]</span> ',s+=' <span>[ </span> <div class="column_container"></div> <span> ]</span>');s+="</div>",s=$(s),n.append(s),1==a.dimensions&&1!=t.dimensions&&(t.column=new Qo(ka.all,null,null,null,!0),La(e,t.column,s.find(".column_container"),o,2,r));2==a.dimensions&&2!=t.dimensions&&(t.row=new Qo(ka.all,null,null,null,!0),La(e,t.row,s.find(".row_container"),o,2,r),t.column=new Qo(ka.all,null,null,null,!0),La(e,t.column,s.find(".column_container"),o,2,r));var l='<div class="ui dropdown context_menu_clear"><div class="text"></div><i class="dropdown icon"></i><div class="menu">';l+='<div class="item" data-clear="true">'+At.getUI("btn_clear")+"</div>",l+="</div></div>",(l=$(l)).insertAfter(n.find(".variable_rendered")),l.dropdown({onChange:function(i,a,s){console.log("S10"),s.data("clear")&&(console.log("PP9"),n.text(""),t.content=null,t.row=null,t.column=null,delete t.function_called,delete t.parameters_list,La(e,t,n,o,2,r)),s.data("exp")&&xa(e,t,n,0,o,s,r),e.type==To.repeatNtimes&&function(e,t,n,i,o,a,r){n.hasClass("variable_attribution")&&($(n).parent().find(".text_receives").text(""),e.expression1=null,$(n).parent().find(".var_value_expression").empty()),n.hasClass("incrementation_variable")&&($(n).parent().find(".text_inc_receives").text(""),e.expression3=null,$(n).parent().find(".first_operand").empty(),$(n).parent().find(".operator").empty(),$(n).parent().find(".second_operand").empty())}(e,0,n)},selectOnKeydown:!1})}(e,t,n,i,o,$(l).data("variable_reference"),a)}l.data("exp")&&xa(e,t,n,0,o,l,a),e.type==To.repeatNtimes&&function(e,t,n,i,o,a,r){if(n.hasClass("variable_attribution")){if(!e.expression3){var s=new Ko(Ao.exp_op_exp,[e.var_attribution,Ro.plus,new Qo(ka.all,"1",null,null,!0)]);e.expression3=s,e.var_incrementation=e.var_attribution;var l=new Bo(e.var_attribution,new Qo(ka.all,null,null,null,!0),Io.less_than);e.expression2.expression=l}n.parent().find(".text_receives").text("de"),e.expression1=new Qo(ka.all,"0",null,null,!0),n.parent().find(".var_value_expression").empty(),La(e,e.expression1,n.parent().find(".var_value_expression"),o),renderAlgorithm()}if(n.hasClass("incrementation_variable")){n.parent().find(".text_inc_receives").text("de");s=new Ko(Ao.exp_op_exp,[new Qo(ka.all,null,null,null,!0),Ro.plus,new Qo(ka.all,null,null,null,!0)]);e.expression3=s,La(e,e.expression3.itens[0],n.parent().find(".first_operand"),o),Sa(e,o,n.parent().find(".operator"),e.expression3,1),La(e,e.expression3.itens[2],n.parent().find(".second_operand"),o)}}(e,0,n,0,o)},selectOnKeydown:!1});n.find(".width-dynamic").on("input",(function(){var e=$(this).textWidth()+10;$(this).focus();var t=$(this).val();$(this).val(""),$(this).val(t),$(this).css({width:e})})).trigger("input"),e.type==To.comment&&n.parent().on("click",(function(r){n.find(".value_rendered").remove(),n.find(".value_rendered").empty(),n.find(".value_rendered").remove(),n.empty(),n.append('<span class="menu_var_or_value_dom"> </span>'),Fa(e,t,n,i,o,a)}))}(e,t,n,r,i,a),function(e,t,n,i){var o=t.find(".menu_only_vars");o.text("");var a=!1;if(window.program_obj.globals)if(n.include_constant)for(var r=0;r<window.program_obj.globals.length;r++){(s=$('<div class="item" data-option="'+ka.only_variable+'">'+window.program_obj.globals[r].name+" </div>")).data("variable_reference",window.program_obj.globals[r]),o.append(s),a=!0}else for(r=0;r<window.program_obj.globals.length;r++){if(!window.program_obj.globals[r].is_constant)(s=$('<div class="item" data-option="'+ka.only_variable+'">'+window.program_obj.globals[r].name+" </div>")).data("variable_reference",window.program_obj.globals[r]),o.append(s),a=!0}if(e.parameters_list)for(r=0;r<e.parameters_list.length;r++){(s=$('<div class="item" data-option="'+ka.only_variable+'">'+e.parameters_list[r].name+" </div>")).data("variable_reference",e.parameters_list[r]),o.append(s),a=!0}if(e.variables_list)for(r=0;r<e.variables_list.length;r++){var s;(s=$('<div class="item" data-option="'+ka.only_variable+'">'+e.variables_list[r].name+" </div>")).data("variable_reference",e.variables_list[r]),o.append(s),a=!0}a||(o.append($('<div class="header">'+At.getUI("text_no_variable")+"</div>")),o.append($('<div class="item disabled">'+At.getUI("text_no_variable_instruction")+"</div>")))}(i,r,t),function(e,t,n,i){var o=t.find(".menu_only_functions");o.text("");for(var a=0;a<window.program_obj.functions.length;a++){var r=$('<div class="item" data-option="'+ka.only_function+'">'+window.program_obj.functions[a].name+" </div>");r.data("function_reference",window.program_obj.functions[a]),o.append(r)}}(0,r),function(e,t,n,i){var o=t.find(".menu_only_functions");o.append('<div class="divider"></div><div class="header">'+At.getUI("text_header_ivprog_functions")+"</div>"),o.append('<div class="item"><i class="dropdown icon"></i>'+At.getUI("text_menu_functions_math")+'<div class="menu menu_math_functions"></div></div>'),o.append('<div class="item"><i class="dropdown icon"></i>'+At.getUI("text_menu_functions_text")+'<div class="menu menu_text_functions"></div></div>'),o.append('<div class="item"><i class="dropdown icon"></i>'+At.getUI("text_menu_functions_array")+'<div class="menu menu_arrangement_functions"></div></div>'),o.append('<div class="item"><i class="dropdown icon"></i>'+At.getUI("text_menu_functions_conversion")+'<div class="menu menu_conversion_functions"></div></div>');for(var a=0;a<window.system_functions.length;a++){var r=$('<div class="item"></div>');switch(r.data("function_reference",window.system_functions[a]),r.data("option",ka.only_function),r.text(At.translateInternalFunction(window.system_functions[a].identifier)),window.system_functions[a].category){case No.math:o.find(".menu_math_functions").append(r);break;case No.text:o.find(".menu_text_functions").append(r);break;case No.arrangement:o.find(".menu_arrangement_functions").append(r);break;case No.conversion:o.find(".menu_conversion_functions").append(r)}}}(0,r),t.content||t.function_called){if(t.content){var s=Ua(t.content,i);s?(t.content=s,Pa(i,r,t,n,e,a)):t.content&&t.content.type?(t.content=null,$a(t,r)):Pa(i,r,t,n,e,a)}else if(t.function_called){var l=function(e){if(e.name){if(window.program_obj.functions){for(var t=0;t<window.program_obj.functions.length;t++)if(window.program_obj.functions[t]==e)return window.program_obj.functions[t];for(t=0;t<window.program_obj.functions.length;t++)if(window.program_obj.functions[t].name==e.name)return window.program_obj.functions[t]}}else if(e.identifier)for(t=0;t<window.system_functions.length;t++)if(window.system_functions[t].identifier==e.identifier)return window.system_functions[t];return null}(t.function_called);l?(t.function_called=l,Pa(i,r,t,n,e,a)):(t.content=null,t.row=null,t.column=null,delete t.function_called,delete t.parameters_list,$a(t,r))}}else $a(t,r)}function $a(e,t){switch(e.variable_and_value){case ka.only_variable:t.find(".text").append("<i>"+At.getUI("var_menu_select_var")+"</i>");break;case ka.all:case ka.variable_and_function:t.find(".text").append("<i>"+At.getUI("var_menu_select_all")+"</i>");break;case ka.only_function:t.find(".text").append("<i>"+At.getUI("var_menu_select_function")+"</i>")}}function Ua(e,t){if(t.variables_list)for(var n=0;n<t.variables_list.length;n++)if(t.variables_list[n]==e)return t.variables_list[n];if(t.parameters_list)for(n=0;n<t.parameters_list.length;n++)if(t.parameters_list[n]==e)return t.parameters_list[n];if(window.program_obj.globals)for(n=0;n<window.program_obj.globals.length;n++)if(window.program_obj.globals[n]==e)return window.program_obj.globals[n];if(e){if(t.variables_list)for(n=0;n<t.variables_list.length;n++)if(t.variables_list[n].name==e.name)return t.variables_list[n];if(t.parameters_list)for(n=0;n<t.parameters_list.length;n++)if(t.parameters_list[n].name==e.name)return t.parameters_list[n];if(window.program_obj.globals)for(n=0;n<window.program_obj.globals.length;n++)if(window.program_obj.globals[n].name==e.name)return window.program_obj.globals[n]}return null}function Pa(e,t,n,i,o,a){n.function_called?(t.remove(),Ma(o,n,i,e,t,a)):(n.content.type,t.remove(),Ma(o,n,i,e,t,a))}function Ma(e,t,n,i,o,a){if(t.content||t.function_called){var r=Ua(t.content,i);r?t.content=r:t.content&&t.content.type&&(t.content=null,$a(t,o))}else $a(t,o);if(null!=t.content||null!=t.function_called){if(t.function_called)if(null==t.function_called.parameters_list||0==t.function_called.length){o.find(".text").text(" "),n.find(".menu_var_or_value_dom").remove(),l=t.function_called.name?'<div class="parameters_function_called"> '+t.function_called.name+" <span> ( </span>":'<div class="parameters_function_called"> <i>'+At.translateInternalFunction(t.function_called.identifier,t.function_called.category)+"</i> <span> ( </span>",l+="<span> ) </span></div>",l=$(l),n.append(l);var s='<div class="ui dropdown context_menu_clear"><div class="text"></div><i class="dropdown icon"></i><div class="menu">';s+='<div class="item" data-clear="true">'+At.getUI("btn_clear")+"</div>",s+="</div></div>",(s=$(s)).insertAfter(n.find(".parameters_function_called")),s.dropdown({onChange:function(o,r,s){console.log("S1"),s.data("clear")&&(console.log("PP1"),n.text(""),t.content=null,t.row=null,t.column=null,delete t.function_called,delete t.parameters_list,La(e,t,n,i,2,a)),s.data("exp")&&xa(e,t,n,0,i,s,a)},selectOnKeydown:!1})}else{var l;o.find(".text").text(" "),n.find(".menu_var_or_value_dom").remove(),l=t.function_called.name?'<div class="parameters_function_called"> '+t.function_called.name+" <span> ( </span>":'<div class="parameters_function_called"> <i>'+At.translateInternalFunction(t.function_called.identifier,t.function_called.category)+"</i> <span> ( </span>";for(var c=0;c<t.function_called.parameters_list.length;c++)l+='<div class="render_style_param parameter_'+c+'"></div>',c+1!=t.function_called.parameters_list.length&&(l+=" , ");l+="<span> ) </span></div>",l=$(l),n.append(l);for(c=0;c<t.function_called.parameters_list.length;c++)La(e,t.parameters_list[c],l.find(".parameter_"+c),i,2,a);s='<div class="ui dropdown context_menu_clear"><div class="text"></div><i class="dropdown icon"></i><div class="menu">';s+='<div class="item" data-clear="true">'+At.getUI("btn_clear")+"</div>",s+="</div></div>",(s=$(s)).insertAfter(l),s.dropdown({onChange:function(o,r,s){console.log("S2"),s.data("clear")&&(console.log("PP2"),n.text(""),t.content=null,t.row=null,t.column=null,delete t.function_called,delete t.parameters_list,La(e,t,n,i,2,a)),s.data("exp")&&xa(e,t,n,0,i,s,a)},selectOnKeydown:!1})}else if(t.content.type){var u="";if(1==t.content.dimensions&&1!=t.dimensions){u='<div class="variable_rendered"> <span class="var_name">'+t.content.name+"</span>",u+=' <span>[ </span> <div class="column_container"></div> <span> ]</span>',u+="</div>",u=$(u),n.append(u);s='<div class="ui dropdown context_menu_clear"><div class="text"></div><i class="dropdown icon"></i><div class="menu">';s+='<div class="item" data-clear="true">'+At.getUI("btn_clear")+"</div>",s+="</div></div>",s=$(s),u.append(s),s.dropdown({onChange:function(o,r,s){console.log("S3"),s.data("clear")&&(console.log("PP3"),n.text(""),t.content=null,t.row=null,t.column=null,delete t.function_called,delete t.parameters_list,La(e,t,n,i,2,a)),s.data("exp")&&xa(e,t,n,0,i,s,a)},selectOnKeydown:!1}),t.column||(t.column=new Qo(ka.all,null,null,null,!0)),Ma(e,t.column,$(u.find(".column_container")),i,o,a)}else if(2==t.content.dimensions&&2!=t.dimensions){u='<div class="variable_rendered"> <span class="var_name">'+t.content.name+"</span>",u+=' <span>[ </span> <div class="row_container"></div> <span> ]</span>',u+=' <span>[ </span> <div class="column_container"></div> <span> ] </span>',u+="</div>",u=$(u),n.append(u);s='<div class="ui dropdown context_menu_clear"><div class="text"></div><i class="dropdown icon"></i><div class="menu">';s+='<div class="item" data-clear="true">'+At.getUI("btn_clear")+"</div>",s+="</div></div>",s=$(s),u.append(s),s.dropdown({onChange:function(o,r,s){console.log("S4"),s.data("clear")&&(console.log("PP4"),n.text(""),t.content=null,t.row=null,t.column=null,delete t.function_called,delete t.parameters_list,La(e,t,n,i,2,a)),s.data("exp")&&xa(e,t,n,0,i,s,a)},selectOnKeydown:!1}),t.column||(t.column=new Qo(ka.all,null,null,null,!0)),t.row||(t.row=new Qo(ka.all,null,null,null,!0)),Ma(e,t.row,$(u.find(".row_container")),i,o,a),Ma(e,t.column,$(u.find(".column_container")),i,o,a)}else{u='<div class="variable_rendered"> <span class="var_name">'+t.content.name+"</span>",u+="</div>",u=$(u),n.append(u);s='<div class="ui dropdown context_menu_clear"><div class="text"></div><i class="dropdown icon"></i><div class="menu">';s+='<div class="item" data-clear="true">'+At.getUI("btn_clear")+"</div>",s+="</div></div>",s=$(s),u.append(s),s.dropdown({onChange:function(o,r,s){console.log("S5"),s.data("clear")&&(console.log("PP5"),n.text(""),t.content=null,t.row=null,t.column=null,delete t.function_called,delete t.parameters_list,La(e,t,n,i,2,a)),s.data("exp")&&xa(e,t,n,0,i,s,a)},selectOnKeydown:!1})}}else{u='<div class="variable_rendered"> <span class="var_name">'+t.content+"</span>";u+="</div>",u=$(u),n.append(u);s='<div class="ui dropdown context_menu_clear"><div class="text"></div><i class="dropdown icon"></i><div class="menu">';s+='<div class="item" data-clear="true">'+At.getUI("btn_clear")+"</div>",s+="</div></div>",s=$(s),t.variable_and_value!=ka.only_value&&s.insertAfter(u),s.dropdown({onChange:function(o,r,s){console.log("S6"),s.data("clear")&&(console.log("PP6"),n.text(""),t.content=null,t.row=null,t.column=null,delete t.function_called,delete t.parameters_list,n.find(".value_rendered").remove(),n.find(".context_menu_clear").remove(),n.find(".width-dynamic-minus").remove(),La(e,t,n,i,2,a)),s.data("exp")&&xa(e,t,n,0,i,s,a)},selectOnKeydown:!1}),u.on("click",(function(r){u.remove(),u.empty(),u.remove(),n.empty(),n.append('<span class="menu_var_or_value_dom"> </span>'),Fa(e,t,n,o,i,a)}))}}else La(e,t,n,i,2,a)}function Fa(e,t,n,i,o,a){null==t.content&&(t.content=""),i.find(".text").text(" ");var r=$('<input type="text" size="2" class="width-dynamic-minus" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />');r.insertBefore(n.find(".menu_var_or_value_dom"));var s=$('<div class="value_rendered"></div>');s.insertBefore(r),r.focus(),r.val(t.content);var l='<div class="ui dropdown context_menu_clear"><div class="text"></div><i class="dropdown icon"></i><div class="menu">';l+='<div class="item" data-clear="true">'+At.getUI("btn_clear")+"</div>",l+="</div></div>",l=$(l),n.find(".menu_var_or_value_dom").remove(),t.variable_and_value!=ka.only_value&&l.insertAfter(r),l.dropdown({onChange:function(i,r,s){console.log("S11"),s.data("clear")&&(console.log("PP10"),n.text(""),n.find(".value_rendered").remove(),n.find(".context_menu_clear").remove(),n.find(".width-dynamic-minus").remove(),t.content=null,t.row=null,t.column=null,delete t.function_called,delete t.parameters_list,La(e,t,n,o,2,a)),s.data("exp")&&xa(e,t,n,0,o,s,a)},selectOnKeydown:!1}),n.find(".width-dynamic-minus").focusout((function(){$(this).val().trim()&&(t.content=$(this).val().trim()),s.text(t.content),$(this).remove()})),n.find(".width-dynamic-minus").on("keydown",(function(e){var n=e.keyCode||e.which;13==n&&($(this).val().trim()&&(t.content=$(this).val().trim()),s.text(t.content),$(this).remove()),27==n&&(s.text(t.content),$(this).remove())})),e.type,To.comment,s.on("click",(function(r){console.log("TTT2"),s.remove(),s.empty(),s.remove(),n.empty(),n.append('<span class="menu_var_or_value_dom"> </span>'),Fa(e,t,n,i,o,a)}))}function ja(e,t){var n=$('<div class="ui comment command_container"> <i class="ui icon small quote left command_drag"></i> <i class="ui icon times red button_remove_command"></i> <div class="var_value_menu_div"></div> <div class="div_comment_text"></div> </div>');return n.data("command",e),function(e,t,n){n.find(".button_remove_command").on("click",(function(){Xa(e,t,n)&&n.fadeOut(400,(function(){n.remove()}))}))}(e,t,n),function(e,t,n){La(e,e.comment_text,n.find(".var_value_menu_div"),t,20)}(e,t,n),n}function Ka(e,t){var n='<div class="ui reader command_container"> <i class="ui icon small download command_drag"></i> <i class="ui icon times red button_remove_command"></i> <span class="span_command_spec">'+At.getUI("text_command_read")+' ( </span> <div class="var_value_menu_div"></div> <span class="close_parentheses span_command_spec">)</span> </div>';return(n=$(n)).data("command",e),La(e,e.variable_value_menu,n.find(".var_value_menu_div"),t),function(e,t,n){n.find(".button_remove_command").on("click",(function(){Xa(e,t,n)&&n.fadeOut(400,(function(){n.remove()}))}))}(e,t,n),n}function Ba(e,t){var n="";n+='<div class="ui writer command_container"> <i class="ui icon small upload command_drag"></i> <i class="ui icon times red button_remove_command"></i> <span class="span_command_spec">'+At.getUI("text_command_write")+' ( </span><div class="all_elements_write"></div> <span class="close_parentheses span_command_spec">)</span> </div>';var i=$(n);return i.data("command",e),pa(e,t,i.find(".all_elements_write"),e.content),function(e,t,n){n.find(".button_remove_command").on("click",(function(){Xa(e,t,n)&&n.fadeOut(400,(function(){n.remove()}))})),Sortable.create(n.find(".all_elements_write")[0],{handle:".ellipsis",animation:100,ghostClass:"ghost",group:"writer_"+Math.floor(1e7*Math.random()),draggable:".div_parent_handler",onEnd:function(i){e.content.splice(i.newIndex,0,e.content.splice(i.oldIndex,1)[0]),n.empty(),n.replaceWith(Ba(e,t))}})}(e,t,i),i}function Ga(e,t){var n="";n+='<div class="ui iftrue command_container"><div class="ui data_block_if" data-if="true"> <i class="ui icon small random command_drag"></i> <i class="ui icon times red button_remove_command"></i>',n+='<span class="span_command_spec"> '+At.getUI("text_if")+"</span>",n+=' <span class="span_command_spec"> ( </span> <div class="conditional_expression"></div> <span class="span_command_spec"> ) </span>',n+="<span> </span> ",n+='<div class="ui block_commands commands_if conditional_comands_block" data-if="true">',n+="</div></div>",n+='<div class="ui data_block_else" data-else="true"> <span class="span_command_spec"> '+At.getUI("text_else")+" </span>",n+='<div class="ui block_commands commands_else conditional_comands_block" data-else="true">',n+="</div>",n+="<span></span></div>",n+="</div>";var i=$(n);if(i.data("command",e),i.find(".block_commands").data("command",e),i.find(".data_block_if").data("command",e),i.find(".data_block_else").data("command",e),i.find(".commands_if").data("command",e),function(e,t,n){n.find(".button_remove_command").on("click",(function(){Xa(e,t,n)&&n.fadeOut(400,(function(){n.remove()}))}))}(e,t,i),pa(e,t,i.find(".conditional_expression"),e.expression),e.commands_block)for(var o=0;o<e.commands_block.length;o++)er(e.commands_block[o],$(i.find(".commands_if")[0]),3,t);if(e.commands_else)for(o=0;o<e.commands_else.length;o++)er(e.commands_else[o],$(i.find(".commands_else")[0]),3,t);return i}function Da(e,t){var n="";n+='<div class="ui whiletrue command_container"> <i class="ui icon small sync command_drag"></i> <i class="ui icon times red button_remove_command"></i> <div class="ui context_menu"></div> <span class="span_command_spec"> '+At.getUI("text_command_while")+" </span>",n+='<span class="span_command_spec"> ( </span> <div class="conditional_expression"></div> <span class="span_command_spec"> ) </span>',n+=" </span>",n+='<div class="ui block_commands">',n+="</div>",n+="<span> </span>",n+="</div>";var i=$(n);if(i.data("command",e),i.find(".block_commands").data("command",e),function(e,t,n){n.find(".button_remove_command").on("click",(function(){Xa(e,t,n)&&n.fadeOut(400,(function(){n.remove()}))}))}(e,t,i),Ia(e,i.find(".context_menu"),t,i),pa(e,t,i.find(".conditional_expression"),e.expression),e.commands_block)for(var o=0;o<e.commands_block.length;o++)er(e.commands_block[o],$(i.find(".block_commands")[0]),3,t);return i}function Va(e,t){var n="";n+='<div class="ui dowhiletrue command_container"> <i class="ui icon small sync command_drag"></i> <i class="ui icon times red button_remove_command"></i> <div class="ui context_menu"></div> <span class="span_command_spec"> '+At.getUI("text_command_do")+" </span>",n+='<div class="ui block_commands" data-subblock="" data-idcommand="">',n+="</div>",n+=' <span class="span_command_spec"> '+At.getUI("text_command_do_until")+' </span> <span class="span_command_spec"> ( </span> <div class="conditional_expression"></div> <span class="span_command_spec"> ) </span>',n+="</div>";var i=$(n);if(i.data("command",e),i.find(".block_commands").data("command",e),function(e,t,n){n.find(".button_remove_command").on("click",(function(){Xa(e,t,n)&&n.fadeOut(400,(function(){n.remove()}))}))}(e,t,i),Ia(e,i.find(".context_menu"),t,i),e.expression&&pa(e,t,i.find(".conditional_expression"),e.expression),e.commands_block)for(var o=0;o<e.commands_block.length;o++)er(e.commands_block[o],$(i.find(".block_commands")[0]),3,t);return i}function qa(e,t){var n=$('<div class="ui functioncall command_container"> <i class="hand point right icon command_drag"></i> <i class="ui icon times red button_remove_command"></i> <div class="var_value_menu_div"></div> </div>');return n.data("command",e),La(e,e.function_called,n.find(".var_value_menu_div"),t),function(e,t,n){n.find(".button_remove_command").on("click",(function(){Xa(e,t,n)&&n.fadeOut(400,(function(){n.remove()}))}))}(e,t,n),n}function Ha(e,t){var n=$('<div class="ui comment command_container"> <i class="ui icon small quote left"></i> <i class="ui icon times red button_remove_command"></i> <span>'+At.getUI("text_break")+"</span> </div>");return n.data("command",e),function(e,t,n){n.find(".button_remove_command").on("click",(function(){Xa(e,t,n)&&n.fadeOut(400,(function(){n.remove()}))}))}(e,t,n),n}function za(e,t){var n=$('<div class="ui return command_container"> <i class="ui icon small reply command_drag"></i> <i class="ui icon times red button_remove_command"></i> <span class="span_command_spec"> '+At.getUI("text_return")+' </span> <div class="expression_elements"></div></div>');return n.data("command",e),function(e,t,n){n.find(".button_remove_command").on("click",(function(){Xa(e,t,n)&&n.fadeOut(400,(function(){n.remove()}))}))}(e,t,n),t.return_type!=Hi.VOID?(e.variable_value_menu||(e.variable_value_menu=[new Qo(ka.all,null,null,null,!0)]),pa(e,t,n.find(".expression_elements"),e.variable_value_menu)):(n.find(".expression_elements").remove(),e.variable_value_menu=null),n}function Xa(e,t,n){if(eo(t.name,Ji.REMOVE_COMMAND,e.type,"/",0),t.commands.indexOf(e)>-1)return t.commands.splice(t.commands.indexOf(e),1),!0;try{if(n.parent().parent().data("command").commands_block.indexOf(e)>-1)return n.parent().parent().data("command").commands_block.splice(n.parent().parent().data("command").commands_block.indexOf(e),1),!0}catch(e){}try{if(n.parent().parent().data("command").type==To.iftrue&&n.parent().parent().data("command").commands_else.indexOf(e)>-1)return n.parent().parent().data("command").commands_else.splice(n.parent().parent().data("command").commands_else.indexOf(e),1),!0}catch(e){}return!!n.parent().data("switchcase")&&(console.log("o que encontrei: "),console.log(n.parent().data("switchcase")),n.parent().data("switchcase").commands_block.splice(n.parent().data("switchcase").commands_block.indexOf(e),1),!0)}function Wa(e,t,n,i){var o;switch(n){case To.break:o=$('<div class="ui comment created_element"> <i class="ui icon small quote left"></i> <span> '+At.getUI("text_break")+" </span></div>");break;case To.comment:o=$('<div class="ui comment created_element"> <i class="ui icon small quote left"></i> <span class="span_comment_text" "> '+At.getUI("text_comment")+" </span></div>");break;case To.reader:o=$('<div class="ui reader created_element"> <i class="ui icon small download"></i> <span> '+At.getUI("text_command_read")+" var </span></div>");break;case To.writer:o=$('<div class="ui writer created_element"> <i class="ui icon small upload"></i> <span> '+At.getUI("text_command_write")+" var </span></div>");break;case To.attribution:o=$('<div class="ui attribution created_element"> <i class="ui icon small arrow left"></i> <span> x <— 1 + 1 </span></div>');break;case To.iftrue:o=$('<div class="ui iftrue created_element"> <i class="ui icon small random"></i> <span> if (x < 1) { } </span></div>');break;case To.repeatNtimes:o=$('<div class="ui repeatNtimes created_element"> <i class="ui icon small sync"></i> <span> repita_para i de 0 ate 10 passo 1 <br> </span></div>');break;case To.whiletrue:o=$('<div class="ui whiletrue created_element"> <i class="ui icon small sync"></i> <span> '+At.getUI("text_command_while")+" ( x < 10 ) <br> </span></div>");break;case To.dowhiletrue:o=$('<div class="ui dowhiletrue created_element"> <i class="ui icon small sync"></i> <span> '+At.getUI("text_command_do")+" <br> "+At.getUI("text_command_do_until")+"(x < 10) </span></div>");break;case To.switch:o=$('<div class="ui switch created_element"> <i class="ui icon small random"></i> <span> '+At.getUI("text_code_switch")+" ( x ) { <br> "+At.getUI("text_code_case")+" 1: <br> "+At.getUI("text_code_case")+" 2: <br> } </span></div>");break;case To.functioncall:o=$('<div class="ui functioncall created_element"> <i class="hand point right icon"></i> <span> funcao() </span></div>');break;case To.return:o=$('<div class="ui return created_element"> <i class="ui icon small reply"></i> <span> '+At.getUI("text_return")+" </span></div>")}o.draggable().appendTo("body"),$("body").mouseup((function(i){!function(e,t,n,i){$(".created_element").each((function(e){$(this).remove()}));var o=$(document.elementFromPoint(n.clientX,n.clientY));o.hasClass("ghost_div")&&o.closest(".command_container").length<1&&(console.log("\n\nvou tentar!!!!"),console.log(o.closest(".commands_list_div"),"\n\n"),o.closest(".commands_list_div").css("height",o.closest(".commands_list_div").css("height")+30),o=o.closest(".commands_list_div"));console.log("soltou no: "),console.log(o),console.log(o.data("fun"));var a=o.parentsUntil(".all_functions"),r=!1,s=!1;o.hasClass("commands_list_div")&&(s=!0);for(var l=0;l<a.length;l++){var c=$(a[l]);if(c.hasClass("commands_list_div")&&(s=!0),c.data("fun")==e){r=!0;break}}if(!r)return void nr(n);if(!s)return void nr(n);var u=null;if(console.log("ev0"),void 0!==o.data("fun"))if(null==o.data("fun").commands||0==o.data("fun").commands.length){o.data("fun").commands=[];var d=tr(i);eo(e.name,Ji.INSERT_COMMAND,i,"/",0),o.data("fun").commands.push(d),er(d,$(t).find(".commands_list_div"),3,e)}else!function(e,t,n,i,o){for(var a,r=$(n).find("div.command_container"),s=999999999,l=null,c=0;c<r.length;c++)a=r[c].getBoundingClientRect().top,r[c].getBoundingClientRect().top+r[c].getBoundingClientRect().height,a-t.clientY<s&&(s=t.clientY-a,l=r[c]);if(l.parentNode.getBoundingClientRect().top+l.parentNode.getBoundingClientRect().height-t.clientY<s){var u=tr(o);i.commands.push(u),er(u,n,3,i),eo(i.name,Ji.INSERT_COMMAND,o,"/",i.commands.length-1)}else{u=tr(o);var d=i.commands.indexOf($(l).data("command"));d>-1&&i.commands.splice(d,0,u),er(u,l,1,i),eo(i.name,Ji.INSERT_COMMAND,o,"/",d)}}(0,n,$(t).find(".commands_list_div"),e,i);else{console.log("soltou em um comando");var p=o.parentsUntil(".commands_list_div");u=[],void 0!==o.data("command")&&u.push(o.data("command"));for(l=0;l<p.length;l++)void 0!==$(p[l]).data("command")&&u.push($(p[l]).data("command"));console.log("comando em que soltou: "),console.log(u[0]),console.log("hierarquia de baixo para cima na árvore, de onde ele soltou: ");for(l=0;l<u.length;l++)console.log(u[l]);var _=!1;if(i==To.break){for(l=0;l<u.length;l++)if(u[l].type==To.repeatNtimes||u[l].type==To.whiletrue||u[l].type==To.dowhiletrue||u[l].type==To.switch){_=!0;break}if(!_)return void console.error("Context not allowed to insert BREAK COMMAND!")}if(1==u.length){console.log("QQ1");var f=!1;for(l=0;l<p.length;l++)if(void 0!==$(p[l]).data("command")){console.log("QQ2"),sr(p[l],n,e,i),f=!0;break}f||(console.log("QQ3"),sr(o[0],n,e,i))}else if(console.log("QQ4"),void 0!==$(o).data("command"))console.log("QQ5"),console.log("PPP1"),or(o[0],n,e,i,p,u);else{console.log("QQ6");for(f=!1,l=0;l<p.length;l++)if(void 0!==$(p[l]).data("command")){console.log("QQ7"),or(p[l],n,e,i,p,u),f=!0;break}}}if(u){console.log("\n\n:::índices::\n\n");l=u.length-1;var m=window.program_obj.functions[window.program_obj.functions.indexOf(e)].commands.indexOf(u[l]),v=m+"-"+function(e,t,n){arguments.length>3&&void 0!==arguments[3]&&arguments[3],arguments.length>4&&void 0!==arguments[4]&&arguments[4];for(var i="",o=0;o<=t.length;o++)console.log("\n\n:: ",o,":\n",t[o]),i+=ir(t[o],t[o+1])+"-";return i}(m,u,e);eo(e.name,Ji.INSERT_COMMAND,i,"/",v),console.log("\n\nfull path: \n\n",v),console.log("fim dos índices")}renderAlgorithm()}(e,t,i,n),$("body").off("mouseup"),$("body").off("mouseover")})),(!t.hasClass("function_div")||t.length<1)&&(window.mouse_event=i,t=$(i.originalEvent.srcElement.closest(".function_div"))),console.log("function_container",t),function_container_active=t,t.find(".commands_list_div").on("mousemove",(function(e){Za(e)})),t.find(".commands_list_div").find("*").on("mousemove",(function(e){Za(e)})),t.on("mouseout",(function(e){$(document.elementFromPoint(e.clientX,e.clientY)).closest(".commands_list_div").length<1&&window.ghostDiv.remove()})),o.css("position","absolute"),i.type="mousedown.draggable",i.target=o[0],o.css("left",i.pageX-window.divx),o.css("top",i.pageY),o.trigger(i)}function Qa(e,t){$(".ghost_div").remove();var n=e.closest(".command_container");if(n.hasClass("switch")&&(n=$(t.target).closest(".case_div")),n.hasClass("dowhiletrue")||n.hasClass("iftrue")||n.hasClass("repeatNtimes")||n.hasClass("case_div")||n.hasClass("whiletrue"))if(null!=window.active_container&&(window.active_container.is(n)?console.log("é o mesmo, não mudou!"):n.length<1?(n=e.closest(".commands_list_div"),window.active_container.is(n)?console.log("é o mesmo command list"):(console.log("mudou para um command list"),window.active_container=n)):console.log("mudou para um outro container?")),window.active_container=n,n.hasClass("iftrue")){var i=n.find(".commands_if").get(0),o=n.find(".commands_else").get(0),a=Math.abs(t.clientY-i.getBoundingClientRect().top),r=(Math.abs(i.getBoundingClientRect().top+i.getBoundingClientRect().height-t.clientY),Math.abs(t.clientY-o.getBoundingClientRect().top)),s=Math.abs(o.getBoundingClientRect().top+o.getBoundingClientRect().height-t.clientY);a<r&&a<s?$(i).append(window.ghostDiv):$(o).append(window.ghostDiv)}else n.hasClass("case_div")?n.find(".case_commands_block").append(window.ghostDiv):n.find(".block_commands").append(window.ghostDiv);else Ya(e,t)}function Ya(e,t){$(".ghost_div").remove();var n,i=e.closest(".dowhiletrue, .iftrue, .repeatNtimes, .case_div, .whiletrue");if(i.length<1&&(i=e.closest(".commands_list_div"),window.active_container=i,Ja(e,t)),window.active_container=i,console.log("olha o container: ",i),i.hasClass("iftrue"))if($(t.target).closest(".data_block_if").length>0)n=i.find(".commands_if").children(".command_container");else if($(t.target).closest(".data_block_else").length>0)n=i.find(".commands_else").children(".command_container");else{var o=i.find(".commands_if").get(0),a=i.find(".commands_else").get(0),r=Math.abs(t.clientY-o.getBoundingClientRect().top),s=(Math.abs(o.getBoundingClientRect().top+o.getBoundingClientRect().height-t.clientY),Math.abs(t.clientY-a.getBoundingClientRect().top)),l=Math.abs(a.getBoundingClientRect().top+a.getBoundingClientRect().height-t.clientY);n=r<s&&r<l?$(o).children(".command_container"):$(a).children(".command_container")}else n=i.hasClass("case_div")?i.children(".case_commands_block").children(".command_container"):i.hasClass("commands_list_div")?i.children(".command_container"):i.children(".block_commands").children(".command_container");for(var c=[],u=[],d=0;d<n.length;d++){var p=Math.abs(t.clientY-n.get(d).getBoundingClientRect().top);c.push(p);var _=Math.abs(n.get(d).getBoundingClientRect().top+n.get(d).getBoundingClientRect().height-t.clientY);u.push(_)}console.log("topDistances\n",c,"\nbottomDistances\n",u);var f=Math.min.apply(null,c),m=c.indexOf(f),v=Math.min.apply(null,u),h=u.indexOf(v);f<v?window.ghostDiv.insertBefore($(n.get(m))):window.ghostDiv.insertAfter($(n.get(h))),console.log("distancias: menorTop ",f," menorBot ",v)}function Ja(e,t){$(".ghost_div").remove();for(var n=e.closest(".commands_list_div").children(".command_container"),i=[],o=[],a=0;a<n.length;a++){var r=Math.abs(t.clientY-n.get(a).getBoundingClientRect().top);i.push(r);var s=Math.abs(n.get(a).getBoundingClientRect().top+n.get(a).getBoundingClientRect().height-t.clientY);o.push(s)}var l=Math.min.apply(null,i),c=i.indexOf(l),u=Math.min.apply(null,o),d=o.indexOf(u);l<u?window.ghostDiv.insertBefore($(n.get(c))):window.ghostDiv.insertAfter($(n.get(d)))}function Za(e){var t=$(e.target);t.hasClass("ghost_div")||(t.hasClass("commands_list_div")?Ja(t,e):t.hasClass("block_commands")?t.find(".command_container").length>0?Ya(t,e):Qa(t,e):t.hasClass("case_div")?t.find(".case_commands_block").find(".command_container").length>0?Ya(t,e):Qa(t,e):Ya(t,e))}function er(e,t,n,i){var o;switch(e.type){case To.comment:o=ja(e,i);break;case To.break:o=Ha(e,i);break;case To.reader:o=Ka(e,i);break;case To.writer:o=Ba(e,i);break;case To.attribution:o=wa(e,i);break;case To.functioncall:o=qa(e,i);break;case To.iftrue:o=Ga(e,i);break;case To.repeatNtimes:o=Ca(e,i);break;case To.whiletrue:o=Da(e,i);break;case To.dowhiletrue:o=Va(e,i);break;case To.switch:o=Aa(e,i);break;case To.return:o=za(e,i)}switch(n){case 1:o.insertBefore(t);break;case 2:o.insertAfter(t);break;case 3:t.append(o)}}function tr(e){switch(e){case To.break:return new Uo;case To.comment:return new $o(new Qo(ka.only_value,At.getUI("text_comment"),null,null,!1));case To.reader:return new Po(new Qo(ka.only_variable,null,null,null,!1));case To.writer:return new Mo([new Qo(ka.all,null,null,null,!0)]);case To.attribution:return new Fo(new Qo(ka.only_variable,null,null,null,!1),[]);case To.functioncall:return new Wo(new Qo(ka.only_function,null,null,null,!1),null);case To.iftrue:return new Go([new Qo(ka.all,null,null,null,!0)]);case To.repeatNtimes:return new Do(new Qo(ka.only_variable,null,null,null,!1),new Qo(ka.only_variable,null,null,null,!1),null,new Qo(ka.all,null,null,null,!0),null,null);case To.whiletrue:return new Vo([new Qo(ka.all,null,null,null,!0)],null);case To.dowhiletrue:return new qo([new Qo(ka.all,null,null,null,!0)],null);case To.switch:var t=[new Xo(new Qo(ka.all,null,null,null,!0))];return new Ho(new Qo(ka.variable_and_function,null,null,null,!0),t);case To.return:return new zo([new Qo(ka.all,null,null,null,!0)])}}function nr(e){$(".ghost_div").remove();var t=$('<i class="ui icon trash alternate outline"></i>');$("body").append(t),t.css("position","absolute"),t.css("top",e.clientY),t.css("left",e.clientX-20),t.css("font-size","3em"),t.css("display","none"),function_container_active.find(".commands_list_div").off("mousemove"),function_container_active.find(".commands_list_div").find("*").off("mousemove"),t.fadeIn(200,(function(){t.fadeOut(200,(function(){t.remove()}))}))}function ir(e,t){if(!e||!t)return"";if(e.type==To.repeatNtimes||e.type==To.whiletrue||e.type==To.dowhiletrue)return e.commands_block?""+e.commands_block.indexOf(t):"0";if(e.type==To.iftrue)return null==e.commands_block&&(e.commands_block=[]),null==e.commands_else&&(e.commands_else=[]),console.log("\n\nveja onde: ",e.commands_block," \n\nquery: ",t),e.commands_block.indexOf(t)>=0?"if["+e.commands_block.indexOf(t)+"]":"else["+e.commands_else.indexOf(t)+"]";if(e.type==To.switch)for(var n=0;n<e.cases.length;n++)if(e.cases[n].commands_block.indexOf(t)>=0)return"case["+e.cases[n].commands_block.indexOf(t)+"]"}function or(e,t,n,i,o,a){var r=$(e),s=r.data("command");if(r.data("command").type==To.repeatNtimes||r.data("command").type==To.whiletrue||r.data("command").type==To.dowhiletrue||r.data("command").type==To.switch)if(console.log("QQ17"),r.data("command").type==To.repeatNtimes||r.data("command").type==To.whiletrue||r.data("command").type==To.dowhiletrue)if(console.log("QQ18"),null==s.commands_block||0==s.commands_block.length){s.commands_block=[];var l=tr(i);s.commands_block.push(l),eo(n.name,Ji.INSERT_COMMAND,i,"/"+r.data("command").type,0),er(l,r.find(".block_commands"),3,n)}else!function(e,t,n,i,o,a){console.log("\n\n\n::COMANDOS:\n\n",e,t,n,i,o,a);for(var r,s=$(n).find("div.command_container"),l=999999999,c=null,u=0;u<s.length;u++)r=s[u].getBoundingClientRect().top,s[u].getBoundingClientRect().top+s[u].getBoundingClientRect().height,r-t.clientY<l&&(l=t.clientY-r,c=s[u]);if(c.parentNode.getBoundingClientRect().top+c.parentNode.getBoundingClientRect().height-t.clientY<l){var d=tr(o);a.commands_block.push(d),er(d,n,3,i)}else{d=tr(o);var p=a.commands_block.indexOf($(c).data("command"));p>-1&&a.commands_block.splice(p,0,d),er(d,c,1,i)}}(e,t,e,n,i,s);else ar(t,n,i);else console.log("QQ19"),function(e,t,n,i){var o=$(e),a=$(e.parentNode.parentNode).data("command"),r=o.data("command"),s=$(e.parentNode.parentNode),l=!1;if(!a){a=o.data("command"),s=o;for(var c=o.parentsUntil(".command_container"),u=0;u<c.length;u++){void 0!==(d=$(c[u])).data("else")&&(l=!0),void 0!==d.data("command")&&(a=d.data("command"),s=d)}}for(c=o.parentsUntil(".command_container"),u=0;u<c.length;u++){void 0!==(d=$(c[u])).data("else")&&(l=!0)}if(a==r)for(c=o.parentsUntil(".command_container"),u=0;u<c.length;u++){if(void 0!==(d=$(c[u])).data("else")){l=!0;break}}if(a.type!=To.iftrue&&a.type!=To.switch){c=s.parentsUntil(".all_cases_div");console.log("vou procurar!!");for(u=0;u<c.length;u++){var d;if(console.log("estou vasculhando..."),void 0!==(d=$(c[u])).data("switchcase")){console.log("encontrei"),a=d.data("switchcase"),l=!1;break}}}console.log("debugging:"),console.log("el_jq"),console.log(o),console.log("command_parent"),console.log(a),console.log("command_target"),console.log(r);var p,_;_=e.getBoundingClientRect().top,p=e.getBoundingClientRect().top+e.getBoundingClientRect().height;var f=t.clientY-_,m=p-t.clientY;if(f<m){var v=tr(i);if(console.log("MMM1"),l){if(console.log("MMM2"),a==r){if(console.log("MMM3"),null==a.commands_else||0==a.commands_else.length){a.commands_else=[];v=tr(i);a.commands_else.push(v),er(v,o,3,n)}else rr(o,t,n,i,!0);return}console.log("MMM7"),(h=a.commands_else.indexOf(r))>-1&&a.commands_else.splice(h,0,v),er(v,e,1,n)}else{if(console.log("MMM4"),a==r){if(console.log("Nxxxx5"),null==a.commands_block||0==a.commands_block.length){a.commands_block=[],console.log("SSS4");v=tr(i);a.commands_block.push(v),er(v,o,3,n)}else console.log("SSS5"),rr(o,t,n,i);return}console.log("MMM6"),(h=a.commands_block.indexOf(r))>-1&&a.commands_block.splice(h,0,v),er(v,e,1,n)}}else{console.log("XXX1");v=tr(i);if(l){if(a==r){if(console.log("MMM3"),null==a.commands_else||0==a.commands_else.length){a.commands_else=[],console.log("SSS1");v=tr(i);a.commands_else.push(v),er(v,o,3,n)}else console.log("SSS2"),rr(o,t,n,i,!0);return}console.log("XXX2"),(h=a.commands_else.indexOf(r))>-1&&a.commands_else.splice(h+1,0,v),er(v,e,2,n)}else{if(a==r){if(console.log("Nxxxx78"),null==a.commands_block||0==a.commands_block.length){a.commands_block=[];v=tr(i);a.commands_block.push(v),console.log("SSS6"),er(v,o,3,n)}else console.log("SSS7"),rr(o,t,n,i);return}var h;console.log("XXX3"),(h=a.commands_block.indexOf(r))>-1&&a.commands_block.splice(h+1,0,v),er(v,e,2,n)}}}(e,t,n,i)}function ar(e,t,n){var i=$(document.elementFromPoint(e.clientX,e.clientY)),o=i.data("switchcase"),a=i;if(!o)for(var r=i.parentsUntil(".all_cases_div"),s=0;s<r.length;s++)if(void 0!==$(r[s]).data("switchcase")){o=$(r[s]).data("switchcase"),a=$(r[s]);break}if(null==o.commands_block||o.commands_block.length<1){o.commands_block=[];var l=tr(n);o.commands_block.push(l),er(l,a.find(".case_commands_block"),3,t)}else!function(e,t,n,i,o){for(var a,r=t.find("div.command_container"),s=999999999,l=null,c=0;c<r.length;c++)a=r[c].getBoundingClientRect().top,r[c].getBoundingClientRect().top+r[c].getBoundingClientRect().height,a-n.clientY<s&&(s=n.clientY-a,l=r[c]);if(l.parentNode.getBoundingClientRect().top+l.parentNode.getBoundingClientRect().height-n.clientY<s){var u=tr(o);e.commands_block.push(u),er(u,$(t.find(".case_commands_block")[0]),3,i)}else{u=tr(o);var d=e.commands_block.indexOf($(l).data("command"));d>-1&&(e.commands_block.splice(d,0,u),er(u,l,1,i))}}(o,a,e,t,n)}function rr(e,t,n,i){for(var o,a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r=$(e),s=r.find("div.command_container"),l=999999999,c=null,u=0;u<s.length;u++)o=s[u].getBoundingClientRect().top,s[u].getBoundingClientRect().top+s[u].getBoundingClientRect().height,o-t.clientY<l&&(l=t.clientY-o,c=s[u]);var d=c.parentNode.getBoundingClientRect().top+c.parentNode.getBoundingClientRect().height;if(console.log("menor_distancia: "),console.log(c),d-t.clientY<l){console.log("QQ11");var p=tr(i),_=r.data("command");a?(console.log("QQ15"),_.commands_else.push(p),console.log("el_jq"),console.log(r),console.log("$(el_jq.find('.commands_else')[0]):: "),console.log($(r.find(".commands_else")[0])),er(p,r,3,n)):(console.log("QQ16"),_.commands_block.push(p),er(p,$(r.find(".block_commands")[0]),3,n))}else{console.log("QQ12");var f;p=tr(i),_=r.data("command");if(a)(f=_.commands_else.indexOf($(c).data("command")))>-1&&(_.commands_else.splice(f,0,p),er(p,c,1,n));else(f=_.commands_block.indexOf($(c).data("command")))>-1&&(_.commands_block.splice(f,0,p),er(p,c,1,n))}}function sr(e,t,n,i){switch($(e).data("command").type){case To.iftrue:case To.switch:case To.repeatNtimes:case To.whiletrue:case To.dowhiletrue:return void function(e,t,n,i){var o=$(e),a=o.data("command");if(o.data("command").type==To.repeatNtimes||o.data("command").type==To.whiletrue||o.data("command").type==To.dowhiletrue)if(null==a.commands_block||0==a.commands_block.length){a.commands_block=[];var r=tr(i);a.commands_block.push(r),er(r,o.find(".block_commands"),3,n)}else rr(e,t,n,i);else if(o.data("command").type==To.iftrue){console.log("QQ9");var s=$(document.elementFromPoint(t.pageX,t.pageY)),l=!0;if(s.data("if"))l=!0;else if(s.data("else"))l=!1;else for(var c=s.parentsUntil(".command_container"),u=0;u<c.length;u++){var d=$(c[u]);if(void 0!==d.data("if")){l=!0;break}if(void 0!==d.data("else")){l=!1;break}}if(l)if(null==a.commands_block||0==a.commands_block.length){a.commands_block=[];r=tr(i);a.commands_block.push(r),er(r,o.find(".commands_if"),3,n)}else rr(o.find(".commands_if"),t,n,i);else if(null==a.commands_else||0==a.commands_else.length){a.commands_else=[];r=tr(i);a.commands_else.push(r),er(r,o.find(".commands_else"),3,n)}else rr(o.find(".commands_else"),t,n,i,!0)}else console.log("está tentando inserir em um switch que está na raiz!"),ar(t,n,i)}(e,t,n,i)}var o,a;if(a=e.getBoundingClientRect().top,o=e.getBoundingClientRect().top+e.getBoundingClientRect().height,t.clientY-a<o-t.clientY){var r=tr(i);(s=n.commands.indexOf($(e).data("command")))>-1&&n.commands.splice(s,0,r),er(r,e,1,n),eo(n.name,Ji.INSERT_COMMAND,i,"/",s)}else{var s;r=tr(i);(s=n.commands.indexOf($(e).data("command")))>-1&&n.commands.splice(s+1,0,r),er(r,e,2,n),eo(n.name,Ji.INSERT_COMMAND,i,"/",s)}}function lr(){$(".ivprog_visual_panel").find(".error_icon").remove();var e=At.getUI("program")+" { ";e+=function(){var e="";if(window.program_obj.globals)for(var t=0;t<window.program_obj.globals.length;t++){var n=window.program_obj.globals[t];switch(e+="\n\t",n.is_constant&&(e+="const "),n.type){case Hi.INTEGER:e+=At.getUI("type_integer");break;case Hi.REAL:e+=At.getUI("type_real");break;case Hi.TEXT:e+=At.getUI("type_text");break;case Hi.BOOLEAN:e+=At.getUI("type_boolean")}if(e+=" "+n.name+" ",1==n.dimensions)switch(e+="["+n.columns+"] ",n.type){case Hi.INTEGER:e+="<- {";for(var i=0;i<n.value.length;i++)e+=n.value[i],i+1<n.value.length&&(e+=", ");e+="}";break;case Hi.REAL:e+="<- {";for(i=0;i<n.value.length;i++)e+=n.value[i].toFixed(2),i+1<n.value.length&&(e+=", ");e+="}";break;case Hi.TEXT:e+="<- {";for(i=0;i<n.value.length;i++)e+='"'+n.value[i]+'"',i+1<n.value.length&&(e+=", ");e+="}";break;case Hi.BOOLEAN:e+="<- {";for(i=0;i<n.value.length;i++)n.value[i]?e+=At.getUI("logic_value_true"):e+=At.getUI("logic_value_false"),i+1<n.value.length&&(e+=", ");e+="}"}else if(2==n.dimensions)switch(e+="["+n.rows+"]["+n.columns+"] ",n.type){case Hi.INTEGER:e+="<- {";for(i=0;i<n.rows;i++){e+="{";for(var o=0;o<n.columns;o++)e+=n.value[i][o],o+1<n.columns&&(e+=", ");e+="}",i+1<n.rows&&(e+=", ")}e+="}";break;case Hi.REAL:e+="<- {";for(i=0;i<n.rows;i++){e+="{";for(o=0;o<n.columns;o++)e+=n.value[i][o].toFixed(2),o+1<n.columns&&(e+=", ");e+="}",i+1<n.rows&&(e+=", ")}e+="}";break;case Hi.TEXT:e+="<- {";for(i=0;i<n.rows;i++){e+="{";for(o=0;o<n.columns;o++)e+='"'+n.value[i][o]+'"',o+1<n.columns&&(e+=", ");e+="}",i+1<n.rows&&(e+=", ")}e+="}";break;case Hi.BOOLEAN:e+="<- {";for(i=0;i<n.rows;i++){e+="{";for(o=0;o<n.columns;o++)n.value[i][o]?e+=At.getUI("logic_value_true"):e+=At.getUI("logic_value_false"),o+1<n.columns&&(e+=", ");e+="}",i+1<n.rows&&(e+=", ")}e+="}"}else switch(n.type){case Hi.INTEGER:e+="<- "+n.value;break;case Hi.REAL:e+="<- "+n.value.toFixed(2);break;case Hi.TEXT:e+='<- "'+n.value+'"';break;case Hi.BOOLEAN:e+="<- ",n.value?e+=At.getUI("logic_value_true"):e+=At.getUI("logic_value_false")}}return e}(),e+="\n";for(var t=!1,n=0;n<window.program_obj.functions.length;n++){var i=cr(window.program_obj.functions[n]);null==i&&(t=!0),e+=i,e+="\n"}return e+="\n}",t?null:e}function cr(e){var t="\n\t"+At.getUI("function")+" ";switch(e.return_type){case Hi.INTEGER:t+=At.getUI("type_integer");break;case Hi.REAL:t+=At.getUI("type_real");break;case Hi.TEXT:t+=At.getUI("type_text");break;case Hi.BOOLEAN:t+=At.getUI("type_boolean");break;case Hi.VOID:t+=At.getUI("type_void")}t+=" ",1==e.return_dimensions?t+="[] ":2==e.return_dimensions&&(t+="[][] "),t+=e.name+" ( ";for(var n=0;n<e.parameters_list.length;n++)t+=fr(e.parameters_list[n]),n+1<e.parameters_list.length&&(t+=", ");t+=" ) {";for(n=0;n<e.variables_list.length;n++)t+=mr(e.variables_list[n]);for(n=0;n<e.commands.length;n++)t+=ur(e.commands[n]);return t+="\n\t}"}function ur(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;switch(e.type){case To.break:return function(e,t){for(var n="\n",i=0;i<t;i++)n+="\t";return n+=At.getUI("text_break")}(0,t);case To.comment:return function(e,t){for(var n="\n",i=0;i<t;i++)n+="\t";return n+="// ",n+=e.comment_text.content}(e,t);case To.reader:return function(e,t){for(var n="\n",i=0;i<t;i++)n+="\t";return n+=At.getUI("text_command_read")+" ( ",n+=_r(e.variable_value_menu),n+=" ) "}(e,t);case To.writer:return function(e,t){for(var n="\n",i=0;i<t;i++)n+="\t";return n+=At.getUI("text_command_write")+" ( ",n+=pr(e.content),n+=" ) "}(e,t);case To.functioncall:return function(e,t){for(var n="\n",i=0;i<t;i++)n+="\t";return n+=_r(e.function_called)}(e,t);case To.attribution:return function(e,t){for(var n="\n",i=0;i<t;i++)n+="\t";return n+=_r(e.variable)+" <- ",n+=pr(e.expression)}(e,t);case To.whiletrue:return function(e,t){for(var n="\n",i=0;i<t;i++)n+="\t";n+=At.getUI("text_code_while"),e.expression||Wi(e.expression.dom_object,At.getUI("inform_valid_expression"));e.expression&&(n+=" ( ",n+=pr(e.expression),n+=" ) ");if(n+=" { ",e.commands_block)for(i=0;i<e.commands_block.length;i++)n+=ur(e.commands_block[i],t+1);n+="\n";for(i=0;i<t;i++)n+="\t";return n+="}"}(e,t);case To.dowhiletrue:return function(e,t){for(var n="\n",i=0;i<t;i++)n+="\t";if(n+=At.getUI("text_code_do")+" { ",e.commands_block)for(i=0;i<e.commands_block.length;i++)n+=ur(e.commands_block[i],t+1);n+="\n";for(i=0;i<t;i++)n+="\t";n+="} "+At.getUI("text_code_do_until"),e.expression||Wi(e.expression.dom_object,At.getUI("inform_valid_expression"));e.expression&&(n+=" ( ",n+=pr(e.expression),n+=" ) ");return n}(e,t);case To.iftrue:return function(e,t){for(var n="\n",i=0;i<t;i++)n+="\t";n+=At.getUI("text_if"),e.expression?(n+=" ( ",n+=pr(e.expression),n+=" ) "):Wi(e.expression.dom_object,At.getUI("inform_valid_expression"));if(n+=" { ",e.commands_block)for(i=0;i<e.commands_block.length;i++)n+=ur(e.commands_block[i],t+1);n+="\n";for(i=0;i<t;i++)n+="\t";if(n+="} "+At.getUI("text_else")+" {",e.commands_else)for(i=0;i<e.commands_else.length;i++)n+=ur(e.commands_else[i],t+1);n+="\n";for(i=0;i<t;i++)n+="\t";return n+="}"}(e,t);case To.repeatNtimes:return function(e,t){for(var n="\n",i=0;i<t;i++)n+="\t";n+=At.getUI("text_for")+" ",e.var_attribution&&(n+=_r(e.var_attribution),n+=" ".concat(At.getUI("text_code_for_from")," "),n+=_r(e.expression1));e.expression2&&(n+=" ".concat(At.getUI("text_code_for_to")," "),n+=_r(e.expression2));if(e.expression3){switch(n+=" ".concat(At.getUI("text_code_for_pass")," "),e.expression3.itens[1]){case Ro.plus:n+=" +";break;case Ro.minus:n+=" -"}n+=_r(e.expression3.itens[2])}if(n+=" { ",e.commands_block)for(i=0;i<e.commands_block.length;i++)n+=ur(e.commands_block[i],t+1);n+="\n";for(i=0;i<t;i++)n+="\t";return n+="}"}(e,t);case To.switch:return function(e,t){for(var n="\n",i=0;i<t;i++)n+="\t";if(n+=At.getUI("text_code_switch")+" ( ",n+=_r(e.variable),n+=" ) { ",e.cases)for(i=0;i<e.cases.length;i++)n+=dr(e.cases[i],t+1);n+="\n";for(i=0;i<t;i++)n+="\t";return n+="} "}(e,t);case To.return:return function(e,t){for(var n="\n",i=0;i<t;i++)n+="\t";if(n+=At.getUI("text_return"),e.variable_value_menu)try{n+=" "+pr(e.variable_value_menu)}catch(e){}return n}(e,t)}}function dr(e,t){for(var n="\n",i=0;i<t;i++)n+="\t";if(n+=At.getUI("text_code_case")+" ",n+=_r(e.variable_value_menu),n+=" :",e.commands_block)for(i=0;i<e.commands_block.length;i++)n+=ur(e.commands_block[i],t+1);return n}function pr(e){for(var t="",n=0;n<e.length;n++)if(e[n].type)t+=_r(e[n]);else if(e[n].type_op)switch(e[n].item){case Ro.plus:t+=" + ";break;case Ro.minus:t+=" - ";break;case Ro.multiplication:t+=" * ";break;case Ro.division:t+=" / ";break;case Ro.module:t+=" % ";break;case Co.equals_to:t+=" == ";break;case Co.not_equals_to:t+=" != ";break;case Co.and:t+=" "+At.getUI("logic_operator_and")+" ";break;case Co.or:t+=" "+At.getUI("logic_operator_or")+" ";break;case Co.not:t+=" "+At.getUI("logic_operator_not")+" ";break;case Io.greater_than:t+=" > ";break;case Io.less_than:t+=" < ";break;case Io.greater_than_or_equals_to:t+=" >= ";break;case Io.less_than_or_equals_to:t+=" <= "}else t+=" "+e[n]+" ";return t}function _r(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n="";try{if(e.function_called){if(e.function_called.name?n+=e.function_called.name+" ( ":n+=At.translateInternalFunction(e.function_called.identifier,e.function_called.category)+" ( ",e.parameters_list)for(var i=0;i<e.parameters_list.length;i++)n+=_r(e.parameters_list[i]),i+1<e.parameters_list.length&&(n+=", ");n+=" )"}else e.content.type?(n+=e.content.name,1==e.content.dimensions&&1!=e.dimensions&&(n+=" [ "+_r(e.column)+" ] "),2==e.content.dimensions&&2!=e.dimensions&&(n+=" [ "+_r(e.row)+" ] ",n+=" [ "+_r(e.column)+" ] ")):isNaN(e.content)?n+='"'+e.content+'"':n+=e.content}catch(n){if(!t)throw Wi(e.dom_object,At.getUI("inform_valid_content")),n}return n}function fr(e){var t="";switch(e.type){case Hi.INTEGER:t+=" "+At.getUI("type_integer")+" ";break;case Hi.REAL:t+=" "+At.getUI("type_real")+" ";break;case Hi.TEXT:t+=" "+At.getUI("type_text")+" ";break;case Hi.BOOLEAN:t+=" "+At.getUI("type_boolean")+" "}return t+=e.name+"",1==e.dimensions?t+=" []":2==e.dimensions&&(t+=" [][]"),t}function mr(e){var t="",n=e;switch(t+="\n\t\t",n.is_constant&&(t+="const "),n.type){case Hi.INTEGER:t+=At.getUI("type_integer")+" ";break;case Hi.REAL:t+=At.getUI("type_real")+" ";break;case Hi.TEXT:t+=At.getUI("type_text")+" ";break;case Hi.BOOLEAN:t+=At.getUI("type_boolean")+" "}if(t+=n.name+" ",1==n.dimensions)switch(t+="["+n.columns+"] ",n.type){case Hi.INTEGER:t+="<- {";for(var i=0;i<n.value.length;i++)t+=n.value[i],i+1<n.value.length&&(t+=", ");t+="}";break;case Hi.REAL:t+="<- {";for(i=0;i<n.value.length;i++)t+=n.value[i].toFixed(2),i+1<n.value.length&&(t+=", ");t+="}";break;case Hi.TEXT:t+="<- {";for(i=0;i<n.value.length;i++)t+='"'+n.value[i]+'"',i+1<n.value.length&&(t+=", ");t+="}";break;case Hi.BOOLEAN:t+="<- {";for(i=0;i<n.value.length;i++)n.value[i]?t+=At.getUI("logic_value_true"):t+=At.getUI("logic_value_false"),i+1<n.value.length&&(t+=", ");t+="}"}else if(2==n.dimensions)switch(t+="["+n.rows+"]["+n.columns+"] ",n.type){case Hi.INTEGER:t+="<- {";for(i=0;i<n.rows;i++){t+="{";for(var o=0;o<n.columns;o++)t+=n.value[i][o],o+1<n.columns&&(t+=", ");t+="}",i+1<n.rows&&(t+=", ")}t+="}";break;case Hi.REAL:t+="<- {";for(i=0;i<n.rows;i++){t+="{";for(o=0;o<n.columns;o++)t+=n.value[i][o].toFixed(2),o+1<n.columns&&(t+=", ");t+="}",i+1<n.rows&&(t+=", ")}t+="}";break;case Hi.TEXT:t+="<- {";for(i=0;i<n.rows;i++){t+="{";for(o=0;o<n.columns;o++)t+='"'+n.value[i][o]+'"',o+1<n.columns&&(t+=", ");t+="}",i+1<n.rows&&(t+=", ")}t+="}";break;case Hi.BOOLEAN:t+="<- {";for(i=0;i<n.rows;i++){t+="{";for(o=0;o<n.columns;o++)n.value[i][o]?t+=At.getUI("logic_value_true"):t+=At.getUI("logic_value_false"),o+1<n.columns&&(t+=", ");t+="}",i+1<n.rows&&(t+=", ")}t+="}"}else switch(n.type){case Hi.INTEGER:t+="<- "+n.value;break;case Hi.REAL:t+="<- "+n.value.toFixed(2);break;case Hi.TEXT:t+='<- "'+n.value+'"';break;case Hi.BOOLEAN:t+="<- ",n.value?t+=At.getUI("logic_value_true"):t+=At.getUI("logic_value_false")}return t}function vr(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}$.fn.textWidth=function(e,t){return $.fn.textWidth.fakeEl||($.fn.textWidth.fakeEl=$("<span>").hide().appendTo(document.body)),$.fn.textWidth.fakeEl.text(e||this.val()||this.text()||this.attr("placeholder")).css("font",t||this.css("font")),$.fn.textWidth.fakeEl.width()},window.function_container_active=null,window.divx=100,window.ghostDiv=$('<div class="ghost_div">'),window.active_container=null;var hr=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,n,i;return t=e,(n=[{key:"requestInput",value:function(e){throw new Error("Must be implemented")}},{key:"cancelPendingInputRequests",value:function(){throw new Error("Must be implemented")}}])&&vr(t.prototype,n),i&&vr(t,i),e}();function yr(e){return(yr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function gr(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function br(e,t){return!t||"object"!==yr(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function wr(e){return(wr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function xr(e,t){return(xr=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Er=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=br(this,wr(t).call(this))).index=0,n.input_list=e.map((function(e){return{value:e,read:!1}})),n}var n,i,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&xr(e,t)}(t,e),n=t,(i=[{key:"requestInput",value:function(e){if(!(this.index<this.input_list.length))throw new Error(At.getError("exceeded_input_request"));var t=this.input_list[this.index];t.read=!0,this.index+=1,e(t.value)}},{key:"isInputAvailable",value:function(){return this.index<this.input_list.length}}])&&gr(n.prototype,i),o&&gr(n,o),t}(hr);function Tr(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function Rr(e){return(Rr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ar(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function Or(e,t){return!t||"object"!==Rr(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Ir(e){return(Ir=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Cr(e,t){return(Cr=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Nr=function(e){function t(){var e;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(e=Or(this,Ir(t).call(this))).list=[],e}var n,i,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Cr(e,t)}(t,e),n=t,(i=[{key:"sendOutput",value:function(e){var t=this;(""+e).split("\n").forEach((function(e){e=(e=e.replace(/\t/g," ")).replace(/\s/g," "),t.list.push(e)}),this)}}])&&Ar(n.prototype,i),o&&Ar(n,o),t}(function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,n,i;return t=e,(n=[{key:"sendOutput",value:function(e){throw new Error("Must be implemented")}}])&&Tr(t.prototype,n),i&&Tr(t,i),e}()),Sr=-1,kr=1,Lr=0;function $r(e,t,n,i){if(e===t)return e?[[Lr,e]]:[];if(null!=n){var o=function(e,t,n){var i="number"==typeof n?{index:n,length:0}:n.oldRange,o="number"==typeof n?null:n.newRange,a=e.length,r=t.length;if(0===i.length&&(null===o||0===o.length)){var s=i.index,l=e.slice(0,s),c=e.slice(s),u=o?o.index:null,d=s+r-a;if((null===u||u===d)&&!(d<0||d>r)){var p=t.slice(0,d);if(t.slice(d)===c){var _=Math.min(s,d),f=l.slice(0,_),m=p.slice(0,_);if(f===m){var v=l.slice(_),h=p.slice(_);return Gr(f,v,h,c)}}}if(null===u||u===s){var y=s,g=t.slice(0,y),b=t.slice(y);if(g===l){var w=Math.min(a-y,r-y),x=c.slice(c.length-w),E=b.slice(b.length-w);if(x===E){var T=c.slice(0,c.length-w),R=b.slice(0,b.length-w);return Gr(l,T,R,x)}}}}if(i.length>0&&o&&0===o.length){var A=e.slice(0,i.index),O=e.slice(i.index+i.length),I=A.length,C=O.length;if(!(r<I+C)){var N=t.slice(0,I),S=t.slice(r-C);if(A===N&&O===S){var k=e.slice(I,a-C),L=t.slice(I,r-C);return Gr(A,k,L,O)}}}return null}(e,t,n);if(o)return o}var a=Pr(e,t),r=e.substring(0,a);a=Mr(e=e.substring(a),t=t.substring(a));var s=e.substring(e.length-a),l=function(e,t){var n;if(!e)return[[kr,t]];if(!t)return[[Sr,e]];var i=e.length>t.length?e:t,o=e.length>t.length?t:e,a=i.indexOf(o);if(-1!==a)return n=[[kr,i.substring(0,a)],[Lr,o],[kr,i.substring(a+o.length)]],e.length>t.length&&(n[0][0]=n[2][0]=Sr),n;if(1===o.length)return[[Sr,e],[kr,t]];var r=function(e,t){var n=e.length>t.length?e:t,i=e.length>t.length?t:e;if(n.length<4||2*i.length<n.length)return null;function o(e,t,n){for(var i,o,a,r,s=e.substring(n,n+Math.floor(e.length/4)),l=-1,c="";-1!==(l=t.indexOf(s,l+1));){var u=Pr(e.substring(n),t.substring(l)),d=Mr(e.substring(0,n),t.substring(0,l));c.length<d+u&&(c=t.substring(l-d,l)+t.substring(l,l+u),i=e.substring(0,n-d),o=e.substring(n+u),a=t.substring(0,l-d),r=t.substring(l+u))}return 2*c.length>=e.length?[i,o,a,r,c]:null}var a,r,s,l,c,u=o(n,i,Math.ceil(n.length/4)),d=o(n,i,Math.ceil(n.length/2));if(!u&&!d)return null;a=d?u&&u[4].length>d[4].length?u:d:u;e.length>t.length?(r=a[0],s=a[1],l=a[2],c=a[3]):(l=a[0],c=a[1],r=a[2],s=a[3]);var p=a[4];return[r,s,l,c,p]}(e,t);if(r){var s=r[0],l=r[1],c=r[2],u=r[3],d=r[4],p=$r(s,c),_=$r(l,u);return p.concat([[Lr,d]],_)}return function(e,t){for(var n=e.length,i=t.length,o=Math.ceil((n+i)/2),a=o,r=2*o,s=new Array(r),l=new Array(r),c=0;c<r;c++)s[c]=-1,l[c]=-1;s[a+1]=0,l[a+1]=0;for(var u=n-i,d=u%2!=0,p=0,_=0,f=0,m=0,v=0;v<o;v++){for(var h=-v+p;h<=v-_;h+=2){for(var y=a+h,g=void 0,b=(g=h===-v||h!==v&&s[y-1]<s[y+1]?s[y+1]:s[y-1]+1)-h;g<n&&b<i&&e.charAt(g)===t.charAt(b);)g++,b++;if(s[y]=g,g>n)_+=2;else if(b>i)p+=2;else if(d){var w=a+u-h;if(w>=0&&w<r&&-1!==l[w]){var x=n-l[w];if(g>=x)return Ur(e,t,g,b)}}}for(var E=-v+f;E<=v-m;E+=2){for(var T=a+E,R=void 0,A=(R=E===-v||E!==v&&l[T-1]<l[T+1]?l[T+1]:l[T-1]+1)-E;R<n&&A<i&&e.charAt(n-R-1)===t.charAt(i-A-1);)R++,A++;if(l[T]=R,R>n)m+=2;else if(A>i)f+=2;else if(!d){var O=a+u-E;if(O>=0&&O<r&&-1!==s[O]){var I=s[O],C=a+I-O;if(I>=(R=n-R))return Ur(e,t,I,C)}}}}return[[Sr,e],[kr,t]]}(e,t)}(e=e.substring(0,e.length-a),t=t.substring(0,t.length-a));return r&&l.unshift([Lr,r]),s&&l.push([Lr,s]),function e(t,n){t.push([Lr,""]);var i=0;var o=0;var a=0;var r="";var s="";var l;var c;for(;i<t.length;)if(i<t.length-1&&!t[i][1])t.splice(i,1);else switch(t[i][0]){case kr:a++,s+=t[i][1],i++;break;case Sr:o++,r+=t[i][1],i++;break;case Lr:if(c=i-a-o-1,n){if(c>=0&&Br(t[c][1])){var u=t[c][1].slice(-1);if(t[c][1]=t[c][1].slice(0,-1),r=u+r,s=u+s,!t[c][1]){t.splice(c,1),i--;var d=c-1;t[d]&&t[d][0]===kr&&(a++,s=t[d][1]+s,d--),t[d]&&t[d][0]===Sr&&(o++,r=t[d][1]+r,d--),c=d}}if(Kr(t[i][1])){var p=t[i][1].charAt(0);t[i][1]=t[i][1].slice(1),r+=p,s+=p}}if(i<t.length-1&&!t[i][1]){t.splice(i,1);break}if(r.length>0||s.length>0){r.length>0&&s.length>0&&(0!==(l=Pr(s,r))&&(c>=0?t[c][1]+=s.substring(0,l):(t.splice(0,0,[Lr,s.substring(0,l)]),i++),s=s.substring(l),r=r.substring(l)),0!==(l=Mr(s,r))&&(t[i][1]=s.substring(s.length-l)+t[i][1],s=s.substring(0,s.length-l),r=r.substring(0,r.length-l)));var _=a+o;0===r.length&&0===s.length?(t.splice(i-_,_),i-=_):0===r.length?(t.splice(i-_,_,[kr,s]),i=i-_+1):0===s.length?(t.splice(i-_,_,[Sr,r]),i=i-_+1):(t.splice(i-_,_,[Sr,r],[kr,s]),i=i-_+2)}0!==i&&t[i-1][0]===Lr?(t[i-1][1]+=t[i][1],t.splice(i,1)):i++,a=0,o=0,r="",s=""}""===t[t.length-1][1]&&t.pop();var f=!1;i=1;for(;i<t.length-1;)t[i-1][0]===Lr&&t[i+1][0]===Lr&&(t[i][1].substring(t[i][1].length-t[i-1][1].length)===t[i-1][1]?(t[i][1]=t[i-1][1]+t[i][1].substring(0,t[i][1].length-t[i-1][1].length),t[i+1][1]=t[i-1][1]+t[i+1][1],t.splice(i-1,1),f=!0):t[i][1].substring(0,t[i+1][1].length)==t[i+1][1]&&(t[i-1][1]+=t[i+1][1],t[i][1]=t[i][1].substring(t[i+1][1].length)+t[i+1][1],t.splice(i+1,1),f=!0)),i++;f&&e(t,n)}(l,i),l}function Ur(e,t,n,i){var o=e.substring(0,n),a=t.substring(0,i),r=e.substring(n),s=t.substring(i),l=$r(o,a),c=$r(r,s);return l.concat(c)}function Pr(e,t){if(!e||!t||e.charAt(0)!==t.charAt(0))return 0;for(var n=0,i=Math.min(e.length,t.length),o=i,a=0;n<o;)e.substring(a,o)==t.substring(a,o)?a=n=o:i=o,o=Math.floor((i-n)/2+n);return Fr(e.charCodeAt(o-1))&&o--,o}function Mr(e,t){if(!e||!t||e.slice(-1)!==t.slice(-1))return 0;for(var n=0,i=Math.min(e.length,t.length),o=i,a=0;n<o;)e.substring(e.length-o,e.length-a)==t.substring(t.length-o,t.length-a)?a=n=o:i=o,o=Math.floor((i-n)/2+n);return jr(e.charCodeAt(e.length-o))&&o--,o}function Fr(e){return e>=55296&&e<=56319}function jr(e){return e>=56320&&e<=57343}function Kr(e){return jr(e.charCodeAt(0))}function Br(e){return Fr(e.charCodeAt(e.length-1))}function Gr(e,t,n,i){return Br(e)||Kr(i)?null:function(e){for(var t=[],n=0;n<e.length;n++)e[n][1].length>0&&t.push(e[n]);return t}([[Lr,e],[Sr,t],[kr,n],[Lr,i]])}function Dr(e,t,n){return $r(e,t,n,!0)}Dr.INSERT=kr,Dr.DELETE=Sr,Dr.EQUAL=Lr;var Vr=Dr;function qr(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function Hr(e,t,n){return t&&qr(e.prototype,t),n&&qr(e,n),e}var zr=function(){function e(t,n,i,o,a,r){var s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:"";!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.name=t,this.status=n,this.inputs=i,this.results=o,this.store=a,this.time=r,this.error_msg=s}return Hr(e,null,[{key:"PAGE_TEMPLATE",get:function(){return"<!DOCTYPE html>\n <html>\n <head>\n <meta http-equiv='content-type' content='text/html; charset=UTF-8'>\n <link rel='stylesheet' href='css/ivprog-assessment.css' type='text/css'/>\n </head>\n <body>\n :assessment-result:\n </body>\n </html>"}},{key:"DETAIL_TEMPLATE",get:function(){return"<div class='details-body'>\n <div class='details-header'>\n <h2>:test-name:</h2>\n <p>:time-label:: <span>:time:ms</span></p>\n <p>:grade-label:: <span>:grade:%</span></p>\n </div>\n <div>\n <h3>:input-label:</h3>\n <ul>\n <li>:input-list:</li>\n </ul>\n </div>\n <div>\n <h3>:output-label:</h3>\n :output-result:\n </div>\n </div>"}},{key:"OUPUT_TABLE_TEMPLATE",get:function(){return"<div class='detaisl-div-table'>\n <table class='assessment-output-table'>\n <tr>\n <th>:expected-label:</th>\n <th>:generated-label:</th>\n <th>:result-label:</th>\n </tr>\n :results:\n </table>\n </div>"}},{key:"OUTPUT_TEMPLATE",get:function(){return"<tr><td class=':class-expected:'>$0</td>\n <td class=':class-generated:'>$1</td>\n <td class=':class-result:'>$2</td></tr>"}},{key:"EMPTY_OUTPUT_TEMPLATE",get:function(){return"<div class='assessment-popup'><img class='assessment-empty-output' src='img/empty.svg'>\n <span class='assessment-popuptext'>$0</span></div>"}},{key:"FAILED_TEMPLATE",get:function(){return"<p class='assessment-failed-execution'><span class='assessment-failed-case'>✗</span>$0</p>"}},{key:"INPUT_INFO_TEMPLATE",get:function(){return"<span class='$0'>$1</span>"}}]),Hr(e,[{key:"prepareResults",value:function(){var t=this,n=e.DETAIL_TEMPLATE,i=(100*this.grade).toFixed(2),o=this.time||"-";n=(n=(n=(n=(n=n.replace(":test-name:",At.getUI("assessment-detail-title",[this.name+1]))).replace(":time-label:",At.getUI("assessment-detail-time-label"))).replace(":time:",o)).replace(":grade-label:",At.getUI("assessment-detail-grade-label"))).replace(":grade:",i);var a=this.prepareInputList(this.inputs);if(n=(n=(n=n.replace(":input-label:",At.getUI("assessment-detail-input-label"))).replace(":input-list:",a)).replace(":output-label:",At.getUI("assessment-detail-output-label")),0==this.status){var r=this.results.map((function(e){return"string"==e.type?t.formatString(e):"number"==e.type?t.formatNumber(e):t.formatBool(e)}),this);n=n.replace(":output-result:",this.prepareOutputTable(r))}else{var s=e.FAILED_TEMPLATE;s=s.replace("$0",this.error_msg),n=n.replace(":output-result:",s)}return n}},{key:"prepareInputList",value:function(t){return t.map((function(t){var n=e.INPUT_INFO_TEMPLATE;return n=n.replace("$1",t.value),n=t.read?n.replace("$0","assessment-input-read"):n.replace("$0","assessment-input-unread")}),this).join(At.getUI("text_join_assessment_outputs"))}},{key:"prepareOutputTable",value:function(t){var n=e.OUPUT_TABLE_TEMPLATE;return n=(n=(n=(n=n.replace(":expected-label:",At.getUI("assessment-detail-expected-label"))).replace(":generated-label:",At.getUI("assessment-detail-generated-label"))).replace(":result-label:",At.getUI("assessment-detail-result-label"))).replace(":results:",t.join(""))}},{key:"generateOutput",value:function(){var t=this.prepareResults(),n=e.PAGE_TEMPLATE;return n=(n=n.replace(":assessment-result:",t)).replace(/(\r|\n|\t)/gm,"").replace(/> *</g,"><")}},{key:"formatNumber",value:function(e){var t=1==e.grade?"assessment-number-result":"assessment-number-result-failed";return this.formatOutput("assessment-number-expected","assessment-number-generated",t,e)}},{key:"formatBool",value:function(e){var t=1==e.grade?"assessment-bool-result":"assessment-bool-result-failed";return this.formatOutput("assessment-bool-expected","assessment-bool-generated",t,e)}},{key:"formatOutput",value:function(t,n,i,o){var a=e.OUTPUT_TEMPLATE;a=(a=(a=a.replace(":class-expected:",t)).replace(":class-generated:",n)).replace(":class-result:",i);var r=o.expected,s=o.generated;null==r?r=e.EMPTY_OUTPUT_TEMPLATE.replace("$0",At.getMessage("assessment-empty-expected-tooltip")):null==s&&(s=e.EMPTY_OUTPUT_TEMPLATE.replace("$0",At.getMessage("assessment-empty-generated-tooltip"))),a=(a=a.replace("$0",r)).replace("$1",s);var l=1==o.grade?"✓":"✗";return a=a.replace("$2",l)}},{key:"formatString",value:function(t){var n=this,i=e.OUTPUT_TEMPLATE;i=(i=i.replace(":class-expected:","assessment-string-expected")).replace(":class-generated:","assessment-string-generated");var o=t.generated||"",a=t.expected||"",r=o,s=a;if(null==t.generated?r=e.EMPTY_OUTPUT_TEMPLATE.replace("$0",At.getMessage("assessment-empty-generated-tooltip")):null==t.expected&&(s=e.EMPTY_OUTPUT_TEMPLATE.replace("$0",At.getMessage("assessment-empty-expected-tooltip"))),i=(i=i.replace("$0",s)).replace("$1",r),1==t.grade)i=(i=i.replace("$2","✓")).replace(":class-result:","assessment-string-result");else{var l=Vr(o,a).map((function(e){return n.getDiffStringStyle(e[1],e[0])}),this).reduce((function(e,t){return e+t}),"");i=(i=i.replace("$2","<span class='assessment-failed-case'>✗</span>"+l)).replace(":class-result:","assessment-string-diff")}return i}},{key:"getDiffStringStyle",value:function(e,t){var n="<span class='$0'>$1</span>";switch(e=e.replace(/\s/g," "),t){case Vr.INSERT:return n.replace("$0","stringdiff-insert").replace("$1",e);case Vr.DELETE:return n.replace("$0","stringdiff-delete").replace("$1",e);case Vr.EQUAL:return n.replace("$0","stringdiff-equal").replace("$1",e)}}},{key:"grade",get:function(){return null==this.results?0:this.results.reduce((function(e,t){return e+t.grade}),0)/this.results.length}}]),e}();function Xr(e,t,n){return new Qr(e,t,n,"number")}function Wr(e,t,n){return new Qr(e,t,n,"bool")}var Qr=function e(t,n,i,o){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.expected=t,this.generated=n,this.grade=i,this.type=o};function Yr(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function Jr(e,t,n){return t&&Yr(e.prototype,t),n&&Yr(e,n),e}var Zr=It(),es=function(){function e(t,n,i,o){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.program=t,this.name=o,this.input_list=n,this.expected_output=i}return Jr(e,null,[{key:"NUM_REGEX",get:function(){return/^[+-]?([0-9]+([.][0-9]*)?(e[+-]?[0-9]+)?)$/}},{key:"NUM_IN_STRING_REGEX",get:function(){return/[+-]?([0-9]+([.][0-9]*)?(e[+-]?[0-9]+)?)/g}},{key:"BOOLEAN_REGEX",get:function(){var e="^(".concat(Zr.getUI("logic_value_true"),"|").concat(Zr.getUI("logic_value_false"),")$");return new RegExp(e)}},{key:"BOOLEAN_IN_STRING_REGEX",get:function(){var e="(".concat(Zr.getUI("logic_value_true"),"|").concat(Zr.getUI("logic_value_false"),")");return new RegExp(e,"g")}}]),Jr(e,[{key:"eval",value:function(){var e=this,t=this,n=new Er(this.input_list),i=new Nr;this.program.registerInput(n),this.program.registerOutput(i);var o=Date.now();return this.program.interpretAST().then((function(a){var r=Date.now()-o;if(n.isInputAvailable())return new zr(e.name,1,n.input_list,null,a,r,t.getErrorMessage("test_case_few_reads",e.name+1));var s=i.list.map((function(t,n){return n>=e.expected_output.length?new Qr(null,t,0,e.getPotentialOutputType(t)):e.outputMatch(t,e.expected_output[n])}),e);if(e.expected_output.length>i.list.length){console.log("Saída insuficientes!",e.expected_output.length,i.list.length);for(var l=i.list.length;l<e.expected_output.length;++l){var c=e.expected_output[l];s.push(new Qr(c,null,0,e.getPotentialOutputType(c)))}}else 0==e.expected_output.length&&e.expected_output.length==i.list.length&&s.push(new Qr("","",1,"string"));return new zr(e.name,0,n.input_list,s,a,r)})).catch((function(i){return new zr(e.name,1,n.input_list,null,null,null,t.getErrorMessage("test_case_exception",e.name+1,i.message))}))}},{key:"getPotentialOutputType",value:function(t){return e.NUM_REGEX.test(t)?"number":e.BOOLEAN_REGEX.test(t)?"bool":"string"}},{key:"outputMatch",value:function(t,n){if(e.NUM_REGEX.test(n)){if(!e.NUM_REGEX.test(t))return this.checkStrings(t,n);var i=new Xe.Decimal(t),o=new Xe.Decimal(n);return this.checkNumbers(i,o)}if(e.BOOLEAN_REGEX.test(n)){if(!e.BOOLEAN_REGEX.test(t))return this.checkStrings(t,n);var a=Ze(t),r=Ze(n);return this.checkBoolean(a,r)}return this.checkStrings(t,n)}},{key:"checkNumbers",value:function(e,t){var n=Math.min(t.dp(),y.decimalPlaces);e=new Xe.Decimal(e.toFixed(n,Xe.Decimal.ROUND_FLOOR)),t=new Xe.Decimal(t.toFixed(n,Xe.Decimal.ROUND_FLOOR));var i=e.eq(t)?1:0;return Xr(t.toNumber(),e.toNumber(),i)}},{key:"checkBoolean",value:function(e,t){var n=e==t?1:0,i=et(e);return Wr(et(t),i,n)}},{key:"checkStrings",value:function(t,n){var i=this,o=[],a=n.trim(),r=t.trim();if(e.NUM_IN_STRING_REGEX.test(n)){var s=n.match(e.NUM_IN_STRING_REGEX),l=t.match(e.NUM_IN_STRING_REGEX)||[],c=l.map((function(e,t){if(t>=s.length)return Xr(null,e,0);var n=new Xe.Decimal(e),o=new Xe.Decimal(s[t]);return i.checkNumbers(n,o)}),this);if(s.length>l.length)for(var u=l.length;u<s.length;++u)c.push(Xr(s[u],null,0));a=a.replace(e.NUM_IN_STRING_REGEX,""),r=r.replace(e.NUM_IN_STRING_REGEX,"");var d=c.reduce((function(e,t){return e+t.grade}),0)/c.length;o.push(d)}if(e.BOOLEAN_IN_STRING_REGEX.test(n)){var p=n.match(e.BOOLEAN_IN_STRING_REGEX),_=t.match(e.BOOLEAN_IN_STRING_REGEX)||[],f=_.map((function(e,t){if(t>=p.length)return Wr(null,e,0);var n=Ze(e),o=Ze(p[t]);return i.checkBoolean(n,o)}),this);if(p.length>_.length)for(var m=_.length;m<p.length;++m)f.push(Wr(p[m],null,0));a=a.replace(e.BOOLEAN_IN_STRING_REGEX,""),r=r.replace(e.BOOLEAN_IN_STRING_REGEX,"");var v=f.reduce((function(e,t){return e+t.grade}),0)/f.length;o.push(v)}var h=function(e,t){if(0==e.length)return t.length;if(0==t.length)return e.length;var n,i,o=[];for(n=0;n<=t.length;n++)o[n]=[n];for(i=0;i<=e.length;i++)o[0][i]=i;for(n=1;n<=t.length;n++)for(i=1;i<=e.length;i++)t.charCodeAt(n-1)==e.charCodeAt(i-1)?o[n][i]=o[n-1][i-1]:o[n][i]=Math.min(o[n-1][i-1]+1,Math.min(o[n][i-1]+1,o[n-1][i]+1));return o[t.length][e.length]}(r,a),y=Math.max(0,a.length-h)/a.length;y=Number.isNaN(y)?0:y;var g=o.length+1,b=o.reduce((function(e,t){return e+t/g}),0);return new Qr(n,t,1*(y/g+b),"string")}},{key:"getErrorMessage",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return Zr.getError(e,n)}}]),e}();function ts(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var ns=It(),is=v.a.StringTypes,os={max_instruction_count:350250,suspend_threshold:200},as=function(){function e(t,n,i){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.ast_code=t,this.testCases=n,this.domConsole=i,this.old_config=JSON.parse(JSON.stringify(y)),y.setConfig(os)}var t,n,i;return t=e,(n=[{key:"runTest",value:function(){var e=this;try{var t=this.testCases.map((function(t,n){return new es(new ki(e.ast_code),t.input,t.output,n)})).map((function(e){return e.eval()}));return Promise.all(t).then((function(t){for(var n=0,i=0;i<t.length;i+=1){var o=t[i];n+=o.grade,1==o.grade?e.writeToConsole(Bi.INFO,is.MESSAGE,"test_case_success",o.name+1,o.generateOutput()):1==o.status?e.writeToConsole(Bi.ERR,is.ERROR,"test_case_failed_exception",o.name+1,o.error_msg,o.generateOutput()):e.writeToConsole(Bi.ERR,is.ERROR,"test_case_failed",o.name+1,o.generateOutput())}var a=1==(n/=t.length)?Bi.INFO:Bi.ERR;return e.writeToConsole(a,is.MESSAGE,"test_suite_grade",(100*n).toFixed(2)),n}))}catch(e){return this.showErrorMessage(Bi.ERR,is.MESSAGE,"unexpected_execution_error"),this.domConsole.err(e.message),Promise.resolve(0)}finally{y.setConfig(this.old_config)}}},{key:"showErrorMessage",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];this.domConsole.err(ns.getError(e,n))}},{key:"showInfoMessage",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];this.domConsole.info(ns.getMessage(e,n))}},{key:"writeToConsole",value:function(e,t,n){for(var i=ns.getString(n,t),o=arguments.length,a=new Array(o>3?o-3:0),r=3;r<o;r++)a[r-3]=arguments[r];switch(i=ns.processString(i,a),e){case Bi.ERR:this.domConsole.err(i);break;case Bi.INFO:this.domConsole.info(i);break;case Bi.USER:this.domConsole.write(i)}}}])&&ts(t.prototype,n),i&&ts(t,i),e}(),rs=n(54),ss=n(25);n(79),n(80),n(81);!function(e){function t(e,t,n,i,o,a){this.indented=e,this.column=t,this.type=n,this.info=i,this.align=o,this.prev=a}function n(e,n,i,o){var a=e.indented;return e.context&&"statement"==e.context.type&&"statement"!=i&&(a=e.context.indented),e.context=new t(a,n,i,o,null,e.context)}function i(e){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}function o(e,t,n){return"variable"==t.prevToken||"type"==t.prevToken||(!!/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(e.string.slice(0,n))||(!(!t.typeAtEndOfLine||e.column()!=e.indentation())||void 0))}function a(e){for(;;){if(!e||"top"==e.type)return!0;if("}"==e.type&&"namespace"!=e.prev.info)return!1;e=e.prev}}function r(e,t){return"function"==typeof e?e(t):Object.propertyIsEnumerable.call(e,t)}function s(e,t){for(var n,i=!1;n=e.next();){if("/"==n&&i){t.tokenize=null;break}i="*"==n}return"comment"}function l(e){for(var t={},n=e.split(" "),i=0;i<n.length;++i)t[n[i]]=!0;return t}e.defineMode("ivprog",(function(l,c){var u,d,p=l.indentUnit,_=c.statementIndentUnit||p,f=c.dontAlignCalls,m=c.keywords||{},v=c.switchKeyword,h=c.caseKeyword,y=c.defaultKeyword,g=new RegExp("^\\s*(?:".concat(h," .*?:|").concat(y,":|\\{\\}?|\\})$")),b=c.types||{},w=c.builtin||{},x=c.blockKeywords||{},E=c.defKeywords||{},T=c.atoms||{},R=c.hooks||{},A=c.multiLineStrings,O=null,I=/[[\]{}(),;:\n]/,C=/[\d.]/,N=/^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)$/i,S=/[+\-*%=<>!/&]/,k=/[a-zA-Z0-9_]/,L=c.isReservedIdentifier||!1,$=function(){};function U(e,t){var n=e.next();if(R[n]){var i=R[n](e,t);if(!1!==i)return i}if('"'==n)return t.tokenize=$(n),t.tokenize(e,t);if(I.test(n))return u=n,null;if(C.test(n)){if(e.backUp(1),e.match(N))return"number";e.next()}if("/"==n){if(e.eat("*"))return t.tokenize=s,s(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(S.test(n)){for(;!e.match(/^\/[/*]/,!1)&&e.eat(S););return"operator"}if(e.eatWhile(k),O)for(;e.match(O);)e.eatWhile(k);var o=e.current();return r(m,o)?(r(x,o)&&(u="newstatement"),r(E,o)&&(d=!0),"keyword"):r(b,o)?"type":r(w,o)||L&&L(o)?(r(x,o)&&(u="newstatement"),"builtin"):r(T,o)?"atom":"variable"}function P(e,t){c.typeFirstDefinitions&&e.eol()&&a(t.context)&&(t.typeAtEndOfLine=o(e,t,e.pos))}return $=function(e){return function(t,n){for(var i,o=!1,a=!1;null!=(i=t.next());){if(i==e&&!o){a=!0;break}o=!o&&"\\"==i}return(a||!o&&!A)&&(n.tokenize=null),"string"}},{startState:function(e){return{tokenize:null,context:new t((e||0)-p,0,"top",null,!1),indented:0,startOfLine:!0,prevToken:null}},token:function(e,t){var r=t.context;if(e.sol()&&(null==r.align&&(r.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return P(e,t),null;u=d=null;var s=(t.tokenize||U)(e,t);if("comment"==s||"meta"==s)return s;if(null==r.align&&(r.align=!0),";"==u||":"==u||","==u&&e.match(/^\s*(?:\/\/.*)?$/,!1))for(;"statement"==t.context.type;)i(t);else if("{"==u)n(t,e.column(),"}");else if("["==u)n(t,e.column(),"]");else if("("==u)n(t,e.column(),")");else if("}"==u){for(;"statement"==r.type;)r=i(t);for("}"==r.type&&(r=i(t));"statement"==r.type;)r=i(t)}else u==r.type&&i(t);if("variable"==s&&("def"==t.prevToken||c.typeFirstDefinitions&&o(e,t,e.start)&&a(t.context)&&e.match(/^\s*\(/,!1))&&(s="def"),R.token){var l=R.token(e,t,s);void 0!==l&&(s=l)}return"def"==s&&!1===c.styleDefs&&(s="variable"),t.startOfLine=!1,t.prevToken=d?"def":s||u,P(e,t),s},indent:function(t,n){if(t.tokenize!=U&&null!=t.tokenize||t.typeAtEndOfLine)return e.Pass;var i=t.context,o=n&&n.charAt(0),a=o==i.type;if("statement"==i.type&&"}"==o&&(i=i.prev),c.dontIndentStatements)for(;"statement"==i.type&&c.dontIndentStatements.test(i.info);)i=i.prev;if(R.indent){var r=R.indent(t,i,n,p);if("number"==typeof r)return r}var s=i.prev&&i.prev.info==v;if(c.allmanIndentation&&/[{(]/.test(o)){for(;"top"!=i.type&&"}"!=i.type;)i=i.prev;return i.indented}if("statement"==i.type)return i.indented+("{"==o?0:_);if(i.align&&(!f||")"!=i.type))return i.column+(a?0:1);if(")"==i.type&&!a)return i.indented+_;var l=new RegExp("^(?:".concat(h,"|").concat(y,")\b"));return i.indented+(a?0:p)+(a||!s||l.test(n)?0:p)},electricInput:g,blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:"//",fold:"brace"}}));var c=function(){var e=[],t=[],n=[],i=[],o=[],a="";Li=[];var r=T.getCurrentLexer(),s=new r;["RK_SWITCH","RK_PROGRAM","RK_CASE","RK_DEFAULT","RK_FOR","RK_FOR_ALT","RK_FUNCTION","RK_DO","RK_WHILE","RK_WHILE_ALT","RK_IF","RK_ELSE"].forEach((function(i){var o=s.literalNames[r[i]],l=o.substring(1,o.length-1);Li.push(l),n.push(l),t.push(l),"RK_SWITCH"==i?a=l:"RK_CASE"!=i&&"RK_DEFAULT"!=i||e.push(l)})),["RK_CONST","RK_RETURN","RK_BREAK","RK_FOR_FROM","RK_FOR_TO","RK_FOR_PASS","RK_DO_UNTIL"].forEach((function(e){var t=s.literalNames[r[e]],i=t.substring(1,t.length-1);Li.push(i),n.push(i)})),["RK_REAL","RK_VOID","RK_BOOLEAN","RK_STRING","RK_INTEGER"].forEach((function(e){var t=s.literalNames[r[e]],n=t.substring(1,t.length-1);Li.push(n),i.push(n)})),["RK_FALSE","RK_TRUE"].forEach((function(e){var t=s.literalNames[r[e]],n=t.substring(1,t.length-1);Li.push(n),o.push(n)})),$i=[];for(var l=[yt.AND.value,yt.OR.value,yt.NOT.value],c=0;c<l.length;++c){var u="logic_operator_".concat(l[c]),d=At.getUI(u);$i.push(d),n.push(d)}return{case_default:e,atoms:o,keywords:n,switchString:a,types:i,blocks:t}}(),u=c.keywords.join(" "),d=l(c.types.join(" ")),p=c.blocks.join(" ");!function(t,n){"string"==typeof t&&(t=[t]);var i=[];function o(e){if(e)for(var t in e)Object.hasOwnProperty.call(e,t)&&i.push(t)}o(n.keywords),o(n.types),o(n.builtin),o(n.atoms),i.length&&(n.helperType=t[0],e.registerHelper("hintWords",t[0],i));for(var a=0;a<t.length;++a)e.defineMIME(t[a],n)}(["text/x-ivprog"],{name:"ivprog",keywords:l(u),types:function(e){return r(d,e)},blockKeywords:l(p),defKeywords:l("funcao const"),typeFirstDefinitions:!0,atoms:l(c.atoms.join(" ")),switchKeyword:c.switchString,caseKeyword:c.case_default[0],defaultKeyword:c.case_default[1],modeProps:{fold:["brace"]}})}(ss);var ls=null;function cs(){ls.refresh()}function us(e){ls.setValue(e)}function ds(){return ls.getValue()}var ps=0,_s=0,fs=rs.version,ms=[],vs=[],hs=null,ys=null,gs=[],bs=!1;window.studentGrade=null,window.LocalizedStrings=At;var ws=new Yo;window.system_functions=[],window.system_functions.push(new Lo("$sin",Hi.REAL,0,[new Qo(ka.all,null,null,null,!0)],null,No.math)),window.system_functions.push(new Lo("$cos",Hi.REAL,0,[new Qo(ka.all,null,null,null,!0)],null,No.math)),window.system_functions.push(new Lo("$tan",Hi.REAL,0,[new Qo(ka.all,null,null,null,!0)],null,No.math)),window.system_functions.push(new Lo("$sqrt",Hi.REAL,0,[new Qo(ka.all,null,null,null,!0)],null,No.math)),window.system_functions.push(new Lo("$pow",Hi.REAL,0,[new Qo(ka.all,null,null,null,!0),new Qo(ka.all,null,null,null,!0)],null,No.math)),window.system_functions.push(new Lo("$log",Hi.REAL,0,[new Qo(ka.all,null,null,null,!0)],null,No.math)),window.system_functions.push(new Lo("$abs",Hi.REAL,0,[new Qo(ka.all,null,null,null,!0)],null,No.math)),window.system_functions.push(new Lo("$negate",Hi.REAL,0,[new Qo(ka.all,null,null,null,!0)],null,No.math)),window.system_functions.push(new Lo("$invert",Hi.REAL,0,[new Qo(ka.all,null,null,null,!0)],null,No.math)),window.system_functions.push(new Lo("$max",Hi.REAL,0,[new Qo(ka.all,null,null,null,!0)],null,No.math)),window.system_functions.push(new Lo("$min",Hi.REAL,0,[new Qo(ka.all,null,null,null,!0)],null,No.math)),window.system_functions.push(new Lo("$rand",Hi.REAL,0,[],null,No.math)),window.system_functions.push(new Lo("$substring",Hi.TEXT,0,[new Qo(ka.all,null,null,null,!0),new Qo(ka.all,null,null,null,!0),new Qo(ka.all,null,null,null,!0)],null,No.text)),window.system_functions.push(new Lo("$length",Hi.INTEGER,0,[new Qo(ka.all,null,null,null,!0)],null,No.text)),window.system_functions.push(new Lo("$uppercase",Hi.TEXT,0,[new Qo(ka.all,null,null,null,!0)],null,No.text)),window.system_functions.push(new Lo("$lowercase",Hi.TEXT,0,[new Qo(ka.all,null,null,null,!0)],null,No.text)),window.system_functions.push(new Lo("$charAt",Hi.TEXT,0,[new Qo(ka.all,null,null,null,!0),new Qo(ka.all,null,null,null,!0)],null,No.text)),window.system_functions.push(new Lo("$numElements",Hi.INTEGER,0,[new Qo(ka.variable_and_function,null,null,null,!0,1)],null,No.arrangement)),window.system_functions.push(new Lo("$matrixLines",Hi.INTEGER,0,[new Qo(ka.variable_and_function,null,null,null,!0,2)],null,No.arrangement)),window.system_functions.push(new Lo("$matrixColumns",Hi.INTEGER,0,[new Qo(ka.variable_and_function,null,null,null,!0,2)],null,No.arrangement)),window.system_functions.push(new Lo("$isReal",Hi.BOOLEAN,0,[new Qo(ka.all,null,null,null,!0)],null,No.conversion)),window.system_functions.push(new Lo("$isInt",Hi.BOOLEAN,0,[new Qo(ka.all,null,null,null,!0)],null,No.conversion)),window.system_functions.push(new Lo("$isBool",Hi.BOOLEAN,0,[new Qo(ka.all,null,null,null,!0)],null,No.conversion)),window.system_functions.push(new Lo("$castReal",Hi.REAL,0,[new Qo(ka.all,null,null,null,!0)],null,No.conversion)),window.system_functions.push(new Lo("$castInt",Hi.INTEGER,0,[new Qo(ka.all,null,null,null,!0)],null,No.conversion)),window.system_functions.push(new Lo("$castBool",Hi.BOOLEAN,0,[new Qo(ka.all,null,null,null,!0)],null,No.conversion)),window.system_functions.push(new Lo("$castString",Hi.TEXT,0,[new Qo(ka.all,null,null,null,!0)],null,No.conversion)),console.log(" ___ ___ ________ \n / / / / / ____/ \n / / / / / / \n / / / / ______ ___ / /__ \n / / / / / \\ / / / ___/ \n / /______ / / / /\\ \\/ / / / \n / / / / / / \\ / / /____ \n/__________/ /___/ /___/ \\___/ /________/ \n\n Laboratório de Informática na Educação\n http://line.ime.usp.br");var xs=new ko(At.getUI("start"),Hi.VOID,0,[],!0,!1);function Es(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;eo(e.name,Ji.CHANGE_FUNCTION_RETURN,t,n),e.return_type=t,e.return_dimensions=n}function Ts(e,t){t.find(".ui.dropdown.function_return").dropdown({onChange:function(t,n,i){i.data("dimensions")?Es(e,Hi[i.data("type")],i.data("dimensions")):Es(e,Hi[i.data("type")])},selectOnKeydown:!1}),t.find(".name_function_updated").on("click",(function(n){!function(e,t){if(js)return void Ks.focus();var n;(t=$(t)).find(".span_name_function").text(""),Bs||(Bs=t.find(".span_name_function").css("padding-left"));t.find(".span_name_function").css("padding-left","0"),t.find(".span_name_function").css("padding-right","0"),(n=$("<input type='text' class='width-dynamic input_name_function' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' value='"+e.name+"' />")).insertBefore(t.find(".span_name_function")),n.on("input",(function(){var e=n.textWidth()+10;Ks=n,n.focus();var t=n.val();n.val(""),n.val(t),n.css({width:e})})).trigger("input"),n.focusout((function(){n.val().trim()&&Ps(e,n.val().trim(),t),n.off(),n.remove(),t.find(".span_name_function").css("padding-left",Bs),t.find(".span_name_function").css("padding-right",Bs),t.find(".span_name_function").text(e.name),js=!1,Ks=!1})),n.on("keydown",(function(i){var o=i.keyCode||i.which;13==o&&(n.val().trim()&&Ps(e,n.val().trim(),t),n.off(),n.remove(),t.find(".span_name_function").css("padding-left",Bs),t.find(".span_name_function").css("padding-right",Bs),t.find(".span_name_function").text(e.name),js=!1,Ks=!1),27==o&&(n.off(),n.remove(),t.find(".span_name_function").css("padding-left",Bs),t.find(".span_name_function").css("padding-right",Bs),t.find(".span_name_function").text(e.name),js=!1,Ks=!1)})),n.select()}(e,t)})),t.find(".add_parameter_button").on("click",(function(n){window.insertContext=!0,function(e,t){null==e.parameters_list&&(e.parameters_list=[]);var n=new So(Hi.INTEGER,At.getUI("new_parameter")+"_"+_s);e.parameters_list.push(n),_s++,eo(e.name,Ji.INSERT_FUNCTION_PARAM,n.name,Hi.INTEGER,0),$s(e,n,t)}(e,t)})),t.find(".menu_commands").dropdown({on:"hover"}),t.find(".menu_commands a").on("click",(function(n){if(null==e.commands||0==e.commands.length){e.commands=[];var i=tr($(this).data("command"));e.commands.push(i),er(i,t.find(".commands_list_div"),3,e),eo(e.name,Ji.INSERT_COMMAND,$(this).data("command"),"/",0)}else Wa(e,t,$(this).data("command"),n)})),t.find(".add_var_button_function").on("click",(function(n){window.insertContext=!0,function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=new So(Hi.INTEGER,At.getUI("new_variable")+"_"+Jo,0);null==e.variables_list&&(e.variables_list=[]),e.variables_list.push(i),Jo++,eo(e.name,Ji.INSERT_FUNCTION_VAR,i.name,Hi.INTEGER,0);var o=na(t,i,e);n&&(o.css("display","none"),o.fadeIn())}(e,t,!0)})),t.find(".remove_function_button").on("click",(function(n){!function(e){var t=ws.functions.indexOf(e);t>-1&&(eo(e.name,Ji.REMOVE_FUNCTION),ws.functions.splice(t,1))}(e),t.fadeOut()})),t.find(".minimize_function_button").on("click",(function(n){!function(e){e.is_hidden=!e.is_hidden}(e),e.is_hidden?(t.find(".add_var_button_function").toggle(),t.find(".inline_add_command").toggle(),t.find(".function_area").slideToggle()):t.find(".function_area").slideToggle((function(){t.find(".add_var_button_function").toggle(),t.find(".inline_add_command").toggle()}))}))}xs.function_comment=new $o(At.getUI("text_comment_main")),ws.addFunction(xs),window.program_obj=ws,window.generator=lr,window.runCodeAssessment=Ss,window.renderAlgorithm=wo,window.insertContext=!1,window.watchW=Xi.a,Xi.a.watch(window.program_obj.globals,(function(){window.insertContext?(setTimeout((function(){wo(),ms.forEach((function(e){return e()}))}),300),window.insertContext=!1):(wo(),ms.forEach((function(e){return e()})))}),1),Xi.a.watch(window.program_obj.functions,(function(){window.insertContext?(setTimeout((function(){wo(),vs.forEach((function(e){return e()}))}),300),window.insertContext=!1):(wo(),vs.forEach((function(e){return e()})))}),1);var Rs,As=0;function Os(e){var t='<div class="ui secondary segment function_div list-group-item function_cont_'+As+'">';e.function_comment,t+='<span class="glyphicon glyphicon-move move_function" aria-hidden="true"><i class="icon sort alternate vertical"></i></span>',t+=(e.is_main?'<div class="div_start_minimize_v"> </div>':'<button class="ui icon button large remove_function_button"><i class="red icon times"></i></button>')+'<button class="ui icon button tiny minimize_function_button"><i class="icon window minimize"></i></button>',t+='<div class="function_signature_div">'+At.getUI("function")+" ",e.is_main?t+='<div class="function_name_div"> '+At.getUI("type_void")+' <span class="span_name_function" >'+e.name+'</span> </div> <span class="parethesis_function">( </span> <div class="ui large labels parameters_list">':(t+='<div class="ui function_return"></div>',t+='<div class="function_name_div function_name_div_updated"><span class="span_name_function name_function_updated">'+e.name+'</span> </div> <span class="parethesis_function"> ( </span> <i class="ui icon plus square outline add_parameter_button"></i> <div class="ui large labels parameters_list container_parameters_list">'),t+='</div> <span class="parethesis_function"> ) </span> </div>'+(e.is_hidden?' <div class="function_area" style="display: none;"> ':' <div class="function_area"> '),t+='<div class="ui add_var_context add_var_button_function" style="float: left;"> <div class="ui icon button purple"> ',t+='<i class="icons"><i class="icon superscript" style="margin-top: -2px;margin-bottom: 2px;margin-left: 1px;margin-right: 1px;"></i><i class="corner add icon inverted" style="font-size: 9px;padding-top: 6px;padding-left: 9px;"></i></i>',t+="</div></div>",t+='<div class="ui top attached segment variables_list_div"></div>',t+='<div class="ui bottom attached segment commands_list_div commands_cont_'+As+'"><div class="ui rail" style="width: 35px; margin-left: -36px;"><div class="ui sticky sticky_cont_'+As+'" style="top: 50px !important;">',t+='<div class="ui icon button dropdown menu_commands orange" > <i class="icons"><i class="icon code" style="margin-top: -1px;margin-bottom: 1px;margin-right: 0px;"></i><i class="corner add icon inverted" style="font-size: 9px;padding-top: 6px;padding-left: 9px;"></i></i><div class="menu"> ',t+='<a class="item" data-command="'+To.reader+'"><i class="download icon"></i> '+At.getUI("text_read_var")+'</a><a class="item" data-command="'+To.writer+'"><i class="upload icon"></i> '+At.getUI("text_write_var")+'</a><a class="item" data-command="'+To.comment+'"><i class="quote left icon"></i> '+At.getUI("text_comment")+'</a><a class="item" data-command="'+To.attribution+'"><i class="arrow left icon"></i> '+At.getUI("text_attribution")+'</a><a class="item" data-command="'+To.functioncall+'"><i class="hand point right icon"></i> '+At.getUI("text_functioncall")+'</a><a class="item" data-command="'+To.iftrue+'" ><i class="random icon"></i> '+At.getUI("text_iftrue")+'</a><a class="item" data-command="'+To.repeatNtimes+'"><i class="sync icon"></i> '+At.getUI("text_repeatNtimes")+'</a><a class="item" data-command="'+To.whiletrue+'"><i class="sync icon"></i> '+At.getUI("text_whiletrue")+'</a><a class="item" data-command="'+To.dowhiletrue+'"><i class="sync icon"></i> '+At.getUI("text_dowhiletrue")+'</a><a class="item" data-command="'+To.switch+'"><i class="list icon"></i> '+At.getUI("text_switch")+'</a><a class="item" data-command="'+To.return+'"><i class="reply icon"></i> '+At.getUI("text_btn_return")+"</a></div></div>",t+="</div></div></div>",t+="</div></div>",t=$(t),$(".all_functions").append(t),t.data("fun",e),t.find(".commands_list_div").data("fun",e),function(e,t){var n='<div class="ui dropdown function_return">';for(var i in 1==e.return_dimensions?(n+='<div class="text">'+At.getUI("vector")+": "+At.getUI("type_".concat(e.return_type.toLowerCase())),n+=" [ ] </div>"):2==e.return_dimensions?(n+='<div class="text">'+At.getUI("matrix")+": "+At.getUI("type_".concat(e.return_type.toLowerCase())),n+=" [ ] [ ] </div>"):n+='<div class="text">'+At.getUI("type_".concat(e.return_type.toLowerCase()))+"</div>",n+='<div class="menu">',Hi)n+='<div class="item '+(e.return_type==i.toLowerCase()&&e.return_dimensions<1?" selected ":"")+'" data-type="'+i+'" >'+At.getUI("type_".concat(i.toLowerCase()))+"</div>";for(var i in n+='<div class="item '+(1==e.return_dimensions?" selected ":"")+'"><i class="dropdown icon"></i>'+At.getUI("vector")+'<div class="menu">',Hi)i!=Hi.VOID.toUpperCase()&&(n+='<div class="item '+(e.return_type==i.toLowerCase()&&1==e.return_dimensions?" selected ":"")+'" data-text="'+At.getUI("vector")+":"+At.getUI("type_".concat(i.toLowerCase()))+' [ ] " data-type="'+i+'" data-dimensions="1"> '+At.getUI("type_".concat(i.toLowerCase()))+"</div>");for(var i in n+="</div></div>",n+='<div class="item '+(2==e.return_dimensions?" selected ":"")+'"><i class="dropdown icon"></i>'+At.getUI("matrix")+'<div class="menu">',Hi)i!=Hi.VOID.toUpperCase()&&(n+='<div class="item '+(e.return_type==i.toLowerCase()&&2==e.return_dimensions?" selected ":"")+'" data-text="'+At.getUI("matrix")+":"+At.getUI("type_".concat(i.toLowerCase()))+' [ ] " data-type="'+i+'" data-dimensions="2"> '+At.getUI("type_".concat(i.toLowerCase()))+"</div>");n+="</div></div>",n+="</div></div>",n=$(n),t.find(".function_return").append(n)}(e,t),Ts(e,t);for(var n=0;n<e.parameters_list.length;n++)$s(e,e.parameters_list[n],t);for(n=0;n<e.variables_list.length;n++)na(t,e.variables_list[n],e);for(n=0;n<e.commands.length;n++)er(e.commands[n],$(t.find(".commands_list_div")[0]),3,e);$(".minimize_function_button").popup({content:At.getUI("tooltip_hide_function"),delay:{show:750,hide:0}});var i=ws.functions.indexOf(e);if(Sortable.create(t.find(".variables_list_div")[0],{handle:".ellipsis",animation:100,ghostClass:"ghost",group:"local_vars_drag_"+i,onEnd:function(t){!function(e,t,n){n.variables_list.splice(t,0,n.variables_list.splice(e,1)[0])}(t.oldIndex,t.newIndex,e)}}),function e(t,n){var i="commands_drag_"+n;Sortable.create(t,{handle:".command_drag",ghostClass:"ghost",animation:300,group:{name:i},onEnd:function(e){var t,n,i=Array.prototype.slice.call($(".all_functions").children());$(e.item).parentsUntil(".all_functions").each((function(e){$(this).hasClass("function_div")&&(t=i.indexOf(this),n=window.program_obj.functions[t])})),eo(n.name,Ji.MOVE_COMMAND,$(e.item).data("command").type,"/","from: "+e.oldIndex+" to: "+e.newIndex);e.item;e.to,e.from,e.oldIndex,e.newIndex,window.evento_drag=e;try{!function(){var e,t,n=Array.prototype.slice.call($(".all_functions").children());$(evento_drag.item).parentsUntil(".all_functions").each((function(i){var o=$(this);o.hasClass("function_div")&&(e=n.indexOf(this),i,t=o)}));var i=[];$(evento_drag.item).parentsUntil(".all_functions").each((function(){$(this).hasClass("command_container")&&i.push(this)})),i.length;for(var o=[],a=[],r=i.length-1;r>=0;r--)if(console.log("da vez",$(i[r+1])),r==i.length-1){var s=t.find(".command_container").index(i[r]);console.log("índice na raiz: ",s)}else $(i[r+1]).hasClass("iftrue")?$(i[r]).parent().hasClass("commands_if")?(a.push("if"),o.push($(i[r]).parent().find(".command_container").index(i[r]))):(a.push("else"),o.push($(i[r]).parent().find(".command_container").index(i[r]))):$(i[r+1]).hasClass("dowhiletrue")?(a.push("dowhiletrue"),o.push($(i[r+1]).find(".command_container").index(i[r]))):$(i[r+1]).hasClass("repeatNtimes")?(a.push("repeatNtimes"),o.push($(i[r+1]).find(".command_container").index(i[r]))):$(i[r+1]).hasClass("whiletrue")?(a.push("whiletrue"),o.push($(i[r+1]).find(".command_container").index(i[r]))):$(i[r+1]).hasClass("switch")&&a.push("switch");var l=$(evento_drag.item).parent().hasClass("commands_else"),c=$(evento_drag.item).parent().hasClass("case_commands_block"),u=window.program_obj.functions[e].commands[s];for(r=0;r<o.length;r++)"else"==a[r]?u=u.commands_else[o[r]]:"switch"==a[r]||(u=u.commands_block[o[r]]);0==i.length?window.program_obj.functions[e].commands.splice(evento_drag.newIndex-1,0,Rs):l?u.commands_else?u.commands_else.splice(evento_drag.newIndex,0,Rs):(u.commands_else=[],u.commands_else.push(Rs)):c||(u.commands_block?(console.log("existe alguma coisa dentro do bloco, index: ",evento_drag.newIndex),u.commands_block.splice(evento_drag.newIndex,0,Rs)):(u.commands_block=[],u.commands_block.push(Rs)));window.draging=!1,renderAlgorithm()}()}catch(e){console.error(e),window.draging=!1}},onStart:function(e){try{!function(e){window.draging=!0;var t,n,i=Array.prototype.slice.call($(".all_functions").children());$(e.item).parentsUntil(".all_functions").each((function(e){$(this).hasClass("function_div")&&(t=i.indexOf(this),n=window.program_obj.functions[t])})),Rs=$(e.item).data("command"),$(e.item).parent().hasClass("commands_list_div")?n.commands.indexOf(Rs)>-1&&n.commands.splice(n.commands.indexOf(Rs),1):$(e.item).parent().hasClass("commands_else")?$(e.item).parent().data("command").commands_else.indexOf(Rs)>-1&&$(e.item).parent().data("command").commands_else.splice($(e.item).parent().data("command").commands_else.indexOf(Rs),1):$(e.item).parent().hasClass("case_commands_block")||$(e.item).parent().data("command").commands_block.indexOf(Rs)>-1&&$(e.item).parent().data("command").commands_block.splice($(e.item).parent().data("command").commands_block.indexOf(Rs),1)}(e)}catch(e){window.draging=!1}}});t=$(t);t.find(".iftrue").each((function(t){e($(this).find(".block_commands")[0],n),e($(this).find(".block_commands")[1],n)}));t.find(".repeatNtimes").each((function(t){e($(this).find(".block_commands")[0],n)}));t.find(".dowhiletrue").each((function(t){e($(this).find(".block_commands")[0],n)}));t.find(".whiletrue").each((function(t){e($(this).find(".block_commands")[0],n)}));t.find(".switch").each((function(t){$(this).find(".case_div").each((function(t){e($(this).find(".case_commands_block")[0],n)}))}))}(t.find(".commands_list_div")[0],i),e.is_main||Sortable.create(t.find(".container_parameters_list")[0],{handle:".ellipsis",animation:100,ghostClass:"ghost",group:"parameters_drag_"+ws.functions.indexOf(e),onEnd:function(t){!function(e,t,n){n.parameters_list.splice(t,0,n.parameters_list.splice(e,1)[0])}(t.oldIndex,t.newIndex,e)}}),e.commands.length>0){var o=".ui.sticky.sticky_cont_"+As;$(o).sticky({context:".ui.bottom.attached.segment.commands_list_div.commands_cont_"+As,scrollContext:".ivprog_visual_panel",observeChanges:!0,offset:40,onStick:function(e){$(o).css("top","20px","important")},onBottom:function(e){$(o).css("top","20px","important")},onUnstick:function(e){$(o).css("top","20px","important")},onReposition:function(e){$(o).css("top","20px","important")},onScroll:function(e){var t,n,i,a,r,s;$(o).css("top","20px","important"),t=$(o),n=$(o).parent(),i=$(t).offset().top,a=$(t).height(),r=$(n).offset().top,s=$(n).height()-30,i-r+a>0&&i-r<s||$(o).removeClass("fixed")},onTop:function(e){$(o).css("top","20px","important")}})}return As++,t}function Is(){(ys=new Bi("ivprog-term-div")).hide(),$(document.getElementById("ivprog-term-div")).draggable(),$(".add_function_button").on("click",(function(){var e;e=new ko(At.getUI("new_function")+"_"+ps,Hi.VOID,0,[],!1,!1,[],new $o(At.getUI("text_comment_start"))),ws.addFunction(e),ps++,window.insertContext=!0,eo(e.name,Ji.INSERT_FUNCTION),Os(e)})),$(".add_global_button").on("click",(function(){window.insertContext=!0,function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=new So(Hi.INTEGER,At.getUI("new_global")+"_"+ro,0);ro++,e.addGlobal(n),eo(n.name,Ji.INSERT_GLOBAL_VAR);var i=po(n);t&&(i.css("display","none"),i.fadeIn())}(ws,!0)})),$("#run_button").on("click",(function(){document.getElementById("run_button").style.display="none",document.getElementById("stop_button").style.display="inline",function(){if(bs)return;var e=null;e="textual"==settingsProgrammingTypes?ds():lr();if(null==e)return;ks(!0);try{var t=Vi.analyseFromSource(e);(hs=new ki(t)).registerInput(ys),hs.registerOutput(ys),$("#ivprog-term").addClass("ivprog-term-active"),bs=!0,hs.interpretAST().then((function(e){Hs((function(){return 0==ys.pending_writes.length&&(hs.mode===ze.Modes.ABORT?ys.info(At.getMessage("aborted_execution")):ys.info(At.getMessage("success_execution")),$("#ivprog-term").removeClass("ivprog-term-active"),bs=!1,hs=null,zs(),!0)}),100)})).catch((function(e){Hs((function(){return 0==ys.pending_writes.length&&(e instanceof Error?ys.err(e.message):ys.err(e),$("#ivprog-term").removeClass("ivprog-term-active"),bs=!1,hs=null,zs(),!0)}),100)}))}catch(e){Hs((function(){return 0==ys.pending_writes.length&&(bs=!1,hs=null,zs(),ys.err(e.message),console.log(e),!0)}),100)}}()})),$("#stop_button").on("click",(function(){zs(),function(){if(ys.clearPendingWrites(),ys.cancelPendingInputRequests(),!bs)return;hs.mode=ze.Modes.ABORT}()})),$(".visual_coding_button").on("click",(function(){$(".ivprog_textual_panel").addClass("loading"),$(".ivprog_textual_panel").css("display","none"),$(".ivprog_visual_panel").css("display","block"),$(".textual_coding_button").removeClass("active"),$(".visual_coding_button").addClass("active")})),$(".textual_coding_button").on("click",(function(){!function(){var e=null;if("textual"!=settingsProgrammingTypes&&null==(e=lr()))return;$(".ivprog_visual_panel").css("display","none"),$(".ivprog_textual_panel").css("display","block"),$(".ivprog_textual_panel").removeClass("loading"),cs(),null!=e&&us(e);$(".visual_coding_button").removeClass("active"),$(".textual_coding_button").addClass("active")}()})),$(".assessment").on("click",(function(){Ns=!0,Ss()})),$(".div_toggle_console").on("click",(function(){ks()})),$(".expand_button").on("click",(function(){full_screen()})),$(".help_button").on("click",(function(){window.open("https://www.usp.br/line/ivprog/","_blank")})),$(".main_title h2").prop("title",At.getUI("text_ivprog_description"));$(".visual_coding_button").popup({content:At.getUI("tooltip_visual"),delay:{show:750,hide:0}}),$(".textual_coding_button").popup({content:At.getUI("tooltip_textual"),delay:{show:750,hide:0}}),$(".upload_file_button").popup({content:At.getUI("tooltip_upload"),delay:{show:750,hide:0}}),$(".download_file_button").popup({content:At.getUI("tooltip_download"),delay:{show:750,hide:0}}),$(".undo_button").popup({content:At.getUI("tooltip_undo"),delay:{show:750,hide:0}}),$(".redo_button").popup({content:At.getUI("tooltip_redo"),delay:{show:750,hide:0}}),$(".run_button").popup({content:At.getUI("tooltip_run"),delay:{show:750,hide:0}}),$(".assessment_button").popup({content:At.getUI("tooltip_evaluate"),delay:{show:750,hide:0}}),$(".help_button").popup({content:At.getUI("tooltip_help")+" - "+At.getUI("text_ivprog_version")+" "+fs,delay:{show:750,hide:0}}),$(".add_global_button").popup({content:At.getUI("tooltip_add_global"),delay:{show:750,hide:0}}),$(".div_toggle_console").popup({content:At.getUI("tooltip_console"),delay:{show:750,hide:0}}),Sortable.create(listWithHandle,{handle:".glyphicon-move",animation:100,ghostClass:"ghost",group:"functions_divs_drag",onEnd:function(e){var t,n;t=e.oldIndex,n=e.newIndex,program_obj.functions.splice(n,0,program_obj.functions.splice(t,1)[0])}});var e=document.getElementById("listGlobalsHandle");Sortable.create(e,{handle:".ellipsis",animation:100,ghostClass:"ghost",group:"globals_divs_drag",onEnd:function(e){var t,n;t=e.oldIndex,n=e.newIndex,program_obj.globals.splice(n,0,program_obj.globals.splice(t,1)[0])}})}function Cs(){return JSON.parse(JSON.stringify(gs))}window.evento_drag;var Ns=!1;function Ss(){if(bs)return-1;var e=null;if(window.studentGrade=null,null==(e="textual"==settingsProgrammingTypes?ds():lr()))return-1;ks(!0);try{var t=Vi.analyseFromSource(e);bs=!0,new as(t,gs,ys).runTest().then((function(e){Ns?Ns=!1:parent.getEvaluationCallback(e),bs=!1})).catch((function(e){console.log(e),bs=!1}))}catch(e){bs=!1,ys.err(e.message),console.log(e),Ns?Ns=!1:parent.getEvaluationCallback(0)}return 0}function ks(e){return e?($(".ivprog-term-div").css("display","block"),$("#ivprog-term").css("min-height","160px"),void(null!=ys&&ys.focus())):void ys.hide()}function Ls(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;eo(e.name,Ji.CHANGE_PARAM_TYPE,n,t,i),e.type=t,e.dimensions=i,i>0&&(e.rows=i,e.columns=2)}function $s(e,t,n){var i="";for(var o in i+='<div class="ui label function_name_parameter pink"><i class="ui icon ellipsis vertical inverted"></i>',i+='<div class="ui dropdown parameter_type">',t.dimensions>0?(i+='<div class="text">'+At.getUI("vector")+":"+At.getUI("type_".concat(t.type.toLowerCase())),1==t.dimensions?i+=" [ ] ":i+=" [ ] [ ] ",i+="</div>"):i+='<div class="text">'+At.getUI("type_".concat(t.type.toLowerCase()))+"</div>",i+='<div class="menu">',Hi)o!=Hi.VOID.toUpperCase()&&(i+='<div class="item '+(t.type==o.toLowerCase()&&0==t.dimensions?" selected ":"")+'" data-type="'+o+'" >'+At.getUI("type_".concat(o.toLowerCase()))+"</div>");for(var a in i+='<div class="item '+(1==t.dimensions?" selected ":"")+'"><i class="dropdown icon"></i>'+At.getUI("vector")+'<div class="menu">',Hi)a!=Hi.VOID.toUpperCase()&&(i+='<div class="item '+(t.type==a.toLowerCase()&&1==t.dimensions?" selected ":"")+'" data-text="'+At.getUI("vector")+":"+At.getUI("type_".concat(a.toLowerCase()))+' [ ] " data-type="'+a+'" data-dimensions="1"> '+At.getUI("type_".concat(a.toLowerCase()))+"</div>");for(var a in i+="</div></div>",i+='<div class="item '+(2==t.dimensions?" selected ":"")+'"><i class="dropdown icon"></i>'+At.getUI("matrix")+'<div class="menu">',Hi)a!=Hi.VOID.toUpperCase()&&(i+='<div class="item '+(t.type==a.toLowerCase()&&2==t.dimensions?" selected ":"")+'" data-text="'+At.getUI("matrix")+":"+At.getUI("type_".concat(a.toLowerCase()))+' [ ] " data-type="'+a+'" data-dimensions="2"> '+At.getUI("type_".concat(a.toLowerCase()))+"</div>");return i+="</div></div>",i+="</div></div>",i+='<div class="parameter_div_edit"><span class="span_name_parameter label_enable_name_parameter">'+t.name+"</span></div> ",i+=' <i class="yellow inverted icon times remove_parameter"></i></div>',i=$(i),n.find(".container_parameters_list").append(i),i.find(".remove_parameter").on("click",(function(n){!function(e,t,n){eo(t.name,Ji.REMOVE_FUNCTION_PARAM,e.name);var i=e.parameters_list.indexOf(t);i>-1&&(window.insertContext=!0,e.parameters_list.splice(i,1)),$(n).fadeOut()}(e,t,i)})),i.find(".ui.dropdown.parameter_type").dropdown({onChange:function(n,i,o){o.data("dimensions")?Ls(t,Hi[o.data("type")],e.name,o.data("dimensions")):Ls(t,Hi[o.data("type")],e.name)},selectOnKeydown:!1}),i.find(".parameter_div_edit").on("click",(function(n){eo(e.name,Ji.ENTER_CHANGE_PARAM_NAME,t.name),function(e,t,n){if(Ms)return void Fs.focus();var i;Ms=!0,(t=$(t)).find(".span_name_parameter").text(""),(i=$("<input type='text' class='width-dynamic input_name_function' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' value='"+e.name+"' />")).insertBefore(t.find(".span_name_parameter")),i.on("input",(function(){var e=i.textWidth()+10;Fs=i,i.focus();var t=i.val();i.val(""),i.val(t),i.css({width:e})})).trigger("input"),i.focusout((function(){i.val().trim()&&(Us(e,i.val().trim(),t,n),t.find(".span_name_parameter").text(e.name)),i.off(),i.remove(),Ms=!1,Fs=!1})),i.on("keydown",(function(o){var a=o.keyCode||o.which;13==a&&(i.val().trim()&&(Us(e,i.val().trim(),t,n),t.find(".span_name_parameter").text(e.name)),i.off(),i.remove(),Ms=!1,Fs=!1),27==a&&(t.find(".span_name_parameter").text(e.name),i.off(),i.remove(),Ms=!1,Fs=!1)})),i.select()}(t,i,e)})),i}function Us(e,t,n,i){e.name!=t&&(Pi(t)?!function(e,t){if(t.parameters_list)for(var n=0;n<t.parameters_list.length;n++)if(t.parameters_list[n].name==e)return!0;if(t.variables_list)for(n=0;n<t.variables_list.length;n++)if(t.variables_list[n].name==e)return!0;return!1}(t,i)?(eo(i.name,Ji.RENAME_FUNCTION_PARAM,e.name,t),e.name=t):Wi(n.find(".parameter_div_edit"),At.getError("inform_valid_param_duplicated",[t,i.name])):Wi(n.find(".parameter_div_edit"),At.getError("inform_valid_identifier")))}function Ps(e,t,n){e.name!=t&&(Pi(t)?!function(e){for(var t=0;t<window.program_obj.functions.length;t++)if(window.program_obj.functions[t].name==e)return!0;return!1}(t)?(eo(e.name,Ji.RENAME_FUNCTION,t),e.name=t):Wi(n.find(".function_name_div"),At.getError("inform_valid_function_duplicated",[t])):Wi(n.find(".function_name_div"),At.getError("inform_valid_identifier")))}var Ms=!1,Fs=null;var js=!1,Ks=null,Bs=null;function Gs(e){return vs.push(e),vs.length-1}function Ds(e){return ms.push(e),ms.length-1}function Vs(e){ms.splice(e,1)}function qs(e){vs.splice(e)}function Hs(e,t){var n;n=setInterval((function(){e()&&clearInterval(n)}),t)}function zs(){document.getElementById("run_button").style.display="inline",document.getElementById("stop_button").style.display="none"}var Xs=v.a.StringTypes,Ws=Object.freeze({i18n:function(e){var t=e.split(":"),n=t[0].toLowerCase(),i=t[1];return Xs.ERROR===n?At.getError(i):Xs.MESSAGE===n?At.getMessage(i):Xs.UI===n?At.getUI(i):(console.warn("A string has been passed to the i18n helper function that was not in the form type:id -> "+e),At.getString(e,n))}});function Qs(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}var Ys=It(),Js=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.index=0,this.inputList=t,this.list=[]}var t,n,i;return t=e,(n=[{key:"write",value:function(e){this._appendText(e,Bi.USER)}},{key:"info",value:function(e){this._appendText(e,Bi.INFO)}},{key:"err",value:function(e){this._appendText(e,Bi.ERR)}},{key:"_appendText",value:function(e){this.list.push(e)}},{key:"getClassForType",value:function(e){switch(e){case Bi.USER:return"ivprog-term-userText";case Bi.INFO:return"ivprog-term-info";case Bi.ERR:return"ivprog-term-error"}}},{key:"requestInput",value:function(e){if(!(this.index<this.inputList.length))throw new Error(Ys.getError("exceeded_input_request"));e(this.inputList[this.index]),this.index++}},{key:"sendOutput",value:function(e){var t=this;(""+e).split("\n").forEach((function(e){e=e.replace(/\t/g,"	"),t.write(e)}))}}])&&Qs(t.prototype,n),i&&Qs(t,i),e}(),Zs=n(32);function el(e){var t,n=null;if(e.split("\n::algorithm::")[1]){n=e.split("\n::algorithm::")[1].split("\n::logs::")[0];var i=e.split("\n::algorithm::")[1].split("\n::logs::")[1];null!=i&&ao(i)}try{(t=JSON.parse(e.split("\n::algorithm::")[0])).algorithm_in_ilm=n}catch(e){return console.error(e),Zs.Maybe.none()}return Zs.Maybe.some(t)}function tl(e){return el(e).map((function(e){!function(e){gs=e}(e.testcases);return{settingsProgrammingType:e.settings_programming_type?e.settings_programming_type[0].value:"visual",settingsDataTypes:e.settings_data_types,settingsCommands:e.settings_commands,settingsFunctions:e.settings_functions,algorithmInIlm:e.algorithm_in_ilm,settingsFilter:e.settings_filter}}))}function nl(e,t){for(var n=0;n<e.length;++n){if(e[n]!=t[n])return!1}return!0}function il(e,t){var n=lr(),i=el(e).getOrElse(void 0);if(null==i)return alert("iAssign did not provide the original activity data!"),t(null);if(null==n)return t(-1);if(!function(e,t){if(e.length!=t.length)return!1;for(var n=0;n<e.length;++n){var i=e[n],o=t[n];if(!nl(i.input,o.input))return!1;if(!nl(i.output,o.output))return!1}return!0}(i.testcases,Cs()))return t(-2);var o=Vi.analyseFromSource(n);new as(o,Cs(),new Js([])).runTest().then((function(e){return t(e)})).catch((function(e){console.log(e),t(0)}))}function ol(e){return(ol="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function al(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function rl(e,t){return!t||"object"!==ol(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function sl(e){return(sl=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ll(e,t){return(ll=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var cl=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=rl(this,sl(t).call(this))).index=0,n.inputList=e,n}var n,i,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ll(e,t)}(t,e),n=t,(i=[{key:"requestInput",value:function(e){if(!(this.index<this.inputList.length))throw new Error(At.getError("exceeded_input_request"));e(this.inputList[this.index]),this.index++}}])&&al(n.prototype,i),o&&al(n,o),t}(hr);function ul(e,t){var n=t.map((function(e){return Object.assign({},e)}));try{var i=Vi.analyseFromSource(e),o=t.map((function(e,t){var n=new cl(e.input),o=new Nr,a=new ki(i);return a.registerInput(n),a.registerOutput(o),a.interpretAST().then((function(e){return{id:t,program:a}}))}));return Promise.all(o).then((function(e){for(var t=0;t<e.length;++t){var i=e[t],o=i.program.output.list,a=i.program.input;if(a.index!=a.inputList.length)return window.showAlert(At.getMessage("testcase_autogen_unused_input",[i.id+1])),Promise.resolve(!1);0==o.length&&window.showAlert(At.getMessage("testcase_autogen_empty",[i.id+1])),n[i.id].output=o}return window.outputGenerated(n),Promise.resolve(!0)}))}catch(e){return Promise.reject(e)}}n.d(t,"LocalizedStrings",(function(){return _l})),n.d(t,"i18n",(function(){return pl})),n.d(t,"CodeEditor",(function(){return dl})),n.d(t,"runner",(function(){return qi})),n.d(t,"initVisualUI",(function(){return Is})),n.d(t,"addFunctionChangeListener",(function(){return Gs})),n.d(t,"addGlobalChangeListener",(function(){return Ds})),n.d(t,"removeFunctionListener",(function(){return qs})),n.d(t,"removeGlobalListener",(function(){return Vs})),n.d(t,"getTestCases",(function(){return Cs})),n.d(t,"autoEval",(function(){return il})),n.d(t,"prepareActivityToStudentHelper",(function(){return tl})),n.d(t,"getLogs",(function(){return io})),n.d(t,"getLogsAsString",(function(){return oo})),n.d(t,"registerClick",(function(){return Zi})),n.d(t,"registerUserEvent",(function(){return eo})),n.d(t,"parseLogs",(function(){return ao})),n.d(t,"ActionTypes",(function(){return Ji})),n.d(t,"openAssessmentDetail",(function(){return Fi})),n.d(t,"autoGenerateTestCaseOutput",(function(){return ul}));var dl={initTextEditor:function(e){var t=e;"#"==e[0]&&(t=e.substring(1)),ls=ss.fromTextArea(document.getElementById(t),{theme:"ttcn",value:"",mode:"text/x-ivprog",indentUnit:4,lineNumbers:!0,matchBrackets:!0,autoCloseBrackets:!0,fixedGutter:!0,styleActiveLine:!0,readOnly:!0})},setCode:us,getCode:ds,updateEditor:cs,disable:function(e){ls.setOption("readOnly",e),cs()}},pl=Ws.i18n,_l=It()}])}));
- //# sourceMappingURL=main.d06095b50c2dc5e3d481.js.map
|