public virtual void CheckForLabelConflict(Rule r, GrammarAST labelID)
{
string name = labelID.Text;
if (nameToRuleMap.ContainsKey(name))
{
ErrorType etype = ErrorType.LABEL_CONFLICTS_WITH_RULE;
errMgr.GrammarError(etype, g.fileName, labelID.Token, name, r.name);
}
if (tokenIDs.Contains(name))
{
ErrorType etype = ErrorType.LABEL_CONFLICTS_WITH_TOKEN;
errMgr.GrammarError(etype, g.fileName, labelID.Token, name, r.name);
}
if (r.args != null && r.args.Get(name) != null)
{
ErrorType etype = ErrorType.LABEL_CONFLICTS_WITH_ARG;
errMgr.GrammarError(etype, g.fileName, labelID.Token, name, r.name);
}
if (r.retvals != null && r.retvals.Get(name) != null)
{
ErrorType etype = ErrorType.LABEL_CONFLICTS_WITH_RETVAL;
errMgr.GrammarError(etype, g.fileName, labelID.Token, name, r.name);
}
if (r.locals != null && r.locals.Get(name) != null)
{
ErrorType etype = ErrorType.LABEL_CONFLICTS_WITH_LOCAL;
errMgr.GrammarError(etype, g.fileName, labelID.Token, name, r.name);
}
}