if (token == TerminalSymbols.TokenNamebreak || token == TerminalSymbols.TokenNamecontinue || token == TerminalSymbols.TokenNameIdentifier || token == TerminalSymbols.TokenNamereturn || token == TerminalSymbols.TokenNamethis|| token == TerminalSymbols.TokenNamesuper) {
if (token == TerminalSymbols.TokenNameIdentifier) { if (lastToken == TerminalSymbols.TokenNameIdentifier || isPrimitiveTypeToken(lastToken) || lastToken == TerminalSymbols.TokenNameRBRACKET) {  lastToken= token; token= scanner.getNextToken(); if (token == TerminalSymbols.TokenNameSEMICOLON) {  break; } else if (token == TerminalSymbols.TokenNameEQUAL) { found= true; break; } continue; } } else if (isNonIdentifierValidToken(token)) {
	public int getValidBreakpointLocation(IDocument doc, int lineNumber) {		Scanner scanner= new Scanner();		boolean found= false;		int start= 0, length= 0, token= 0;		while (!found) {			try {				start= doc.getLineOffset(lineNumber);				length= doc.getLineLength(lineNumber);				char[] txt= doc.get(start, length).toCharArray();				scanner.setSourceBuffer(txt);				token= scanner.getNextToken();				while (token != TerminalSymbols.TokenNameEOF) {					if (token == TerminalSymbols.TokenNamebreak ||						token == TerminalSymbols.TokenNamecontinue ||						token == TerminalSymbols.TokenNameIdentifier ||						token == TerminalSymbols.TokenNamereturn ||						token == TerminalSymbols.TokenNamethis||						token == TerminalSymbols.TokenNamesuper) {						found= true;						break;					} else {						token= scanner.getNextToken();					}				}				if (!found) {					lineNumber++;				}			} catch (BadLocationException ble) {				return -1;			} catch (InvalidInputException ie) {				return -1;			}		}		// add 1 to the line number - Document is 0 based, JDI is 1 based		return lineNumber + 1;	}