public AddTokenInternal ( string token, bool caseSensitive ) : |
||
token | string | |
caseSensitive | bool | |
return |
public TokenTreeNode AddTokenInternal(string token, bool caseSensitive)
{
Char = token[0];
if (!caseSensitive)
ContainsCaseInsensitiveData = true;
if (token.Length == 1)
return this;
string leftovers = token.Substring(1);
char childChar = leftovers[0];
int childIndex = childChar & 0xff;
//make a lookupindex (dont mind if unicode chars end up as siblings as ascii)
TokenTreeNode node = ChildNodes[childIndex];
TokenTreeNode res;
if (node == null)
{
var child = new TokenTreeNode();
ChildNodes[childIndex] = child;
res = child.AddTokenInternal(leftovers, caseSensitive);
MakeRepeatingWS(child);
}
else
{
node = GetMatchingNode(childChar, node);
res = node.AddTokenInternal(leftovers, caseSensitive);
}
return res;
}
public TokenTreeNode AddTokenInternal(string token, bool caseSensitive) { Char = token[0]; if (!caseSensitive) { ContainsCaseInsensitiveData = true; } if (token.Length == 1) { return(this); } string leftovers = token.Substring(1); char childChar = leftovers[0]; int childIndex = childChar & 0xff; //make a lookupindex (dont mind if unicode chars end up as siblings as ascii) TokenTreeNode node = ChildNodes[childIndex]; TokenTreeNode res; if (node == null) { var child = new TokenTreeNode(); ChildNodes[childIndex] = child; res = child.AddTokenInternal(leftovers, caseSensitive); MakeRepeatingWS(child); } else { node = GetMatchingNode(childChar, node); res = node.AddTokenInternal(leftovers, caseSensitive); } return(res); }