00:04
Actually decomposition can be done automatically. Every <
is closed by a
>
whether it be multiple ones or single ones. So basically I just need to
keep track of how many pieces are opened. However that could potentially
mess up for cases such as s < 2 >>> 1
. But really what could be done is
that if the right side group is less than what was opened then it is not
decomposed. This could actually work out with a simple counter and some
logic on the right group size.
00:08
Additionally, some tokens can reset the counter. For example everything
within generics will either be <
, ?
, or a word. So if anything is not
those other types then the count can be reset and it can be assumed to be
an operation instead.
00:11
Array symbols are included too.
00:37
And dot and commas.
00:38
Wierd operator usage should not occur such as boop < baz < bar >> blip
and I suppose I should not worry about that because that would be an error
anyway.
00:42
Even stuff like a < b < c >> d
would not compile because you cannot
right shift or compare boolean values. Any other token such as a parenthesis
will end up just causing the count to reset accordingly.