Antlr4.Semantics.SymbolChecks.CheckForLabelConflict C# (CSharp) Method

CheckForLabelConflict() public method

public CheckForLabelConflict ( Rule r, GrammarAST labelID ) : void
r Antlr4.Tool.Rule
labelID Antlr4.Tool.Ast.GrammarAST
return void
        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);
            }
        }