示例#1
0
文件: siodi.c 项目: UlricE/SiagOffice
static void siag_print(LISP p)
{
	if (FLONUMP(p)) {
		siag_type = EXPRESSION;
		siag_result.number = FLONM(p);
	} else if (TYPEP(p, tc_string)) {
		siag_type = STRING;
		siag_result.text = p->storage_as.string.data;
	} else {
		siag_type = ERROR;
		siag_result.number = 0, errorflag = 1;
	}
}
示例#2
0
文件: prim.c 项目: mdbarr/vcsi
VCSI_OBJECT randobj(VCSI_CONTEXT vc,
		    VCSI_OBJECT args, 
		    int length) {
  VCSI_OBJECT tmp;
  int r_seed;
      
  if(length <= 0)
    return error(vc,"random requires at least one argument",args);
   
  if(length == 1) {
    tmp = CAR(args);
    if(TYPEP(tmp,LNGNUM)) {
      r_seed = (int)((float)LNGN(tmp)*rand()/(RAND_MAX));
      return make_long(vc,r_seed);
    }
    else
      return tmp;
  } else {
    r_seed = (int)((float)length*rand()/(RAND_MAX));
    return vcsi_list_ref_i(vc,args,r_seed);
  }
}
示例#3
0
文件: prim.c 项目: mdbarr/vcsi
VCSI_OBJECT cdr(VCSI_CONTEXT vc,
		VCSI_OBJECT x) {
  if(TYPEP(x,CONS))
    return CDR(x);
  return error(vc,"non-pair to cdr", x);
}