00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 case IS_ATTV:
00027 return isattv(ptoc_tag(CTXTc 1));
00028
00029 case VAR:
00030 return isref(ptoc_tag(CTXTc 1));
00031
00032 case NONVAR:
00033 return isnonvar(ptoc_tag(CTXTc 1));
00034
00035 case ATOM:
00036 return isatom(ptoc_tag(CTXTc 1));
00037
00038 case INTEGER: {
00039 int tag = ptoc_tag(CTXTc 1);
00040 return (isinteger(tag) || isboxedinteger(tag));
00041 }
00042
00043 case REAL:
00044 {
00045 Cell term = ptoc_tag(CTXTc 1);
00046 return isofloat(term);
00047 }
00048 case NUMBER: {
00049 Cell tag = ptoc_tag(CTXTc 1);
00050 return (isnumber(tag) || isboxedinteger(tag) || isboxedfloat(tag));
00051 }
00052 case ATOMIC: {
00053 Cell term = ptoc_tag(CTXTc 1);
00054 return (isatomic(term) || isboxedinteger(term) || isboxedfloat(term));
00055 }
00056
00057 case COMPOUND: {
00058 Cell term = ptoc_tag(CTXTc 1);
00059 return (((isconstr(term) && get_arity(get_str_psc(term))) ||
00060 (islist(term))) && !isboxedfloat(term) && !isboxedinteger(term));
00061 }
00062
00063 case CALLABLE: {
00064 Cell term = ptoc_tag(CTXTc 1);
00065 return ((isconstr(term) && !isboxed(term)) || isstring(term) || islist(term));
00066 }
00067
00068 case IS_LIST:
00069 return is_proper_list(ptoc_tag(CTXTc 1));
00070
00071 case IS_MOST_GENERAL_TERM:
00072 return is_most_general_term(ptoc_tag(CTXTc 1));
00073
00074 case FUNCTOR:
00075 return functor_builtin(CTXT);
00076
00077 case ARG:
00078 return arg_builtin(CTXT);
00079
00080 case UNIV:
00081 return univ_builtin(CTXT);
00082
00083 case HiLog_ARG:
00084 return hilog_arg(CTXT);
00085
00086 case HiLog_UNIV:
00087 break;
00088
00089
00090
00091 case ATOM_CHARS:
00092 return atom_to_list(CTXTc ATOM_CHARS);
00093 case ATOM_CODES:
00094 return atom_to_list(CTXTc ATOM_CODES);
00095
00096
00097 case NUMBER_CHARS:
00098 return number_to_list(CTXTc NUMBER_CHARS);
00099 case NUMBER_CODES:
00100 return number_to_list(CTXTc NUMBER_CODES);
00101 case NUMBER_DIGITS:
00102 return number_to_list(CTXTc NUMBER_DIGITS);
00103
00104
00105 case PUT: {
00106 Cell term = ptoc_tag(CTXTc 1);
00107 if (isinteger(term)) {
00108 putc(int_val(term), fileptr(pflags[CURRENT_OUTPUT]));
00109 } else {
00110 if (isnonvar(term)) err_handle(CTXTc TYPE, 1, "put", 1, "integer", term);
00111 else err(INSTANTIATION, 1, "put", 1);
00112 }
00113 break;
00114 }
00115 case TAB: {
00116 Cell term = ptoc_tag(CTXTc 1);
00117 if (isinteger(term)) {
00118 int i;
00119 for (i=1; i<=int_val(term); i++)
00120 putc(' ', fileptr(pflags[CURRENT_OUTPUT]));
00121 } else {
00122 if (isnonvar(term)) err_handle(CTXTc TYPE, 1, "tab", 1, "integer", term);
00123 else err(INSTANTIATION, 1, "tab", 1);
00124 }
00125 break;
00126 }
00127
00128 case SORT:
00129 return sort(CTXT);
00130
00131 case KEYSORT:
00132
00133 return keysort(CTXT);
00134
00135 case PARSORT:
00136
00137
00138 return parsort(CTXT);
00139