Ejemplo n.º 1
0
        public override void DoVisit(N n)
        {
            TriggerStmt triggerDef = n.TaskDef.TriggerDef;

            if (triggerDef != null && triggerDef.ExprSeq != null)
            {
                WriteReceive(triggerDef.ExprSeq[0]);
            }
            t.WriteLine("{0} _bwxExpert = new {0}();", n.Parent.Parent.Name);
            t.WriteLine("bwxProcess.PushExpert(_bwxExpert);", n.Parent.Parent.Name);
            t.WriteLine("MentalTask bwxTask = new Method(bwxProcess, bwxMsg);");
            t.WriteLine("bwxProcess.ScheduleTask(bwxTask, _bwxExpert.{0}({1}));", n.Name + "Proc", n.TaskDef.CallString);
        }
Ejemplo n.º 2
0
        void ParseTrigger(TaskDef taskDef)
        {
            TriggerStmt triggerDecl = new TriggerStmt(taskDef);

            PushNode(triggerDecl);
            ExprSeq exprSeq = ParseExprSeq();

            PopNode();
            //
            triggerDecl.ExprSeq = exprSeq;
            taskDef.TriggerDef  = triggerDecl;
            bool isCreator = taskDef.IsCreator;

            taskDef.Parent.AddTriggerDef(taskDef.TriggerDef, isCreator);
        }