char c = line.charAt(i);
char c = line.array[i];
	public Enumeration markTokens(String line, int lineIndex)	{		ensureCapacity(lineIndex);		String token = lineIndex == 0 ? null : lineInfo[lineIndex - 1];		tokens.removeAllElements();		int lastOffset = 0;		int length = line.length();		for(int i = 0; i < length; i++)		{			char c = line.charAt(i);			switch(c)			{			case '<':				// check if it's a comment				if(length - i > 3)				{					if(line.regionMatches(i,"<!--",0,3))					{						token = COMMENT;						tokens.addElement(new JSToken(							line.substring(							lastOffset,i),null));						lastOffset = i;						break;					}				}				if(token == null)				{					token = TAG;					tokens.addElement(new JSToken(line						.substring(lastOffset,i),							null));					lastOffset = i;				}				break;			case '>':				if(token == TAG)				{					token = null;					tokens.addElement(new JSToken(line						.substring(lastOffset,i + 1),						TAG));					lastOffset = i + 1;				}				else if(token == COMMENT)				{					if(i >= 2 && line.regionMatches(i - 2,						"-->",0,3))					{						token = null;						tokens.addElement(new JSToken(							line.substring(lastOffset,i + 1),							COMMENT));						lastOffset = i + 1;					}				}				break;			case '&':				if(token == null)				{					token = ENTITY;					tokens.addElement(new JSToken(line						.substring(lastOffset,i),							 null));					lastOffset = i;				}				break;			case ';':				if(token == ENTITY)				{					token = null;					tokens.addElement(new JSToken(line						.substring(lastOffset,i + 1),						ENTITY));					lastOffset = i + 1;				}				break;			}		}		if(lastOffset != length)			tokens.addElement(new JSToken(line.substring(				lastOffset,length),token));		lineInfo[lineIndex] = token;		lastLine = lineIndex;		return tokens.elements();	}