Basket = "basket" SeveralThings. SeveralThings ~ "(" {Thing} ")" . Thing : Fruit | Basket. Fruit : Apple | Orange *common* Weight. Weight = Integer. Apple = "apple". Orange = "orange". SummingVisitor = Integer. PrintingVisitor = . TraverseThingVisitor = . TraverseBasketVisitor = . GetWeightVisitor = Integer. Main = .