package Ġarray . builtins Ċ Ċ import Ġarray .* Ċ Ċ class ĠType of Function Ġ: ĠA PL Function Descriptor Ġ{ ĊĠĠĠ Ġclass ĠType of Function Impl ( pos : ĠPosition ) Ġ: ĠNo Axis AP L Function ( pos ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġeval 1 Arg ( context : ĠRuntime Context , Ġa : ĠA PL Value ): ĠA PL Value Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv Ġ= Ġa . unwrap Deferred Value () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠA PL Symbol ( context . engine . intern Symbol ( v . apl ValueType . typeName , Ġcontext . engine . core Namespace )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmake ( pos : ĠPosition ) Ġ= ĠType of Function Impl ( pos . with Name (" typeof ")) Ċ } Ċ Ċ class ĠIs Loc ally Bound Function Ġ: ĠA PL Function Descriptor Ġ{ ĊĠĠĠ Ġclass ĠIs Loc ally Bound Function Impl ( pos : ĠPosition ) Ġ: ĠNo Axis AP L Function ( pos ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġeval 1 Arg ( context : ĠRuntime Context , Ġa : ĠA PL Value ): ĠA PL Value Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv Ġ= Ġa . unwrap Deferred Value () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġmake Boolean ( context . is Loc ally Bound ( v . ensure Symbol ( pos ). value )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmake ( pos : ĠPosition ) Ġ= ĠIs Loc ally Bound Function Impl ( pos . with Name (" is Loc ally Bound ")) Ċ } Ċ Ċ class ĠComp Function Ġ: ĠA PL Function Descriptor Ġ{ ĊĠĠĠ Ġclass ĠComp Function Impl ( pos : ĠPosition ) Ġ: ĠNo Axis AP L Function ( pos ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġeval 1 Arg ( context : ĠRuntime Context , Ġa : ĠA PL Value ): ĠA PL Value Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġa . collapse () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmake ( pos : ĠPosition ): ĠA PL Function Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠComp Function Impl ( pos . with Name (" comp ")) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠThis Ġvalue Ġrepresents Ġthe Ġresult Ġof Ġa Ġ 1 - arg Ġfunction Ġcall Ġwhich Ġwill Ġonly Ġbe Ġperformed Ċ Ġ* Ġafter Ġthe Ġvalue Ġis Ġactually Ġneeded . Ċ Ġ*/ Ċ class ĠDeferred AP L Value 1 Arg ( val Ġfn : ĠA PL Function , Ġval Ġcontext : ĠRuntime Context , Ġval Ġa : ĠA PL Value ) Ġ: ĠA PL Array () Ġ{ ĊĠĠĠ Ġoverride Ġval Ġdimensions Ġget () Ġ= Ġa . dimensions ĊĠĠĠ Ġoverride Ġfun Ġvalue At ( p : ĠInt ) Ġ= Ġfn . eval 1 Arg ( context , Ġa , Ġnull ). value At ( p ) ĊĊĠĠĠ Ġoverride Ġfun Ġunwrap Deferred Value (): ĠA PL Value Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfn . eval 1 Arg ( context , Ġa , Ġnull ). unwrap Deferred Value () ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠThis Ġvalue Ġrepresents Ġthe Ġresult Ġof Ġa Ġ 2 - arg Ġfunction Ġcall Ġwhich Ġwill Ġonly Ġbe Ġperformed Ċ Ġ* Ġafter Ġthe Ġvalue Ġis Ġactually Ġneeded . Ċ Ġ*/ Ċ class ĠDeferred AP L Value 2 Arg ( val Ġfn : ĠA PL Function , Ġval Ġcontext : ĠRuntime Context , Ġval Ġa : ĠA PL Value , Ġval Ġb : ĠA PL Value ) Ġ: ĠA PL Array () Ġ{ ĊĠĠĠ Ġoverride Ġval Ġdimensions Ġget () Ġ= Ġa . dimensions ĊĠĠĠ Ġoverride Ġfun Ġvalue At ( p : ĠInt ) Ġ= Ġfn . eval 2 Arg ( context , Ġa , Ġb , Ġnull ). value At ( p ) ĊĊĠĠĠ Ġoverride Ġfun Ġunwrap Deferred Value (): ĠA PL Value Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfn . eval 2 Arg ( context , Ġa , Ġb , Ġnull ). unwrap Deferred Value () ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠDe fer AP LO perator Ġ: ĠAP LO perator One Arg Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcombine Function ( fn : ĠA PL Function , Ġoperator Axis : ĠInstruction ?, Ġpos : ĠPosition ): ĠA PL Function Descriptor Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠDe fer AP L Function ( fn ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠDe fer AP L Function ( val Ġfn : ĠA PL Function ) Ġ: ĠA PL Function Descriptor Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġmake ( pos : ĠPosition ): ĠA PL Function Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠNo Axis AP L Function ( pos ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġeval 1 Arg ( context : ĠRuntime Context , Ġa : ĠA PL Value ): ĠA PL Value Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDeferred AP L Value 1 Arg ( fn , Ġcontext , Ġa ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġeval 2 Arg ( context : ĠRuntime Context , Ġa : ĠA PL Value , Ġb : ĠA PL Value ): ĠA PL Value Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDeferred AP L Value 2 Arg ( fn , Ġcontext , Ġa , Ġb ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠSleep Function Ġ: ĠA PL Function Descriptor Ġ{ ĊĠĠĠ Ġclass ĠSleep Function Impl ( pos : ĠPosition ) Ġ: ĠNo Axis AP L Function ( pos ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġeval 1 Arg ( context : ĠRuntime Context , Ġa : ĠA PL Value ): ĠA PL Value Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsleep Time Seconds Ġ= Ġa . ensure Number ( pos ). as Double () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsleep Millis (( sleep Time Seconds Ġ* Ġ 1 0 0 0 ). to Long ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsleep Time Seconds . make AP L Number () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmake ( pos : ĠPosition ) Ġ= ĠSleep Function Impl ( pos ) Ċ } Ċ Ċ class ĠTag Catch ( ĊĠĠĠ Ġval Ġtag : ĠA PL Value , Ġval Ġdata : ĠA PL Value , Ġdescription : ĠString ? Ġ= Ġnull , Ġpos : ĠPosition ? Ġ= Ġnull Ċ ) Ġ: ĠAP LE val Exception ( description Ġ?: Ġdata . formatted ( Format Style . PLAIN ), Ġpos ) Ċ Ċ class ĠUn wind Protect AP L Function Ġ: ĠA PL Function Descriptor Ġ{ ĊĠĠĠ Ġclass ĠUn wind Protect AP L Function Impl ( pos : ĠPosition ) Ġ: ĠNo Axis AP L Function ( pos ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġeval 1 Arg ( context : ĠRuntime Context , Ġa : ĠA PL Value ): ĠA PL Value Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġa Dimensions Ġ= Ġa . dimensions ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( a Dimensions . size Ġ!= Ġ 1 Ġ|| Ġa Dimensions [ 0 ] Ġ!= Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠAP LE val Exception (" Invalid Ġdimensions Ġin Ġun wind Protect Ġcall ", Ġpos ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfn Ġ= Ġa . value At ( 0 ). collapse First Level () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( fn Ġ! is ĠLambda Value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠAP LE val Exception (" Handler Ġfunction Ġis Ġnot Ġa Ġlambda ", Ġpos ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfinally Handler Ġ= Ġa . value At ( 1 ). collapse First Level () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( finally Handler Ġ! is ĠLambda Value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠAP LE val Exception (" Un wind Ġhandler Ġis Ġnot Ġa Ġlambda ", Ġpos ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġthrown Exception : ĠAP LE val Exception ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġresult : ĠA PL Value ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġfn . make Closure (). eval 1 Arg ( context , ĠA PL NullValue . AP L _ NULL _ INSTANCE , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠAP LE val Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrown Exception Ġ= Ġe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinally Handler . make Closure (). eval 1 Arg ( context , ĠA PL NullValue . AP L _ NULL _ INSTANCE , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( throw n Exception Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġthrown Exception ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresult !! ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmake ( pos : ĠPosition ) Ġ= ĠUn wind Protect AP L Function Impl ( pos ) Ċ } Ċ Ċ class ĠAt Leave Scope Operator Ġ: ĠAP LO perator One Arg Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcombine Function ( fn : ĠA PL Function , Ġoperator Axis : ĠInstruction ?, Ġpos : ĠPosition ): ĠA PL Function Descriptor Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( operator Axis Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠOperator Axis NotSupported ( pos ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠAt Leave Scope Function Descriptor ( fn ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠAt Leave Scope Function Descriptor ( val Ġfn 1 Descriptor : ĠA PL Function ) Ġ: ĠA PL Function Descriptor Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġmake ( pos : ĠPosition ): ĠA PL Function Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfn Ġ= Ġfn 1 Descriptor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠA PL Function ( pos ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġeval 1 Arg ( context : ĠRuntime Context , Ġa : ĠA PL Value , Ġaxis : ĠA PL Value ?): ĠA PL Value Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . push Release Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfn . eval 1 Arg ( context , Ġa , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġa ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠThrow Function Ġ: ĠA PL Function Descriptor Ġ{ ĊĠĠĠ Ġclass ĠThrow Function Impl ( pos : ĠPosition ) Ġ: ĠNo Axis AP L Function ( pos ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġeval 1 Arg ( context : ĠRuntime Context , Ġa : ĠA PL Value ): ĠA PL Value Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġengine Ġ= Ġcontext . engine ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow AP L Exception ( Tag Catch ( AP LS ymbol ( engine . intern Symbol (" error ", Ġengine . core Namespace )), Ġa , Ġnull , Ġpos )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġeval 2 Arg ( context : ĠRuntime Context , Ġa : ĠA PL Value , Ġb : ĠA PL Value ): ĠA PL Value Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow AP L Exception ( Tag Catch ( a , Ġb , Ġnull , Ġpos )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmake ( pos : ĠPosition ) Ġ= ĠThrow Function Impl ( pos ) Ċ } Ċ Ċ class ĠCatch Operator Ġ: ĠAP LO perator One Arg Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcombine Function ( fn : ĠA PL Function , Ġoperator Axis : ĠInstruction ?, Ġpos : ĠPosition ): ĠA PL Function Descriptor Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( operator Axis Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠOperator Axis NotSupported ( pos ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠCatch Function Descriptor ( fn ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠCatch Function Descriptor ( ĊĠĠĠĠĠĠĠ Ġval Ġfn 1 Descriptor : ĠA PL Function ĊĠĠĠ Ġ) Ġ: ĠA PL Function Descriptor Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġmake ( pos : ĠPosition ): ĠA PL Function Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfn Ġ= Ġfn 1 Descriptor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠNo Axis AP L Function ( pos ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġeval 1 Arg ( context : ĠRuntime Context , Ġa : ĠA PL Value ): ĠA PL Value Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdimensions Ġ= Ġa . dimensions ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunless ( dimensions . size Ġ== Ġ 2 Ġ&& Ġdimensions [ 1 ] Ġ== Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow AP L Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAP LI l legal ArgumentException ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Catch Ġargument Ġmust Ġbe Ġa Ġtwo - dimensional Ġarray Ġwith Ġtwo Ġcolumns ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpos )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfn . eval 1 Arg ( context , ĠA PL NullValue . AP L _ NULL _ INSTANCE , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠTag Catch ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsent Tag Ġ= Ġe . tag ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmultip liers Ġ= Ġdimensions . multip liers () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( rowIndex Ġin Ġ 0 Ġuntil Ġdimensions [ 0 ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchecked Ġ= Ġa . value At ( dimensions . index From Position ( int ArrayOf ( rowIndex , Ġ 0 ), Ġmultip liers )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sent Tag . compare Equals ( checked )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhandler Function Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . value At ( dimensions . index From Position ( int ArrayOf ( rowIndex , Ġ 1 ), Ġmultip liers )). unwrap Deferred Value () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( handler Function Ġ! is ĠLambda Value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow AP L Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAP LI l legal ArgumentException ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" The Ġhandler Ġis Ġnot Ġcallable , Ġthis Ġis Ġcurrently Ġan Ġerror .", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpos )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġhandler Function . make Closure (). eval 2 Arg ( context , Ġe . data , Ġsent Tag , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġe ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠLabels Function Ġ: ĠA PL Function Descriptor Ġ{ ĊĠĠĠ Ġclass ĠLabels Function Impl ( pos : ĠPosition ) Ġ: ĠA PL Function ( pos ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġeval 2 Arg ( context : ĠRuntime Context , Ġa : ĠA PL Value , Ġb : ĠA PL Value , Ġaxis : ĠA PL Value ?): ĠA PL Value Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! b . is Scalar ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb Dimensions Ġ= Ġb . dimensions ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaxis Int Ġ= Ġif Ġ( axis Ġ== Ġnull ) Ġb Dimensions . last Axis ( pos ) Ġelse Ġaxis . ensure Number ( pos ). as Int () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġensure Valid Axis ( axis Int , Ġb Dimensions , Ġpos ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġa Dimensions Ġ= Ġa . dimensions ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( a Dimensions . size Ġ!= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow AP L Exception ( Invalid Dimensions Exception (" Left Ġargument Ġmust Ġbe Ġan Ġarray Ġof Ġlabels ", Ġpos )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( a Dimensions [ 0 ] Ġ!= Ġb Dimensions [ axis Int ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow AP L Exception ( Invalid Dimensions Exception (" Label Ġlist Ġhas Ġincorrect Ġlength ", Ġpos )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġextra Labels Ġ= ĠArrayList < List < Axis Label ?> ? >( b Dimensions . size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat ( b Dimensions . size ) Ġ{ Ġi Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv Ġ= Ġif Ġ( i Ġ== Ġaxis Int ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlabels List Ġ= ĠArrayList < Axis Label ? >( b Dimensions [ axis Int ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat ( b Dimensions [ axis Int ]) Ġ{ Ġi 2 Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġa . value At ( i 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value . dimensions . size Ġ!= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow AP L Exception ( Invalid Dimensions Exception (" Label Ġshould Ġbe Ġa Ġsingle - dimensional Ġarray ", Ġpos )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabels List . add ( if Ġ( value . dimensions [ 0 ] Ġ== Ġ 0 ) Ġnull Ġelse ĠAxis Label ( value . toString Value ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabels List ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġextra Labels . add ( v ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠLabel led Array . make ( b , Ġextra Labels ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow AP L Exception ( AP L In compatible Domains Exception (" Unable Ġto Ġset Ġlabels Ġon Ġnon - array Ġinstances ", Ġpos )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmake ( pos : ĠPosition ) Ġ= ĠLabels Function Impl ( pos . with Name (" labels ")) Ċ } Ċ Ċ class ĠTime Millis Function Ġ: ĠA PL Function Descriptor Ġ{ ĊĠĠĠ Ġclass ĠTime Millis Function Impl ( pos : ĠPosition ) Ġ: ĠNo Axis AP L Function ( pos ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġeval 1 Arg ( context : ĠRuntime Context , Ġa : ĠA PL Value ): ĠA PL Value Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġunless ( a . ensure Number ( pos ). as Int () Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow AP L Exception ( AP LI l legal ArgumentException (" Argument Ġto Ġtime Millis Ġmust Ġbe Ġ 0 ", Ġpos )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠcurrentTime (). make AP L Number () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmake ( pos : ĠPosition ) Ġ= ĠTime Millis Function Impl ( pos . with Name (" time Millis ")) Ċ } Ċ Ċ class ĠFor ced ElementType Array ( val Ġinner : ĠA PL Value , Ġval Ġoverride Type : ĠArray Member Type ) Ġ: ĠDeleg ated Value ( inner ) Ġ{ ĊĠĠĠ Ġoverride Ġval Ġspecial ised Type Ġget () Ġ= Ġoverride Type ĊĊĠĠĠ Ġprivate Ġfun Ġmaybe Wrap Value ( value : ĠA PL Value ): ĠA PL Value Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( value . special ised Type Ġ=== Ġoverride Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠDeleg ated Value ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġspecial ised Type Ġget () Ġ= Ġoverride Type ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcollapse Int () Ġ= Ġmaybe Wrap Value ( inner . collapse Int ()) ĊĠĠĠ Ġoverride Ġfun Ġunwrap Deferred Value () Ġ= Ġmaybe Wrap Value ( inner . unwrap Deferred Value ()) Ċ } Ċ Ċ class ĠEnsure Type Function ( val Ġoverride Type : ĠArray Member Type ) Ġ: ĠA PL Function Descriptor Ġ{ ĊĠĠĠ Ġinner Ġclass ĠEnsure Type Function Impl ( pos : ĠPosition ) Ġ: ĠNo Axis AP L Function ( pos ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġeval 1 Arg ( context : ĠRuntime Context , Ġa : ĠA PL Value ): ĠA PL Value Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠFor ced ElementType Array ( a , Ġoverride Type ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmake ( pos : ĠPosition ) Ġ= ĠEnsure Type Function Impl ( pos ) Ċ } Ċ