本文整理汇总了C#中Frame.PushLeave方法的典型用法代码示例。如果您正苦于以下问题:C# Frame.PushLeave方法的具体用法?C# Frame.PushLeave怎么用?C# Frame.PushLeave使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Frame
的用法示例。
在下文中一共展示了Frame.PushLeave方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: temporize
public static Variable temporize(Variable v, Frame fr, int mode)
{
int type = (mode & 1) != 0 ? LeaveHook.UNDO : LeaveHook.UNDO + LeaveHook.KEEP;
if ((mode & 2) != 0) {
fr.PushLeave(type, v.Fetch());
}
else if (v.islist) {
fr.PushLeave(type, Kernel.RunInferior(v.Fetch().InvokeMethod(
Kernel.GetInferiorRoot(), "TEMP",
new Variable[] { v }, null)).Fetch());
}
else {
Frame o = new Frame();
o.lex0 = v;
o.lex1 = v.Fetch();
fr.PushLeave(type, Kernel.MakeSub(Kernel.TEMP_SI, o));
}
return v;
}
示例2: temporize
public static Variable temporize(Constants c, Variable v, Frame fr, int mode)
{
int type = (mode & 1) != 0 ? LeaveHook.UNDO : LeaveHook.UNDO + LeaveHook.KEEP;
if ((mode & 2) != 0) {
fr.PushLeave(type, v.Fetch());
}
else if (v.List) {
fr.PushLeave(type, InvokeMethod("TEMP", v).Fetch());
}
else {
// this is quite dubious really, Frame and LexPad should be separated
Frame o = new Frame(null, null, c.setting.TEMP_SI, null);
o.lex0 = v;
o.lex1 = v.Fetch();
fr.PushLeave(type, Kernel.MakeSub(c.setting.TEMP_SI, o));
}
return v;
}