Example #1
0
        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));
        }
Example #2
0
        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;
            }
        }