@Override
 public AstNode switchStatement(AstNode expr, Iterable<AstNode> cases) {
   SwitchStatement s = new SwitchStatement();
   s.setExpression(expr);
   for (AstNode c : cases) {
     // the user must make sure it sends the correct types. TODO the code can check and build the
     // correct type if
     // needed
     s.addCase((SwitchCase) c);
   }
   return s;
 }