boolean elementFound = false;
	public static void fillInHtmlElementNames(IFile _htmlFile, Set _htmlElementNames) throws CoreException, IOException {		FileEditorInput fileInput = new FileEditorInput(_htmlFile);		IEncodedStorage storage = (IEncodedStorage) fileInput.getStorage();		InputStream fileContents = storage.getContents();		BufferedReader br = new BufferedReader(new InputStreamReader(fileContents, storage.getCharset()));		int ch;		char[] stringToMatch = { '<', 'w', 'e', 'b', 'o', 'b', 'j', 'e', 'c', 't', 'n', 'a', 'm', 'e', '=' };		int matchIndex = 0;		StringBuffer elementNameBuffer = null;		boolean elementFound = false;		while ((ch = br.read()) != -1) {			if (elementNameBuffer == null) {				if (ch == ' ' || ch == '\n' || ch == '\r' || ch == '\t') {					// ignore spaces				} else if (Character.toLowerCase((char) ch) == stringToMatch[matchIndex]) {					matchIndex++;					if (matchIndex == stringToMatch.length) {						elementNameBuffer = new StringBuffer();						matchIndex = 0;					}				} else {					matchIndex = 0;					if (Character.toLowerCase((char) ch) == stringToMatch[matchIndex]) {						matchIndex++;					}				}			} else {				if (ch == ' ' || ch == '\n' || ch == '\r' || ch == '\t') {				} else if (ch == '"') {				} else if (ch == '/') {				} else if (ch == '>') {					String elementName = elementNameBuffer.toString();					_htmlElementNames.add(elementName);					elementNameBuffer = null;				} else {					elementNameBuffer.append((char) ch);				}			}		}	}