local SrcLineList inclError(Msg msg, ...) { SrcPos spos; va_list argp; spos = sposNew(fileState.curFname, fileState.lineNumber, inclSerialLineNo, 1); va_start(argp, msg); comsgVError(abNewNothing(spos), msg, argp); va_end(argp); return listNil(SrcLine); }
SExpr compSExprError(SrcPos spos, int errnum, va_list argp) { Msg msg; switch (errnum) { case SX_ErrPackageExists: msg = ALDOR_F_SxPackageExists; break; case SX_ErrInternNeeds: msg = ALDOR_F_SxInternNeeds; break; case SX_ErrNumDenNeeds: msg = ALDOR_F_SxNumDenNeeds; break; case SX_ErrNReverseNeeds: msg = ALDOR_F_SxNReverseNeeds; break; case SX_ErrBadArgumentTo: msg = ALDOR_F_SxBadArgumentTo; break; case SX_ErrReadEOF: msg = ALDOR_F_SxReadEOF; break; case SX_ErrBadPunct: msg = ALDOR_F_SxBadPunct; break; case SX_ErrBadChar: msg = ALDOR_F_SxBadChar; break; case SX_ErrMacroIlleg: msg = ALDOR_F_SxMacroIlleg; break; case SX_ErrMacroUndef: msg = ALDOR_F_SxMacroUndef; break; case SX_ErrMacroUnimp: msg = ALDOR_F_SxMacroUnimp; break; case SX_ErrCantMacroArg: msg = ALDOR_F_SxCantMacroArg; break; case SX_ErrMustMacroArg: msg = ALDOR_F_SxMustMacroArg; break; case SX_ErrBadFeatureForm: msg = ALDOR_F_SxBadFeatureForm; break; case SX_ErrTooManyElts: msg = ALDOR_F_SxTooManyElts; break; case SX_ErrCantShare: msg = ALDOR_F_SxCantShare; break; case SX_ErrAlreadyShare: msg = ALDOR_F_SxAlreadyShare; break; case SX_ErrBadCharName: msg = ALDOR_F_SxBadCharName; break; case SX_ErrBadComplexNum: msg = ALDOR_F_SxBadComplexNum; break; case SX_ErrBadToken: msg = ALDOR_F_SxBadToken; break; case SX_ErrBadPotNum: msg = ALDOR_F_SxBadPotNum; break; case SX_ErrBadUninterned: msg = ALDOR_F_SxBadUninterned; break; default: bugBadCase(errnum); NotReached(msg = 0); } comsgVFatal(abNewNothing(spos), msg, argp); NotReached(return 0); }