private ExpressionInfo Expr_Include(XmlNode node)
{
var inclExpr = node.GetSubNode(AstConstants.Subnode + ":" + AstConstants.Subnodes.Expr);
Analyze(inclExpr);
File file;
if (_inclusionResolver.TryResolveInclude(node, out file))
{
if (!_analysisStacks.IncludeStack.Contains(file))
{
Console.WriteLine(">> Resolved " + file.Name + ". Starting analysis.");
_analysisStacks.IncludeStack.Push(file);
var result = _analyzer(ImmutableVariableStorage.CreateFromMutable(_variableStorage), _inclusionResolver, _analysisScope, _analysisStacks);
this._variableStorage = result.Merge(ImmutableVariableStorage.CreateFromMutable(this._variableStorage)).ToMutable();
_analysisStacks.IncludeStack.Pop();
Console.WriteLine(">> Finished " + file.Name + ". Continuing.");
}
}
return new ExpressionInfo();
}