you need to know that can we use an "or" term inside a "two" term.
this language bites off "pasta" or "pizza" or "pie". and then it bites off "gang" or "squad".
TRANSLATED:
we make our first term...
const pastaTerm = new StringTerm("pasta")
const pizzaTerm = new StringTerm("pizza")
const pieTerm = new StringTerm("pie")
const foodTerm = new OrTerm([pastaTerm, pizzaTerm, pieTerm])
then our second term...
const gangTerm = new StringTerm("gang")
const squadTerm = new StringTerm("squad")
const groupTerm = new OrTerm([gangTerm, squadTerm])
and put them together...
const foodGroupTerm = new TwoTerm(foodTerm, groupTerm)
no other changes needed.
back to the dream