lego/src/ZSplitUtils.m3


Copyright (C) 1994, Digital Equipment Corp.

MODULE ZSplitUtils;

IMPORT Split, VBT, VBTClass, ZSplit;

PROCEDURE FindZChild (v: VBT.T): VBT.T =
  <* FATAL Split.NotAChild *>
  VAR
    ch := v;
    p  := v.parent;
  BEGIN
    WHILE (p # NIL) AND ((NOT IsZSplit(p)) OR (ch = Split.Pred(p, NIL))) DO
      ch := p;
      p := p.parent;
    END;
    IF p = NIL THEN RETURN NIL ELSE RETURN ch END;
  END FindZChild;

PROCEDURE IsZSplit (v: VBT.T): BOOLEAN =
  BEGIN
    TYPECASE (v) OF ZSplit.T => RETURN TRUE ELSE RETURN FALSE END
  END IsZSplit;

BEGIN
END ZSplitUtils.