private static CharacterSet visitRegexCharRangeNode(Node n,String inheritance,CompilerLogger logger)
	throws CopperException
	{
		char lower = Character.MIN_VALUE,upper = Character.MAX_VALUE;
		for(int i = 0;i < n.getChildNodes().getLength();i++)
		{
			if(n.getChildNodes().item(i).getNodeName().equals("lower"))
			{
				if(lower == Character.MIN_VALUE)
				{
					if(n.getChildNodes().item(i).getTextContent().length() == 0)
					{
						formalError(logger,n.getChildNodes().item(i),"missing","#text","content");
					}
					lower = n.getChildNodes().item(i).getTextContent().charAt(0);
				}
				else
				{
					formalError(logger,n,"has too many","lower","children");
					return null;
				}
			}
			if(n.getChildNodes().item(i).getNodeName().equals("upper"))
			{
				if(upper == Character.MAX_VALUE)
				{
					if(n.getChildNodes().item(i).getTextContent().length() == 0)
					{
						formalError(logger,n.getChildNodes().item(i),"missing","#text","content");
					}
					upper = n.getChildNodes().item(i).getTextContent().charAt(0);
				}
				else
				{
					formalError(logger,n,"has too many","upper","children");
					return null;
				}
			}
		}
		return CharacterSet.instantiate(CharacterSet.RANGES,'+',lower,upper);		
	}