In boost spirit there are parantheses which can be used to indicate that a part of grammar is going to be repeated
A>>(B>>C)*
I want to use this concept to write a generic scenario controller but I have no idea how they implemented that the parantheses are implicitly creating some object around B and C