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); }
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); }