diff --git a/config/mdarray.cfg b/config/mdarray.cfg index 5e890feb..469f5da1 100644 --- a/config/mdarray.cfg +++ b/config/mdarray.cfg @@ -1,5 +1,4 @@ // Cubescript Multidimensional Arrays - islists = [ bool = 0 loop i (listlen $arg1) [ @@ -42,13 +41,12 @@ removeLeadingWhitespace = [ reverseString = [ oldstr = $arg1 newstr = "" - loop i (strlen $oldstr) [ newstr = (concatword $newstr (substr $oldstr (* (+ $i 1) -1) 1)) ] result $newstr ] - +// returns the subarray name of a open bracket position in an existing mdarray extractSubarrayName = [ open_bracket_pos = $arg2 subarray_name = "" @@ -63,7 +61,7 @@ extractSubarrayName = [ ] result (reverseString $subarray_name) ] - +// adds a new subarray to an existing mdarray MDArray_New_Subarray = [ if (= (findlist (getalias $arg1) $arg2) -1) [ add2list $arg1 $arg2 @@ -74,7 +72,7 @@ MDArray_New_Subarray = [ ] ] ] - +// finds the open and close bracket pair positions of a subarray in an existing mdarray MDArray_Get_Bracket_Positions = [ open_bracket_pos = (+ (strpos $arg1 $arg2) (+ (strlen $arg2) 1)) close_bracket_pos = -1 @@ -87,14 +85,13 @@ MDArray_Get_Bracket_Positions = [ ] ] ] - +// returns either an entire subarray or a single element from a subarray of an existing mdarray MDArray_Get = [ mdarray = (getalias $arg1) target = (findlist $mdarray $arg2) if (!= $target -1) [ MDArray_Get_Bracket_Positions $mdarray $arg2 - if (!= $close_bracket_pos -1) [ += open_bracket_pos 1 // skip the bracket itself when extracting the subarray with the line below -= close_bracket_pos 1 @@ -112,7 +109,7 @@ MDArray_Get = [ ] ] [ echo (red)Error: $arg2 is not a subarray of $arg1 ] ] - +// returns a list of all opening bracket "[" positions in an existing mdarray MDArray_Get_All_Opening_Bracket_Positions = [ o_positions = "" loop i (strlen $arg1) [ @@ -124,11 +121,11 @@ MDArray_Get_All_Opening_Bracket_Positions = [ result $o_positions ] [ result -1 ] ] - +// returns the number of subarrays in an existing mdarray MDArray_Get_Subarray_Count = [ result (listlen (MDArray_Get_All_Opening_Bracket_Positions (getalias $arg1))) ] - +// returns a list of all subarray names in an existing mdarray MDArray_Get_All_Subarray_Names = [ opening_brackets = (MDArray_Get_All_Opening_Bracket_Positions (getalias $arg1)) subarray_names = "" @@ -138,7 +135,8 @@ MDArray_Get_All_Subarray_Names = [ ] result $subarray_names ] - +// searches the contents of all subarrays in an existing mdarray for a keyword +// returns a list of all subarray names that have content with matches MDArray_Search = [ mdarray = (getalias $arg1) token = $arg2 @@ -155,7 +153,7 @@ MDArray_Search = [ ] result $search_results ] - +// deletes an entire subarray from an existing mdarray MDArray_Delete_Subarray = [ orig_array = (getalias $arg1) target_subarray = $arg2 @@ -166,9 +164,7 @@ MDArray_Delete_Subarray = [ if (!= $target_pos -1) [ loop h (strlen $orig_array) [ if (< $h $target_pos) continue [ - if (strcmp (substr $orig_array $h 1) "]") [ - gotclose = $h; break - ] + if (strcmp (substr $orig_array $h 1) "]") [ gotclose = $h; break ] ] ] delstr = (substr $orig_array $target_pos (- (+ $gotclose 1) $target_pos)) @@ -176,7 +172,7 @@ MDArray_Delete_Subarray = [ result (getalias $arg1) ] ] - +// modifies an existing element in an existing subarray MDArray_Modify_Subarray = [ original_subarray = (MDArray_Get $arg1 $arg2 -1) target_elem = $arg3 @@ -186,10 +182,8 @@ MDArray_Modify_Subarray = [ if (<= (countQuotes $original_subarray) 2) [ original_subarray = (addpunct $original_subarray) ] - loop j (listlen $original_subarray) [ next_elem = (at $original_subarray $j) - if (= $j $target_elem) [ if (> (listlen $new_elem) 1) [ add2list new_subarray (addpunct $new_elem) @@ -203,27 +197,18 @@ MDArray_Modify_Subarray = [ MDArray_Delete_Subarray $arg1 $arg2 MDArray_New_Subarray $arg1 $arg2 $new_subarray ] - +// adds a new element to an existing subarray MDArray_Add_To_Subarray = [ mdarray = (getalias $arg1) - target_sub = (findlist $mdarray $arg2) to_add = $arg3 - - if (!= $target_sub -1) [ + if (!= (findlist $mdarray $arg2) -1) [ subarray = (MDArray_Get $arg1 $arg2 -1) - if (islists $to_add) [ - if (islists $subarray) [ newarray = (concat $subarray $to_add) ] [ - newarray = (concat (addpunct $subarray) $to_add) - ] - ] [ - if (islists $subarray) [ newarray = (concat $subarray (addpunct $to_add)) ] [ - newarray = (concat (addpunct $subarray) (addpunct $to_add)) - ] - ] + if (<= (countQuotes $subarray) 2) [ subarray = (addpunct $subarray) ] + if (<= (countQuotes $to_add) 2) [ to_add = (addpunct $to_add) ] MDArray_Delete_Subarray $arg1 $arg2 - MDArray_New_Subarray $arg1 $arg2 (removeLeadingWhitespace $newarray) + MDArray_New_Subarray $arg1 $arg2 (format "%1 %2" $subarray $to_add) ] ] // some of these aliases can cause issues if they get stored in saved.cfg (missing bracket errors/etc.) -addListOnQuit "bool MDArray_New_Subarray MDArray_Get_Bracket_Positions MDArray_Get reverseString MDArray_Get_All_Opening_Bracket_Positions MDArray_Get_Subarray_Count MDArray_Get_All_Subarray_Names extractSubarrayName MDArray_Search MDArray_Delete_Subarray MDArray_Modify_Subarray original_subarray target_elem new_elem new_subarray j next_elem islists hasQuotePair got_open_quote got_close_quote r i d mdarray subarray firstchar lastchar oldstr newstr subarray_names subarray_name tmpchar token subarrays search_results curarray orig_array target_subarray target_pos gotclose delstr h next_char" \ No newline at end of file +addListOnQuit "bool MDArray_New_Subarray MDArray_Get_Bracket_Positions MDArray_Get reverseString MDArray_Get_All_Opening_Bracket_Positions MDArray_Get_Subarray_Count MDArray_Get_All_Subarray_Names extractSubarrayName MDArray_Search MDArray_Delete_Subarray MDArray_Modify_Subarray original_subarray target_elem new_elem new_subarray j next_elem islists hasQuotePair got_open_quote got_close_quote r i d mdarray subarray firstchar lastchar oldstr newstr subarray_names subarray_name tmpchar token subarrays search_results curarray orig_array target_subarray target_pos gotclose delstr h next_char"