Struct behavior in mininotation

hey all -- going over some old code and i am finding something like struct "[t*6 t*4] t*8" $ s "linnhats" no longer works but struct "[1*6 1*4] 1*8" $ s "linnhats" does work, swapping the t's for 1's. interestingly, struct "t*8" $ s "linnhats" still works but as soon as you start stringing more than one t pattern it goes off. anyone find this to be the case on their side as well?

yes, I'm getting the same errorr. This is definetely a bug. I found that it doesn't like consecutive applications of the * mini-syntax operator. This also doesn't work for me:

struct "t*1 t*1" $ s "bd"

1 Like

Just opened an issue on github:

1 Like

thank you for that...you beat me to it! (i was struggling what to name the issue but i think you nailed it :slight_smile:)

1 Like

I found the problem and proposed a possible fix on github.

Would be nice to have another opinion on this, so check it out if you have time @kit-christopher
:slight_smile:

1 Like

ok yeah, good investigative work, that definitely makes sense! to me it's trivial to use 1 instead of t...at some point i made a conscious decision to use one over the other (i'm not exactly sure my rationale for choosing t and f over 1 and 0 to be honest...admittedly it's not as aesthetically pleasing) so it becomes an hard problem to solve, i can always modify my old code now that i understand the issue. no problem at all, especially if the change undermines the usefulness of the triplet shorthand for others.

1 Like

it turned out to be just that the float and integer parsers were parsing to much whitespace, so it wasn't able to distinguish different expressions.

made a PR now, which should fix it. So everything should work now :slight_smile:

3 Likes

awesome! thanks much friend!

1 Like