private static void CheckActionList(IList<IBfsAction> actions, IBfsDataBlock block)
{
if (actions == null)
return;
for( int index = 0; index < actions.Count; index++)
{
IBfsAction action = actions[index];
if (action is BfsActionUnresolvedAssignment)
{
BfsActionUnresolvedAssignment unresolved = action as BfsActionUnresolvedAssignment;
BfsActionAssignment assignment = new BfsActionAssignment();
assignment.Expression = unresolved.Expression;
assignment.SourceRange = unresolved.SourceRange;
if (block.LocalFields.ContainsKey(unresolved.UnresolvedVariableName))
assignment.LocalVariable = block.LocalFields[unresolved.UnresolvedVariableName];
else
BfsCompiler.ReportError(assignment.SourceRange,
"Could not find local variable: '"+unresolved.UnresolvedVariableName+"'");
actions.Insert(index, assignment);
actions.Remove(action);
}
}
}