Antlr3.Tool.Grammar.RemoveUselessLabels C# (CSharp) Method

RemoveUselessLabels() protected method

protected RemoveUselessLabels ( LabelElementPair>.IDictionary ruleToElementLabelPairMap ) : void
ruleToElementLabelPairMap LabelElementPair>.IDictionary
return void
        protected virtual void RemoveUselessLabels( IDictionary<string, LabelElementPair> ruleToElementLabelPairMap )
        {
            if ( ruleToElementLabelPairMap == null )
                return;

            var tokill = from pair in ruleToElementLabelPairMap.Values
                         let rule = GetRule( pair.elementRef.Text )
                         where rule != null && !rule.HasReturnValue && !pair.actionReferencesLabel
                         select pair.label.Text;

            foreach ( string label in tokill.ToArray() )
                ruleToElementLabelPairMap.Remove( label );
        }
Grammar