private ExpressionInfo Analyze(XmlNode node)
{
Preconditions.NotNull(node, "node");
ExpressionInfo result;
switch (node.Prefix)
{
case AstConstants.Node:
result = AnalyzeNode(node);
break;
case AstConstants.Subnode:
result = AnalyzeSubnode(node);
break;
case AstConstants.Scalar:
result = AnalyzeScalar(node);
break;
case AstConstants.Attribute:
result = AnalyzeAttribute(node);
break;
default:
throw new ArgumentException("Unknown nodetype. Was: " + node.Prefix, "node");
}
result = ApplyAnalysisExtensions(node, result);
return result;
}