int getErrorValue(error *err) { if (err==NULL) { return noErr; } if (err->errValue==forwardErr) { if (err->next==NULL) return undefErr; return getErrorValue(err->next); } return err->errValue; }
//Prints the error message and returns an error-denoting open type. Value evaluationError(char *errorMessage){ if(errorMessage) fprintf(stderr, "Interpreter error: %s.\n",errorMessage); return getErrorValue(); //We would do this: exit(1); //if the tests did not require nice exits. }