private void AnalyzeContent(QilNode nd) {
int cntNmspSave;
switch (nd.NodeType) {
case QilNodeType.Loop:
this.addInScopeNmsp = false;
AnalyzeContent((nd as QilLoop).Body);
break;
case QilNodeType.Sequence:
foreach (QilNode ndContent in nd)
AnalyzeContent(ndContent);
break;
case QilNodeType.Conditional:
this.addInScopeNmsp = false;
AnalyzeContent((nd as QilTernary).Center);
AnalyzeContent((nd as QilTernary).Right);
break;
case QilNodeType.Choice:
this.addInScopeNmsp = false;
QilList ndBranches = (nd as QilChoice).Branches;
for (int idx = 0; idx < ndBranches.Count; idx++)
AnalyzeContent(ndBranches[idx]);
break;
case QilNodeType.ElementCtor:
// Start a new namespace scope
this.addInScopeNmsp = true;
this.nsmgr.PushScope();
cntNmspSave = this.cntNmsp;
if (CheckNamespaceInScope(nd as QilBinary))
AnalyzeContent((nd as QilBinary).Right);
this.nsmgr.PopScope();
this.addInScopeNmsp = false;
this.cntNmsp = cntNmspSave;
break;
case QilNodeType.AttributeCtor:
this.addInScopeNmsp = false;
CheckNamespaceInScope(nd as QilBinary);
break;
case QilNodeType.NamespaceDecl:
CheckNamespaceInScope(nd as QilBinary);
break;
case QilNodeType.Nop:
AnalyzeContent((nd as QilUnary).Child);
break;
default:
this.addInScopeNmsp = false;
break;
}
}