public void setTerminals(List terminals)	{
		for (int i = 0; i < terminals.size(); i++)	{
			String symbol = (String) terminals.get(i);
			
			// check if it is a terminal as this is a public call
			if (symbol.length() <= 2 || Token.isTerminal(symbol) == false)
				throw new IllegalArgumentException("Terminals must be enclosed within quotes: "+symbol);
			
			String text = symbol.substring(1, symbol.length() - 1);	// remove quotes
			
			if (ensureStrategy().hasTerminal(symbol) == false)	{	// could have been called for second time
				if (symbol.charAt(0) == Token.COMMAND_QUOTE)	{	// is a scan terminal covered by a Consumer
					Consumer cc = (Consumer) charConsumers.get(text);
					if (cc == null)
						throw new IllegalArgumentException("Lexer token is not among character consumers: "+text);
					else
						ensureStrategy().addTokenConsumer(symbol, cc);
				}
				else	{
					ensureStrategy().addTokenConsumer(symbol, new Consumer(text));
				}
			}
		}	// end for
		
		if (debug)
			System.err.println("StrategyList is:\n"+strategy);
	}