#DATA // Start the property //Push the get and set messages ARRAY_PROPERTY_NAME_HELPER !1 !2 !3 !4 !5 !6 !7 !8 !9 #DPUSH |CI21 // Push ARGARRAY #SET Q$ 0 ARRAY_DIM_COUNT_HELPER !2 !3 !4 !5 !6 !7 !8 !9 // sets !q to num of dims #DPUSH |CI!q //Push the number of dimensions #DTYPE Q$ !1 // get the property type in q #DPUSH |CI!q // Push the array type #IF (!q=19) //It's a struct, so we must push the struct metadata as well #PUSH !h #STRG H$ !1 #DPUSH |CI!h #POP H$ #ENDIF ARRAY_DIM_SIZE_HELPER !2 !3 !4 !5 !6 !7 !8 !9 //Push the size of each dimension !A [] CREATE$PROPERTY |CI0 |VL