var char c ;
    var int remain;
    ...
    let remain= number - (number / 10 * 10 ) ;
    let c= remain + 48;    // "In subroutine setInt: a char value is expected"
This is a compiler bug. Jack is supposed to be an 
untyped language so this construct should be legal.
You can change c to an "int".
Also note that "-" creates a 
String object not a char constant. You need to use the numeric value of the '-' character:
    do appendChar(45);
--Mark