private void GenerateActionMethod(List<Production> productions)
{
Console.WriteLine(" protected override void DoAction(int action)");
Console.WriteLine(" {");
Console.WriteLine(" switch (action)");
Console.WriteLine(" {");
foreach(Production production in productions)
{
if (production.semanticAction != null)
{
string prefix = String.Format(CultureInfo.InvariantCulture, " case {0}: ", production.num);
Console.WriteLine("{0}// {1}", prefix,
StringUtilities.MakeComment(prefix.Length, production.ToString()));
production.semanticAction.GenerateCode(this);
Console.WriteLine(" break;");
}
}
Console.WriteLine(" }");
Console.WriteLine(" }");
Console.WriteLine();
}