private BalanceUtil preParse() {	
	BalanceUtil balance= new BalanceUtil();	
	int currTok = 0;
	do {
		try {
			currTok = this.scanner.getNextToken();
			balance.addToken(currTok, scanner.startPosition);
		} catch (InvalidInputException e) {
			return null;
		}		
	} while (currTok!=TerminalTokens.TokenNameEOF);
		
	this.scanner.m_fakeIdentifierProvider = new FakeIdentifierProvider(
		balance.getTuplesToBeInserted(), balance.getTuplesToBeIgnored());
	
	// reset scanner
	this.scanner.resetTo(0, scanner.source.length-1);	
	return balance;
}