protected virtual void CheckSetCollision(GrammarAST ast, IntervalSet set, int a, int b)
{
for (int i = a; i <= b; i++)
{
if (set.Contains(i))
{
string setText;
if (ast.Children == null)
{
setText = ast.Text;
}
else
{
StringBuilder sb = new StringBuilder();
foreach (object child in ast.Children)
{
if (child is RangeAST)
{
sb.Append(((RangeAST)child).GetChild(0).Text);
sb.Append("..");
sb.Append(((RangeAST)child).GetChild(1).Text);
}
else
{
sb.Append(((GrammarAST)child).Text);
}
sb.Append(" | ");
}
sb.Remove(sb.Length - 3, 3);
setText = sb.ToString();
}
g.tool.errMgr.GrammarError(ErrorType.CHARACTERS_COLLISION_IN_SET, g.fileName, ast.Token,
(char)a + "-" + (char)b, setText);
break;
}
}
}