%{
%}

bounded:
    | LEFT bands RIGHT {Bounded(s0,List.rev s1,s2)}

bands:
    | bands band {s1::s0}
    | (* empty *) {[]}

band:
    | TICK {Tick s0}
    | bounded {s0}

%%

%type<int> LEFT RIGHT
%type<string> TICK
%type<Band> bounded band
%type<Band list> bands
