public void resolveConsumerReferences(Map charConsumers, Map doneList)
		throws LexerException
	{
		if (doneList.get(this) != null)
			return;
		doneList.put(this, this);
		
		List [] varr = new List[] { sequence, getAlternatives(), constraints };
		for (int j = 0; j < varr.length; j++)	{
			List v = varr[j];
			
			if (v != null)	{
				for (int i = 0; v != null && i < v.size(); i++)	{
					Object o = v.get(i);
					
					if (o instanceof Reference)	{
						//System.err.println("Found consumer reference "+o+" within "+rule);
						Reference cr = (Reference)o;
						Object cc = charConsumers.get(cr.nonterminal);
						
						if (cc == null)
							throw new LexerException("Consumer-Reference not found: "+cr.nonterminal);
						
						v.set(i, cc);
					}
					else
					if (o instanceof Consumer)	{
						Consumer cc = (Consumer)o;
						cc.resolveConsumerReferences(charConsumers, doneList);
					}
				}
			}
		}
	}