forked from KolibriOS/kolibrios
4f7ee97ec9
git-svn-id: svn://kolibrios.org@4680 a494cfbc-eb01-0410-851d-a64ba20cac60
69 lines
1.6 KiB
C++
69 lines
1.6 KiB
C++
|
|
#ifndef __lisperror_h__
|
|
#define __lisperror_h__
|
|
|
|
#include "lisptype.h"
|
|
#include "lispstring.h"
|
|
|
|
#include "choices.h"
|
|
|
|
|
|
enum ErrorCodes
|
|
{
|
|
KLispErrNone = 0,
|
|
KLispErrInvalidArg ,
|
|
KLispErrWrongNumberOfArgs ,
|
|
KLispErrNotList ,
|
|
KLispErrListNotLongEnough ,
|
|
KLispErrInvalidStack ,
|
|
KQuitting ,
|
|
KLispErrNotEnoughMemory ,
|
|
KInvalidToken ,
|
|
KLispErrInvalidExpression ,
|
|
KLispErrUnprintableToken ,
|
|
KLispErrFileNotFound ,
|
|
KLispErrReadingFile ,
|
|
KLispErrCreatingUserFunction,
|
|
KLispErrCreatingRule ,
|
|
KLispErrArityAlreadyDefined ,
|
|
KLispErrCommentToEndOfFile ,
|
|
KLispErrNotString ,
|
|
KLispErrNotInteger ,
|
|
KLispErrParsingInput ,
|
|
KLispErrMaxRecurseDepthReached,
|
|
KLispErrDefFileAlreadyChosen ,
|
|
KLispErrDivideByZero ,
|
|
KLispErrNotAnInFixOperator ,
|
|
KLispErrUser ,
|
|
KLispErrIsNotInFix ,
|
|
KLispErrSecurityBreach ,
|
|
KLispErrLibraryNotFound ,
|
|
KLispErrUserInterrupt ,
|
|
KLispErrNonBooleanPredicateInPattern,
|
|
KLispErrGenericFormat,
|
|
KLispNrErrors
|
|
};
|
|
|
|
|
|
template<typename T>
|
|
inline void Check(T hastobetrue, LispInt aError)
|
|
{
|
|
if (!hastobetrue)
|
|
LispThrow(aError);
|
|
}
|
|
|
|
|
|
#ifdef YACAS_DEBUG
|
|
#define DBG_printf printf
|
|
#define DBG_(xxx) xxx
|
|
#else
|
|
namespace{void inline noop(...) {}}
|
|
// could change 'noop' to 'sizeof' below, but we get 'left-hand operand of comma has no effect' from g++
|
|
#define DBG_printf while (0) noop
|
|
#define DBG_(xxx) /*xxx*/
|
|
#endif
|
|
|
|
|
|
#endif
|
|
|