IDev2Tokenizer CreateTokenizer()
{
_tokenizerValidationErrors.Clear();
var stringToSplit = VariableListString;
var splitType = SplitType;
var at = SplitToken;
if(string.IsNullOrWhiteSpace(stringToSplit))
{
return null;
}
var dtb = new Dev2TokenizerBuilder { ToTokenize = stringToSplit };
switch(splitType)
{
case "Index":
if(!string.IsNullOrEmpty(at))
{
// No need for try..parse as ValidationErrors() function checks this!
var indexNum = int.Parse(at);
dtb.AddIndexOp(indexNum);
}
break;
case "Space":
dtb.AddTokenOp(" ", false);
break;
case "Tab":
dtb.AddTokenOp("\t", false);
break;
case "New Line":
if(stringToSplit.Contains("\r\n"))
{
dtb.AddTokenOp("\r\n", false);
}
else if(stringToSplit.Contains("\n"))
{
dtb.AddTokenOp("\n", false);
}
else if(stringToSplit.Contains("\r"))
{
dtb.AddTokenOp("\r", false);
}
else
{
// Assume environment
dtb.AddTokenOp(Environment.NewLine, false);
}
break;
case "Chars":
if(!string.IsNullOrEmpty(at))
{
dtb.AddTokenOp(at, false);
}
break;
}
try
{
return dtb.Generate();
}
catch(Exception ex)
{
_tokenizerValidationErrors.Add(new ErrorInfo { ErrorType = ErrorType.Critical, Message = ex.Message });
}
return null;
}