public Token getNextToken(){
		// Clear Flags from previous call 
		currentState = 0;
		nextState = 0;
		
		tokenFoundFlag = false;
		whiteSpaceFlag = false;
		exitSMFlag = false;
		tempString = "";
			
		while(!tokenFoundFlag){
			exitSMFlag = false;
			
			if(!ptrAheadOneFlag){
				nextChar = readChar();
			}
			else
				ptrAheadOneFlag = false;
			
			determineType();
			runStateMachine();
		}

		return tempToken;
	}// end of "getNextToken"