// side-effect: updates Alternative with refs in actions
public static void TrackTokenRuleRefsInActions(Grammar g)
{
foreach (Rule r in g.rules.Values)
{
for (int i = 1; i <= r.numberOfAlts; i++)
{
Alternative alt = r.alt[i];
foreach (ActionAST a in alt.actions)
{
ActionSniffer sniffer = new ActionSniffer(g, r, alt, a, a.Token);
sniffer.ExamineAction();
}
}
}
}