void DebugEmit(string message, params object[] values) { SubruleDebuggingConfigurationRule cr; if(shellProcEnv.SubruleDebugConfig.Decide(SubruleDebuggingEvent.Emit, message, shellProcEnv.ProcEnv, out cr) == SubruleDebuggingDecision.Break) InternalHalt(cr, message, values); SubruleComputation emit = new SubruleComputation(shellProcEnv.ProcEnv.NamedGraph, SubruleComputationType.Emit, message, values); computationsEnteredStack.Add(emit); if(detailedMode) Console.WriteLine(emit.ToString(false)); }
void DebugExit(string message, params object[] values) { SubruleDebuggingConfigurationRule cr; if(shellProcEnv.SubruleDebugConfig.Decide(SubruleDebuggingEvent.Rem, message, shellProcEnv.ProcEnv, out cr) == SubruleDebuggingDecision.Break) InternalHalt(cr, message, values); RemoveUpToEntryForExit(message); if(detailedMode) { SubruleComputation exit = new SubruleComputation(shellProcEnv.ProcEnv.NamedGraph, SubruleComputationType.Exit, message, values); Console.WriteLine(exit.ToString(false)); } if(outOfDetailedMode && (computationsEnteredStack.Count <= outOfDetailedModeTarget || computationsEnteredStack.Count == 0)) { detailedMode = true; outOfDetailedMode = false; outOfDetailedModeTarget = -1; } }