[struct foo float x float y array a b]

would be easier to read with semis:

[struct foo;
float x;
float y;
array a b]

Quick-n-dirty way would be to ignore semis in the arg parser