/* Test new is* intrinsics */

proc main()
{
    var vals = {3, 4ub, 5l, 6., 7.d, '8', L'9'};
    var res;
    var rows = {"isinteger", "isfloat", "ischar", "isnumeric"};

    res = new Array(5, 1+vals.length());
    forall (vals[i]) {
        res[0,i+1] = typeof(vals[i]);
        res[1,i+1] = vals[i].isinteger() ? 'Y' : ' ';
        res[2,i+1] = vals[i].isfloat() ? 'Y' : ' ';
        res[3,i+1] = vals[i].ischar() ? 'Y' : ' ';
        res[4,i+1] = vals[i].isnumeric() ? 'Y' : ' ';
    }

    res[0,0] = ' ';
    res[1:,0] = rows;

    // Print it out. 'SN#' - don't do nest boxes. 'S*' - print literals in
    // every row. '*' - loop format here. 'SC' - center values in column.
    // ':' - terminate after row is exhausted
    print("SN#, S*, V, ' | ', (*, SC, V, :, ' | ')", res);
}