private void factor(){
    	//System.out.println("in factor");
        if( is(TK.LPAREN) ) {
            gcprint("(");
            scan();
            expression();
            mustbe(TK.RPAREN);
            gcprint(")");
        }
        else if( is(TK.ID) ) {
            rvalue_id(tok.string, tok.lineNumber);
            scan();
        }
        else if( is(TK.NUM) ) {
            gcprint(tok.string);
            scan();
        }
        else if ( is(TK.COMMA) ) {
        	gcprint(tok.string);
        	scan();
        }
        else
            parse_error("factor");
    }