Antlr4.Semantics.AttributeChecks.IsolatedRuleRef C# (CSharp) Method

IsolatedRuleRef() public method

public IsolatedRuleRef ( string x ) : Rule
x string
return Antlr4.Tool.Rule
        public virtual Rule IsolatedRuleRef(string x)
        {
            if (node.resolver is Grammar)
                return null;

            if (x.Equals(r.name))
                return r;
            IList<LabelElementPair> labels = null;
            if (node.resolver is Rule)
            {
                r.GetElementLabelDefs().TryGetValue(x, out labels);
            }
            else if (node.resolver is Alternative)
            {
                ((Alternative)node.resolver).labelDefs.TryGetValue(x, out labels);
            }
            if (labels != null)
            {  // it's a label ref. is it a rule label?
                LabelElementPair anyLabelDef = labels[0];
                if (anyLabelDef.type == LabelType.RULE_LABEL)
                {
                    return g.GetRule(anyLabelDef.element.Text);
                }
            }
            if (node.resolver is Alternative)
            {
                IList<GrammarAST> value;
                if (((Alternative)node.resolver).ruleRefs.TryGetValue(x, out value) && value != null)
                {
                    return g.GetRule(x);
                }
            }
            return null;
        }
    }