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,o,s=t[0],l=t[1],c=t[2],d=0,p=[];d<s.length;d++)o=s[d],Object.prototype.hasOwnProperty.call(a,o)&&a[o]&&p.push(a[o][0]),a[o]=0;for(i in l)Object.prototype.hasOwnProperty.call(l,i)&&(e[i]=l[i]);for(u&&u(t);p.length;)p.shift()();return r.push.apply(r,c||[]),n()}function n(){for(var e,t=0;t<r.length;t++){for(var n=r[t],i=!0,s=1;s<n.length;s++){var l=n[s];0!==a[l]&&(i=!1)}i&&(r.splice(t--,1),e=o(o.s=n[0]))}return e}var i={},a={0:0},r=[];function o(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,o),n.l=!0,n.exports}o.m=e,o.c=i,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)o.d(n,i,function(t){return e[t]}.bind(null,i));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.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 r.push([109,1]),n()}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.fromOrdToType=t.Types=void 0;const i=n(90),a=n(13),r=n(45),o=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("char",4),d=new i.Type("void",5),p=new i.Type("undefined",6),_=new a.MultiType([o,s,l,u,c]);t.Types=Object.freeze({INTEGER:o,REAL:s,STRING:l,CHAR:u,BOOLEAN:c,VOID:d,UNDEFINED:p,ALL:_}),t.fromOrdToType=function(e){const n=t.Types;for(const t in n)if(n[t].ord&&n[t].ord===e)return r.Maybe.some(n[t]);return r.Maybe.none()}},,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Modes=void 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=void 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.convertFromString=t.Operators=void 0,t.Operators=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"}}),t.convertFromString=function(e){switch(e){case"+":return t.Operators.ADD;case"-":return t.Operators.SUB;case"*":return t.Operators.MULT;case"/":return t.Operators.DIV;case"%":return t.Operators.MOD;case">":return t.Operators.GT;case">=":return t.Operators.GE;case"<":return t.Operators.LT;case"<=":return t.Operators.LE;case"==":return t.Operators.EQ;case"!=":return t.Operators.NEQ;case"and":return t.Operators.AND;case"or":return t.Operators.OR;case"not":return t.Operators.NOT}return null}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Config=void 0;const i=new class{constructor(){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}setConfig(e){const t=e;for(const e in t)Object.prototype.hasOwnProperty.call(this,e)&&(this[e]=t[e])}};t.Config=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ArrayType=void 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}),t.MultiType=void 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}),t.Store=void 0;const i=n(6),a=n(0),r=n(50),o=n(104),s=n(12),l=n(26),c=n(25),u=n(66),d=n(9),p=n(36),_=n(46),f=n(51),m=n(105);class v{constructor(e){this.name=e,this.store=new Map,this.mode=i.Modes.RUN}static canImplicitTypeCast(e,t){return!(!e.isCompatible(a.Types.INTEGER)&&!e.isCompatible(a.Types.REAL)||!t.isCompatible(a.Types.INTEGER)&&!t.isCompatible(a.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(a.Types.INTEGER)?new d.StoreValue(a.Types.INTEGER,t.get().trunc()):new d.StoreValue(a.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 a=0,r=0;const o=e.value.map(t=>e.isVector?new p.StoreValueAddress(i.innerType,t,a++,void 0,e.id,e.readOnly):(r>=e.columns&&(r=0,a+=1),new p.StoreValueAddress(i.innerType,t,a,r++,e.id,e.readOnly)));n=new l.ArrayStoreValue(i,o,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,i>=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,a=t.type;throw new Error(`${i.value} is not compatible with type ${a.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 a=this.store.get(e);if(a.readOnly)throw new Error("Cannot change value of a read only variable: "+e);if(!(a instanceof u.StoreObjectArray))throw new Error("Cannot update a non-array variable using updateStoreArray");if(t instanceof l.ArrayStoreValue){const r=t.get();if(a.isVector&&t.isVector())for(let e=0;e<t.lines;e+=1){const t=r[e];a.setAt(t,e,void 0)}else{if(a.isVector||null!=i||!t.isVector())throw new Error("Attempting to assign an invalid value to array "+e);for(let e=0;e<a.columns;e+=1){const t=r[e];a.setAt(t,n,e)}}}else{if(!a.isVector&&null==i)throw new Error("Attempting to assign an invalid value to array "+e);a.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 o.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=[],a=t.get();if(a.length>0)for(let e=0;e<t.get().length;e+=1){const t=a[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 r.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)}isDefined(e){return!!this.store.has(e)||null!=this.nextStore&&this.nextStore.isDefined(e)}}t.Store=v},,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Context=void 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}),t.Location=void 0;const i=n(103);const a=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),a=this.getAddressAt(i);if(a.id===e)return a;e>a.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),a=this.getAddressAt(i);if(a.id===e)return i;e>a.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:a.allocate.bind(a),deallocate:a.deallocate.bind(a),find:a.find.bind(a),updateAddress:a.updateAddress.bind(a),clear:a.clear.bind(a),size:()=>a.data.length})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ArrayStoreValue=void 0;const i=n(12),a=n(36);class r{constructor(e,t,n,i,a,r=!1){this.type=e,this.id=a,this.isConst=r,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,a=new i.ArrayType(n.innerType,n.dimensions-1);return new r(a,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 o=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=o,o=0}else if(null==n){if(!(e instanceof r))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=o*this.columns+n,r=t[n];this.values[i]=new a.StoreValueAddress(e.type,r.get(),o,n,this.id,this.isConst)}}const l=o*(null==this.columns?0:this.columns)+s;this.values[l]=new a.StoreValueAddress(e.type,e.get(),t,n,this.id,this.isConst)}inStore(){return null!=this.id}isVector(){return 1==this.type.dimensions}}t.ArrayStoreValue=r},,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StoreValueAddress=void 0;const i=n(9);class a extends i.StoreValue{constructor(e,t,n,i,a,r=!1){super(e,t,a,r),this.line=n,this.column=i}}t.StoreValueAddress=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.resultTypeAfterUnaryOp=t.resultTypeAfterInfixOp=void 0;const i=n(0),a=n(10),r=n(13),o=n(11);function s(){const e=[[],[]];return e[i.Types.INTEGER.ord][i.Types.INTEGER.ord]=i.Types.INTEGER,e[i.Types.INTEGER.ord][i.Types.REAL.ord]=i.Types.REAL,e[i.Types.REAL.ord][i.Types.INTEGER.ord]=i.Types.REAL,e[i.Types.REAL.ord][i.Types.REAL.ord]=i.Types.REAL,e}function l(){const e=[[],[],[],[],[]];return e[i.Types.INTEGER.ord][i.Types.INTEGER.ord]=i.Types.BOOLEAN,e[i.Types.REAL.ord][i.Types.REAL.ord]=i.Types.BOOLEAN,e[i.Types.BOOLEAN.ord][i.Types.BOOLEAN.ord]=i.Types.BOOLEAN,e[i.Types.STRING.ord][i.Types.STRING.ord]=i.Types.BOOLEAN,e[i.Types.CHAR.ord][i.Types.CHAR.ord]=i.Types.BOOLEAN,e}function c(){const e=[[],[],[],[],[]];return e[i.Types.INTEGER.ord][i.Types.INTEGER.ord]=i.Types.BOOLEAN,e[i.Types.REAL.ord][i.Types.REAL.ord]=i.Types.BOOLEAN,e[i.Types.STRING.ord][i.Types.STRING.ord]=i.Types.BOOLEAN,e[i.Types.CHAR.ord][i.Types.CHAR.ord]=i.Types.BOOLEAN,e}function u(){const e=[[],[],[],[]];return e[i.Types.BOOLEAN.ord][i.Types.BOOLEAN.ord]=i.Types.BOOLEAN,e}function d(){const e=[];return e[i.Types.INTEGER.ord]=i.Types.INTEGER,e[i.Types.REAL.ord]=i.Types.REAL,e}const p=function(){const e=new WeakMap;return e.set(a.Operators.ADD,function(){const e=[[],[],[],[],[]];return e[i.Types.INTEGER.ord][i.Types.INTEGER.ord]=i.Types.INTEGER,e[i.Types.INTEGER.ord][i.Types.REAL.ord]=i.Types.REAL,e[i.Types.INTEGER.ord][i.Types.STRING.ord]=i.Types.STRING,e[i.Types.REAL.ord][i.Types.INTEGER.ord]=i.Types.REAL,e[i.Types.REAL.ord][i.Types.REAL.ord]=i.Types.REAL,e[i.Types.REAL.ord][i.Types.STRING.ord]=i.Types.STRING,e[i.Types.STRING.ord][i.Types.INTEGER.ord]=i.Types.STRING,e[i.Types.STRING.ord][i.Types.REAL.ord]=i.Types.STRING,e[i.Types.STRING.ord][i.Types.STRING.ord]=i.Types.STRING,e[i.Types.STRING.ord][i.Types.BOOLEAN.ord]=i.Types.STRING,e[i.Types.STRING.ord][i.Types.CHAR.ord]=i.Types.STRING,e[i.Types.CHAR.ord][i.Types.CHAR.ord]=i.Types.STRING,e[i.Types.CHAR.ord][i.Types.STRING.ord]=i.Types.STRING,e}()),e.set(a.Operators.SUB,s()),e.set(a.Operators.MULT,s()),e.set(a.Operators.DIV,s()),e.set(a.Operators.EQ,l()),e.set(a.Operators.NEQ,l()),e.set(a.Operators.GE,c()),e.set(a.Operators.GT,c()),e.set(a.Operators.LE,c()),e.set(a.Operators.LT,c()),e.set(a.Operators.OR,u()),e.set(a.Operators.AND,u()),e.set(a.Operators.MOD,function(){const e=[[]];return e[i.Types.INTEGER.ord][i.Types.INTEGER.ord]=i.Types.INTEGER,e}()),e}(),_=function(){const e=new WeakMap;return e.set(a.Operators.ADD,d()),e.set(a.Operators.SUB,d()),e.set(a.Operators.NOT,function(){const e=[];return e[i.Types.BOOLEAN.ord]=i.Types.BOOLEAN,e}()),e}();t.resultTypeAfterInfixOp=function e(t,n,s){try{if(n instanceof r.MultiType&&s instanceof r.MultiType){let a=[];for(let i=0;i<n.types.length;++i){const r=n.types[i];for(let n=0;n<s.types.length;++i){const i=s.types[n];a.push(e(t,r,i))}}return a=a.filter(e=>!e.isCompatible(i.Types.UNDEFINED)),a.length<=0?o.Config.enable_type_casting&&(n.isCompatible(i.Types.INTEGER)||n.isCompatible(i.Types.REAL))&&(s.isCompatible(i.Types.INTEGER)||s.isCompatible(i.Types.REAL))?new r.MultiType([i.Types.INTEGER,i.Types.REAL]):i.Types.UNDEFINED:new r.MultiType(a)}if(n instanceof r.MultiType)return n.isCompatible(s)?e(t,s,s):o.Config.enable_type_casting&&(n.isCompatible(i.Types.INTEGER)||n.isCompatible(i.Types.REAL))&&(s.isCompatible(i.Types.INTEGER)||s.isCompatible(i.Types.REAL))?s:i.Types.UNDEFINED;if(s instanceof r.MultiType)return s.isCompatible(n)?e(t,n,n):o.Config.enable_type_casting&&(n.isCompatible(i.Types.INTEGER)||n.isCompatible(i.Types.REAL))&&(s.isCompatible(i.Types.INTEGER)||s.isCompatible(i.Types.REAL))?n:i.Types.UNDEFINED;const l=(p.get(t)||[])[n.ord][s.ord];if(null==l){if(o.Config.enable_type_casting&&(n.isCompatible(i.Types.INTEGER)||n.isCompatible(i.Types.REAL))&&(s.isCompatible(i.Types.INTEGER)||s.isCompatible(i.Types.REAL))){if(t===a.Operators.MOD)return i.Types.INTEGER;if(t.ord>=5&&t.ord<=10)return i.Types.BOOLEAN}return i.Types.UNDEFINED}return l}catch(e){if(e instanceof TypeError)return i.Types.UNDEFINED;throw e}},t.resultTypeAfterUnaryOp=function e(t,n){try{if(n instanceof r.MultiType){let a=[];for(let i=0;i<n.types.length;++i){const r=n.types[i];a.push(e(t,r))}return a=a.filter(e=>!e.isCompatible(i.Types.UNDEFINED)),a.length<=0?i.Types.UNDEFINED:new r.MultiType(a)}const a=(_.get(t)||[])[n.ord];return null==a?i.Types.UNDEFINED:a}catch(e){if(e instanceof TypeError)return i.Types.UNDEFINED;throw e}}},,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Maybe=void 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=void 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}),t.StoreObject=void 0;const i=n(25);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=void 0;t.ArrayStoreValueRef=class{constructor(e,t,n,i,a,r){this.type=e,this.values=t,this.addresses=n,this.lines=i,this.columns=a,this.id=r,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(94),a=n(95),r=n(96),o={};for(const e in a){const t={};t.error=r[e],t.message=i[e],t.ui=a[e],o[e]=t}t.default=o},,,,,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StoreObjectArray=void 0;const i=n(50),a=n(26),r=n(25);class o extends i.StoreObject{constructor(e,t,n,i,a=!1){super(e,-1,a),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 a.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=r.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&&r.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),a=r.Location.find(this.addresses[i]);t.push(a.value)}return t}const n=this.getIndexOf(e,t);return r.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 a=this.getIndexOf(t,n);r.Location.updateAddress(this.addresses[a],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=o},function(e,t,n){e.exports=function(e){var t={};function n(i){if(t[i])return t[i].exports;var a=t[i]={i:i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,n),a.l=!0,a.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),a=["悋Ꜫ脳맭䅼㯧瞆奤","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(""),r=(new i.atn.ATNDeserializer).deserialize(a),o=r.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,r,o,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(38)}])},function(e,t,n){e.exports=function(e){var t={};function n(i){if(t[i])return t[i].exports;var a=t[i]={i:i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,n),a.l=!0,a.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),a=["悋Ꜫ脳맭䅼㯧瞆奤","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(""),r=(new i.atn.ATNDeserializer).deserialize(a),o=r.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,r,o,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(38)}])},,function(e){e.exports=JSON.parse('{"version":"2020_06_20 20_49"}')},,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Type=void 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:"Execução do programa finalizada!",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 execution finished!",aborted_execution:"Program execution was aborted!",unexpected_execution_error:"Unexpected error during program execution."},_disabled_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",write_command_newline_on:"Quebra de linha ativada",write_command_newline_off:" Quebra de linha desativada",write_seprator_menu_text:"Vírgula",initial_program_code:"programa {\\n\\n\\t\\tfuncao vazio inicio () {\\n\\t\\t\\t
|