#include "Error.h" #include "string.h" @implementation Error + (id) type: (string) t message: (string) m by: (SchemeObject *) o { return [[self alloc] initWithType: t message: m by: o]; } + (id) type: (string) t message: (string) m { return [[self alloc] initWithType: t message: m by: nil]; } - (id) initWithType: (string) t message: (string) m by: (SchemeObject *) o { self = [super init]; type = str_new(); message = str_new(); str_copy(type, t); str_copy(message, m); if (o) { [self source: [o source]]; [self line: [o line]]; } return self; } - (BOOL) isError { return true; } - (string) type { return type; } - (string) message { return message; } - (void) dealloc { str_free(type); str_free(message); [super dealloc]; } @end