while (aiter.hasNext()) {
PuzzlePiece def = aiter.next();
MSVExpressionIterator datatypeFinder = new MSVExpressionIterator(def.getExpression(), DataExp.class, MSVExpressionIterator.DIRECT_CHILDREN_ONLY);
while (datatypeFinder.hasNext()) {
DataExp data_exp = (DataExp) datatypeFinder.next();
def.mDatatypes.add(new PuzzlePiece(data_exp));
}
MSVExpressionIterator valueFinder = new MSVExpressionIterator(def.getExpression(), ValueExp.class, MSVExpressionIterator.DIRECT_CHILDREN_ONLY);
while (valueFinder.hasNext()) {