The while loop is a variation on the Loop statement where the boolean exit condition is given at the start of the loop.

while booleanExpression loop
   scl statements
   exit when booleanExpression     // optional
end loop;

The boolean expression is what you would expect it to be. Here are a few examples

//infinite loop
while true loop
   RD1 <= '0';
   wait on RD1;
end loop;

//loop until PC > 0x2000
while PC <= #16#2000# loop
   PIR3.ADIF <= 1;
   wait 200 us;
end loop;

Note that even though the while statement has it's own boolean expression, the loop can still contain exit when statements.

//loop until PIR2.EEIF is cleared
while PIR2.EEIF == 1 loop
   RD1 <= '1';
   wait on RD0;
   exit when PC == 0;   // device reset
end loop;