示例#1
0
llvm::iterator_range<BoxIterator> Box::pyElements() {
    static std::string iter_str("__iter__");

    Box* iter = callattr(const_cast<Box*>(this), &iter_str, true, ArgPassSpec(0), NULL, NULL, NULL, NULL, NULL);
    if (iter) {
        return llvm::iterator_range<BoxIterator>(++BoxIterator(iter), BoxIterator(nullptr));
    }

    raiseExcHelper(TypeError, "'%s' object is not iterable", getTypeName(this)->c_str());
}
示例#2
0
 static BoxIterator end(const Box& box)
 {
   return BoxIterator(box, true/*at_end==true*/);
 }
示例#3
0
 static BoxIterator begin(const Box& box)
 {
   return BoxIterator(box);
 }