package jetbrains.mps.vcs.annotate; /*Generated by MPS */ import jetbrains.mps.openapi.editor.cells.EditorCell; import jetbrains.mps.baseLanguage.closures.runtime._FunctionTypes; import java.util.Iterator; import jetbrains.mps.baseLanguage.closures.runtime.YieldingIterator; import jetbrains.mps.internal.collections.runtime.Sequence; import jetbrains.mps.openapi.editor.cells.EditorCell_Collection; public class EditorUtils { public EditorUtils() { } public static Iterable<EditorCell> getCellDescendants(final EditorCell _this) { return new _FunctionTypes._return_P1_E0<Iterable<EditorCell>, EditorCell>() { public Iterable<EditorCell> invoke(final EditorCell c) { return new Iterable<EditorCell>() { public Iterator<EditorCell> iterator() { return new YieldingIterator<EditorCell>() { private int __CP__ = 0; protected boolean moveToNext() { __loop__: do { __switch__: switch (this.__CP__) { case -1: assert false : "Internal error"; return false; case 5: this._5_childCell_it = Sequence.fromIterable((EditorCell_Collection) c).iterator(); case 6: if (!(this._5_childCell_it.hasNext())) { this.__CP__ = 1; break; } this._5_childCell = this._5_childCell_it.next(); this.__CP__ = 7; break; case 10: this._10__yield_5i6nbm_b0a0b0a0a0a_it = Sequence.fromIterable(_9_cells).iterator(); case 11: if (!(this._10__yield_5i6nbm_b0a0b0a0a0a_it.hasNext())) { this.__CP__ = 6; break; } this._10__yield_5i6nbm_b0a0b0a0a0a = this._10__yield_5i6nbm_b0a0b0a0a0a_it.next(); this.__CP__ = 12; break; case 3: if (c instanceof EditorCell_Collection) { this.__CP__ = 4; break; } this.__CP__ = 1; break; case 2: this.__CP__ = 3; this.yield(c); return true; case 13: this.__CP__ = 11; this.yield(_10__yield_5i6nbm_b0a0b0a0a0a); return true; case 0: this.__CP__ = 2; break; case 4: this.__CP__ = 5; break; case 7: this._9_cells = invoke(_5_childCell); this.__CP__ = 10; break; case 12: this.__CP__ = 13; break; default: break __loop__; } } while (true); return false; } private EditorCell _5_childCell; private Iterator<EditorCell> _5_childCell_it; private Iterable<EditorCell> _9_cells; private EditorCell _10__yield_5i6nbm_b0a0b0a0a0a; private Iterator<EditorCell> _10__yield_5i6nbm_b0a0b0a0a0a_it; }; } }; } }.invoke(_this); } }