public void CreateNode(int size, ConfigNodeSubType subType, ConfigNodeType nType, int terminal, [MarshalAs(UnmanagedType.LPWStr)] string text, int textLength, int prefixLength)
{
if (nType == ConfigNodeType.Element)
{
this.lastProcessed = "<" + text + ">";
if ((this.parsing || (this.bNoSearchPath && (string.Compare(text, this.treeRootPath[0], StringComparison.OrdinalIgnoreCase) == 0))) || (((this.depth == this.searchDepth) && (this.searchDepth == this.pathDepth)) && (string.Compare(text, this.treeRootPath[this.pathDepth], StringComparison.OrdinalIgnoreCase) == 0)))
{
this.parsing = true;
ConfigNode currentNode = this.currentNode;
this.currentNode = new ConfigNode(text, currentNode);
if (this.rootNode == null)
{
this.rootNode = this.currentNode;
}
else
{
currentNode.AddChild(this.currentNode);
}
}
else
{
this.depth++;
}
}
else if ((nType == ConfigNodeType.PCData) && (this.currentNode != null))
{
this.currentNode.Value = text;
}
}