void Trigger(Rule top) { string name; var rule = new Rule(top, false); UpdateLocation(); Expect(16); Identifier(out name); rule.Event = SM.AddEvent(name); while (la.kind == 21 || la.kind == 22 || la.kind == 23) { Action(rule); } rule.CreateTrigger(SM); while (la.kind == 18) { Rule when = new Rule(rule, true); WhenClause(when); while (la.kind == 21 || la.kind == 22 || la.kind == 23) { Action(when); } when.CreateTrigger(SM); } }