63 lines
1.9 KiB
C#
63 lines
1.9 KiB
C#
|
///////////////////////////////////////////////////////////////////////////////
|
|||
|
//
|
|||
|
// Microsoft Research Singularity
|
|||
|
//
|
|||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|||
|
//
|
|||
|
///////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|||
|
|
|||
|
namespace Microsoft.Singularity.Policy.Engine {
|
|||
|
// A ChoicePoint is a single Cell containing a choice point. This replaces
|
|||
|
// the multiple cells used in the WAM in a more strongly typed way. The
|
|||
|
// ChoicePoint is followed on the stack by copies of the arguments.
|
|||
|
internal class ChoicePoint : Cell {
|
|||
|
internal readonly uint _n;
|
|||
|
internal readonly Address _ce;
|
|||
|
internal readonly Address _cp;
|
|||
|
internal readonly Address _b;
|
|||
|
internal /* not readonly */ Address _bp;
|
|||
|
internal readonly Address _tr;
|
|||
|
internal readonly Address _h;
|
|||
|
internal readonly Address _hb;
|
|||
|
internal ChoicePoint(
|
|||
|
uint n
|
|||
|
, Address ce
|
|||
|
, Address cp
|
|||
|
, Address b
|
|||
|
, Address bp
|
|||
|
, Address tr
|
|||
|
, Address h
|
|||
|
, Address hb
|
|||
|
) {
|
|||
|
_n = n;
|
|||
|
_ce = ce;
|
|||
|
_cp = cp;
|
|||
|
_b = b;
|
|||
|
_bp = bp;
|
|||
|
_tr = tr;
|
|||
|
_h = h;
|
|||
|
_hb = hb;
|
|||
|
}
|
|||
|
public override string ToString() {
|
|||
|
return "<CHOICEPOINT "
|
|||
|
+ _n.ToString()
|
|||
|
+ " "
|
|||
|
+ _ce.ToString()
|
|||
|
+ " "
|
|||
|
+ _cp.ToString()
|
|||
|
+ " "
|
|||
|
+ _b.ToString()
|
|||
|
+ " "
|
|||
|
+ _bp.ToString()
|
|||
|
+ " "
|
|||
|
+ _tr.ToString()
|
|||
|
+ " "
|
|||
|
+ _h.ToString()
|
|||
|
+ " "
|
|||
|
+ _hb.ToString()
|
|||
|
+ ">";
|
|||
|
}
|
|||
|
}
|
|||
|
}
|