rendered paste body// -------------------------------------------------------------------------------------------------------------------------------------
// Function: AllenVM_CPU_BASE_TRY();
// Purpose: Try a given expression.
// Returns: 0/1 wether the expression is factible.
// -------------------------------------------------------------------------------------------------------------------------------------
static int AllenVM_CPU_BASE_TRY(struct AllenInterp *i, int argc, char **argv, void *pd) {
if(argc != 2 && argc != 4) return AllenVM_CPU_Error(i,argv[0]); // Check parameters.
if(argc == 4 && strcmp(argv[2],TBASE_CTH)) return AllenVM_CPU_Error(i,argv[0]); // Check if there is catch.
char buf[TBASE_BSIZE]; register int c; // Buffer and parameters.
if((c = AllenVM_InterpEval(i,argv[1])) != Allen_VM_OK) // Evaluate the expression.
if(argc==4) c = AllenVM_InterpEval(i,argv[3]); // Look for exceptions.
snprintf(buf,TBASE_BSIZE,"%f",(float) c); // Copy result to buffer as float.
AllenVM_InterpSetResult(i,buf); // Set interpreter result.
return Allen_VM_OK; // Everything ok.
}