Lines Matching refs:active
619 fun pattDepth (Aot {patts=TupleField pl, ...}, active) =
620 List.foldl (fn (t, d) => Int.max(pattDepth(t, active), d)) 0 pl
622 | pattDepth (Aot {patts, defaults,...}, active) =
624 val activeDefaults = defaults intersect active
641 fun bestColumn(colsToDo, noOfCols, asTuples, active) =
649 val thisDepth = pattDepth (List.nth(asTuples, column), active)
697 fun pattCode(Aot {patts, defaults, vars, ...}, active: patSet, nextMatch: patSet * int -> pattCode, tupleNo) =
699 (* Get the set of defaults which are active. *)
700 val activeDefaults = defaults intersect active
746 (* If the active set is empty (match is not exhaustive) or
748 if isEmptySet active orelse active eq activeDefaults
749 then nextMatch(active, tupleNo)
753 pattCode(single, active, nextMatch, tupleNo)
766 fun despatch colsToDo (active, tupleNo) =
768 the active set is empty). *)
769 if isEmptySet colsToDo orelse isEmptySet active
770 then nextMatch(active, tupleNo)
774 val bestcol = bestColumn(colsToDo, noOfCols, asTuples, active)
777 pattCode(List.nth(asTuples, bestcol), active,
785 val takeApartTuple as { leafSet, leafCount, ...} = despatch (from 0 (noOfCols-1)) (active, nextTupleNo)
795 (* If this pattern is in the active set
797 val newActive = patts intersect active
820 (* If this pattern is in the active set
822 val newActive = patts intersect active
844 val newActive = patts intersect active