User:Alemagno12/AM12 Array Notation/Hyperdimensional

Nested Dimensional Array Notation, or NDAN for short, is the fourth part of my array notation.

WIP!

Definition
We have arrays inside of {}!

Limit is 1{1{...}2}2

Rules
Expressions are of the form n(x,y|A1{A}A2), where x,and yare positive integers, A is any array, and A1 and A2 are any arrays with the highest separator of a level lower than {A}. Comma is a shorthand for {1}.

x is the base, and y is the nester.

Case 1: If there is no |, replace the array with xy

Case 2: If there is a |:
 * Search for the highest separator level.
 * Case 2a: If the highest leveled separator is a comma (linear array), then:
 * Search for the last entry.
 * Case 2aa: If the last entry is a 1, delete it.
 * Else, search for the first entry.
 * Case 2ab: If there isn't anything after the first entry, decrease it by 1 and nest the nester the nester times
 * Case 2ac: If there's something after the first entry, and the first entry is 1:
 * Case 2aca: If the second entry is 1, ignore the rest of the expression and solve the array like normal
 * Case 2acb: If the second entry is not 1, decrease it by 1 and nest the first entry the nester times
 * Case 2b: If the highest leveled separator has a lower level than {1,2}, then:
 * Call the highest leveled separator N. Then, search for anything after N.
 * Case 2ba: If there's only a 1 after N, delete it along with N.
 * Case 2bb: If there's an array after the N, which is not 1:
 * Search for anything before N.
 * Case 2bba: If there's anything before N, which is not a 1, ignore the rest of the expression and solve it like a normal array.
 * Else, go back to the array after N.
 * Case 2bbb: If the first entry after N is a 1, ignore the rest of the expression and solve it like a normal array.
 * Case 2bbc: If the first entry after N is not a 1, decrement it by 1, and do the following steps:
 * Create a clone of the array. Call it A. The N in A becomes N'.
 * Decrement the number inside N' by 1.
 * Nest the array after N' the nester times.
 * Case 2c: If the highest leveled separator has a higher level than {1,2}, then:
 * Call the highest leveled separator N.
 * Case 2ca: If the first entry inside of N is 1, ignore the rest of the expression and solve the array inside of N like a normal expression.
 * Case 2cb: If the first entry inside of N is not 1, ignore the rest of the array inside of N and solve the expression like normal.

The process ends.

Levels
In NDAN, the base and the nester do not count as part of the expression. Nor does the |.

The level function is called lv.

Here are the rules for comparing separators by levels. Let S1 and S2 be the separators to compare, and S is any separator.
 * Convert all the commas to {1}'s, just for simplicity's sake.
 * Let LVS be the number inside of S.
 * Case 1: LVS 1 > LVS 2, S1 > S2
 * Case 2: LVS 1 < LVS 2, S1 < S2
 * Case 3: LVS 1 = LVS 2, S1 = S2

Subfunctions
There are no subfunctions in NDAN.