package Ġru . Dm N . Dm N Project . OpCode Ċ Ċ import Ġru . Dm N . Dm N Project . CD CS . OD CS Ċ import Ġru . Dm N . Dm N Project . Data .* Ċ import Ġru . Dm N . Dm N Project . Data . Containers . Dm NP DataMap Ċ import Ġru . Dm N . Dm N Project . VM . Dm NP Reference Ċ import Ġru . Dm N . Dm N Project . VM . Dm NP Utils Ċ import Ġru . Dm N . Dm N Project . VM . throw Cast Ċ Ċ object ĠO CM Data Ġ{ ĊĠĠĠ Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠData ĊĠĠĠĠĠĠĠ Ġ// ĠData . Object ĊĠĠĠĠĠĠĠ ĠO D CS . OCC [" CP "] Ġ= ĠOC Data . Create Package ĊĠĠĠĠĠĠĠ ĠOC Manager . OC [ OC Data . Create Package ] Ġ= Ġ{ Ġ_, Ġvm , Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġn Ġ= Ġvm . stack . pop () !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( n Ġis ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvm . stack . push ( Dm NP V FM Data ( n , ĠD m NP Type . PACKAGE , ĠD m NP DataMap ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( n Ġis ĠArrayList <* >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġne : ĠID m NP Data ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġle : ĠID m NP Data ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġn . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġo Ġ= Ġvm . stack . pop () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( o Ġis ĠID m NP Data Ġ&& Ġo . type Ġ== ĠD m NP Type . PACKAGE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġle Ġ= Ġo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġne Ġ= Ġo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvm . stack . push ( o ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġle Ġ= Ġif Ġ( le Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD m NP V Data ( n [ i ] Ġas ĠString , ĠD m NP Type . PACKAGE , ĠD m NP DataMap ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(( le Ġas ĠI Value Storage ). value Ġas ĠD m NP DataMap ). add ( Dm NP V Data ( n [ i ] Ġas ĠString , ĠD m NP Type . PACKAGE , ĠD m NP DataMap ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġne Ġ= Ġle ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvm . stack . push ( ne ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠO D CS . OCC [" CM "] Ġ= ĠOC Data . Create Method ĊĠĠĠĠĠĠĠ ĠOC Manager . OC [ OC Data . Create Method ] Ġ= Ġ{ Ġ_, Ġvm , Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvm . stack . push ( Dm NP V Data ( vm . stack . pop () Ġas ĠString , ĠD m NP Type . METHOD )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠO D CS . OCC [" CV "] Ġ= ĠOC Data . Create Variable ĊĠĠĠĠĠĠĠ ĠOC Manager . OC [ OC Data . Create Variable ] Ġ= Ġ{ Ġ_, Ġvm , Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvm . stack . push ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD m NP V Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvm . stack . pop () Ġas ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD m NP Type . VAR , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Cast ( vm . stack . pop ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠO D CS . OCC [" CO "] Ġ= ĠOC Data . Create Object ĊĠĠĠĠĠĠĠ ĠOC Manager . OC [ OC Data . Create Object ] Ġ= Ġ{ Ġ_, Ġvm , Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdt Ġ= Ġvm . stack . pop () Ġas ĠD m NP D Vars ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġvm . stack . pop () Ġas ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġvm . stack . pop () Ġas ĠD m NP Type ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġvm . stack . pop () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ ĠO D CS . OCC [" SV "] Ġ= ĠOC Data . SetValue ĊĠĠĠĠĠĠĠ ĠOC Manager . OC [ OC Data . SetValue ] Ġ= Ġ{ Ġ_, Ġvm , Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( vm . stack . pop () Ġas ĠI Value Storage ). value Ġ= Ġvm . stack . pop () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠO D CS . OCC [" CSV "] Ġ= ĠOC Data . Copy SetValue ĊĠĠĠĠĠĠĠ ĠOC Manager . OC [ OC Data . Copy SetValue ] Ġ= Ġ{ Ġ_, Ġvm , Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġo Ġ= Ġvm . stack . pop () Ġas ĠI Value Storage ĊĠĠĠĠĠĠĠĠĠĠĠ Ġo . value Ġ= Ġvm . stack . pop () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvm . stack . push ( o ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠO D CS . OCC [" GV "] Ġ= ĠOC Data . GetValue ĊĠĠĠĠĠĠĠ ĠOC Manager . OC [ OC Data . GetValue ] Ġ= Ġ{ Ġ_, Ġvm , Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvm . stack . push (( vm . stack . pop () Ġas ĠI Value Storage ). value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠO D CS . OCC [" CG V "] Ġ= ĠOC Data . Copy GetValue ĊĠĠĠĠĠĠĠ ĠOC Manager . OC [ OC Data . Copy GetValue ] Ġ= Ġ{ Ġ_, Ġvm , Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvm . stack . push (( vm . stack . peek () Ġas ĠI Value Storage ). value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠO D CS . OCC [" AD "] Ġ= ĠOC Data . Add Data ĊĠĠĠĠĠĠĠ ĠOC Manager . OC [ OC Data . Add Data ] Ġ= Ġ{ Ġ_, Ġvm , Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( vm . stack . pop () Ġas ĠIF M Storage ). fm . add ( vm . stack . pop () Ġas ĠID m NP Data ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠO D CS . OCC [" CAD "] Ġ= ĠOC Data . Copy Add Data ĊĠĠĠĠĠĠĠ ĠOC Manager . OC [ OC Data . Copy Add Data ] Ġ= Ġ{ Ġ_, Ġvm , Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġo Ġ= Ġvm . stack . pop () Ġas ĠIF M Storage ĊĠĠĠĠĠĠĠĠĠĠĠ Ġo . fm . add ( vm . stack . pop () Ġas ĠID m NP Data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvm . stack . push ( o ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠO D CS . OCC [" RD "] Ġ= ĠOC Data . Remove Data ĊĠĠĠĠĠĠĠ ĠOC Manager . OC [ OC Data . Remove Data ] Ġ= Ġ{ Ġ_, Ġvm , Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( vm . stack . pop () Ġas ĠIF M Storage ). fm . remove ( vm . stack . pop ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠO D CS . OCC [" GR D "] Ġ= ĠOC Data . Get Remove Data ĊĠĠĠĠĠĠĠ ĠOC Manager . OC [ OC Data . Get Remove Data ] Ġ= Ġ{ Ġ_, Ġvm , Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvm . stack . push (( vm . stack . pop () Ġas ĠIF M Storage ). fm . remove ( vm . stack . pop ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠO D CS . OCC [" AT V "] Ġ= ĠOC Data . AddTo Value ĊĠĠĠĠĠĠĠ ĠOC Manager . OC [ OC Data . AddTo Value ] Ġ= Ġ{ Ġ_, Ġvm , Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ(( vm . stack . pop () Ġas ĠI Value Storage ). value Ġas ĠD m NP DataMap ). add ( vm . stack . pop () Ġas ĠID m NP Data ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠO D CS . OCC [" CAT V "] Ġ= ĠOC Data . Copy AddTo Value ĊĠĠĠĠĠĠĠ ĠOC Manager . OC [ OC Data . Copy AddTo Value ] Ġ= Ġ{ Ġ_, Ġvm , Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġo Ġ= Ġvm . stack . pop () Ġas ĠI Value Storage ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( o . value Ġas ĠD m NP DataMap ). add ( vm . stack . pop () Ġas ĠID m NP Data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvm . stack . push ( o ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠO D CS . OCC [" RI V "] Ġ= ĠOC Data . Remove In Value ĊĠĠĠĠĠĠĠ ĠOC Manager . OC [ OC Data . Remove In Value ] Ġ= Ġ{ Ġ_, Ġvm , Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ(( vm . stack . pop () Ġas ĠI Value Storage ). value Ġas ĠD m NP DataMap ). remove ( vm . stack . pop ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠO D CS . OCC [" CR IV "] Ġ= ĠOC Data . Copy Remove In Value ĊĠĠĠĠĠĠĠ ĠOC Manager . OC [ OC Data . Copy Remove In Value ] Ġ= Ġ{ Ġ_, Ġvm , Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġo Ġ= Ġvm . stack . pop () Ġas ĠI Value Storage ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( o . value Ġas ĠD m NP DataMap ). remove ( vm . stack . pop ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvm . stack . push ( o ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠO D CS . OCC [" FP "] Ġ= ĠOC Data . Find Package ĊĠĠĠĠĠĠĠ ĠOC Manager . OC [ OC Data . Find Package ] Ġ= Ġ{ Ġ_, Ġvm , Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvm . stack . push ( Dm NP Utils . find Package ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Cast ( vm . stack . pop ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvm . stack . pop () Ġas ĠID m NP Data ĊĠĠĠĠĠĠĠ Ġ))} ĊĠĠĠĠĠĠĠ ĠO D CS . OCC [" AE "] Ġ= ĠOC Data . Add Ext ĊĠĠĠĠĠĠĠ ĠOC Manager . OC [ OC Data . Add Ext ] Ġ= Ġ{ Ġ_, Ġvm , Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġo Ġ= Ġvm . stack . pop () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġe Ġ= Ġvm . stack . pop () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( o Ġas ĠI Ext ending ). ext . add ( Dm NP Reference ({ Ġ}, Ġ{ Ġe Ġas ĠID m NP Data Ġ})) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvm . stack . push ( o ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠO D CS . OCC [" RE "] Ġ= ĠOC Data . Remove Ext ĊĠĠĠĠĠĠĠ ĠOC Manager . OC [ OC Data . Remove Ext ] Ġ= Ġ{ Ġ_, Ġvm , Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġo Ġ= Ġvm . stack . pop () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġn Ġ= Ġvm . stack . pop () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( o Ġas ĠI Ext ending ). ext . remove ( n Ġas ĠString ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvm . stack . push ( o ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠO D CS . OCC [" GD "] Ġ= ĠOC Data . GetData ĊĠĠĠĠĠĠĠ ĠOC Manager . OC [ OC Data . GetData ] Ġ= Ġ{ Ġ_, Ġvm , Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġn Ġ= Ġvm . stack . pop () Ġas ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġo Ġ= Ġvm . stack . pop () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( o Ġis ĠIF M Storage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvm . stack . push ( o . fm [ n ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( o Ġis ĠI Ext ending ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvm . stack . push ( Dm NP Utils . find With Ext ends ( o , Ġn )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠO D CS . OCC [" CG D "] Ġ= ĠOC Data . Copy GetData ĊĠĠĠĠĠĠĠ ĠOC Manager . OC [ OC Data . Copy GetData ] Ġ= Ġ{ Ġ_, Ġvm , Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġo Ġ= Ġvm . stack . elements [ vm . stack . elements . last Index Ġ- Ġ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( o Ġis ĠIF M Storage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvm . stack . push ( o . fm [ vm . stack . pop ()]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( o Ġis ĠI Ext ending ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvm . stack . push ( Dm NP Utils . find With Ext ends ( o , Ġvm . stack . pop () Ġas ĠString )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }