/* prmesg.c */ #include "prtypes.h" #include "prstdio.h" #include #include "prextern.h" #define MTX_OVERFLOW "overflow" #define MTX_SUBSTSPACE "substitution stack" #define MTX_DYNSPACE "control stack" #define MTX_TRAILSPACE "trail" #define MTX_HEAPSPACE "heap" #define MTX_STRINGSPACE "string zone" #define MTX_TEMPSPACE "temp" #define MTX_SEESTACK "Stack dump?(y/n)" #define MTX_WILDPOINTER "stray pointer!" #define MTX_BADCOPYTYPE "Illegal data type in assert" #define MTX_NOTALIST "You did not give me a list" #define MTX_TAILNOTLIST "The tail is not a list" #define MTX_HEADNOTLIST "The head is not a list" #define MTX_ATOMORSTRING "atom or string" #define MTX_CANTOPEN "can't open %s" #define MTX_TOOMANYFILES "Too many open files" #define MTX_CANTLOAD "Can't load %s" #define MTX_HEADNOTATOM "Predicate not atom!" #define MTX_PARSEERROR "Parse error, line %d: %s %s\n" #define MTX_PARSEERROR2 "Parse error: %s %s\n" #define MTX_INTERNALERR "Internal Error in source file %s line %d %s\n" #define MTX_ARGERR "argument %d of %s bad should be %s\n" #define MTX_NARGERR "Argument %d of %s expected; is missing\n" #define MTX_TYPEERR "argument %d of %s should be of type %s\n" #define MTX_TYPEATOM "atom" #define MTX_TYPEVAR "variable" #define MTX_TYPESTR "string" #define MTX_TYPEINT "integer" #define MTX_TYPEPAIR "pair" #define MTX_TYPECLAUSE "clause" #define MTX_TYPEREAL "real" #define MTX_TYPECHAR "char" #define MTX_DIVBYZEROR "attempt to divide by zero (real)" #define MTX_DIVBYZEROI "attempt to divide by zero (int)" #define MTX_NOTVARPRED "A variable can't be used as a predicate\n" #define MTX_NOPRED "Predicate not atom\n" #define MTX_STACKCONTENTS "Contents of stack:\n" #define MTX_INIQUERY "Syntax error ini initial query" #define MTX_STRINGQUERY "Syntax error ini query passed as string" #define MTX_TOOMANYVARS "too many vars" #define MTX_PARSERRMSG "parsing error" #define MTX_SCAN_ERRMSG "scan error" #define MTX_EOFINEXP "EOF in expression" #define MTX_VARSTOOLONG "the total length of the variable names is too long" #define MTX_BADINT "bad integer" #define MTX_BADREAL "bad real" #define MTX_NOREALS "no reals in this version" #define MTX_UNEXPECTED "unexpected symbol" #define MTX_NONLISTARG "expected a list" #define MTX_CLOSEBEXPECTED " ) expected" #define MTX_PROMPTUSER "?-" #define MTX_VARNAMEERR "VARNAME" #define MTX_UNKNOWNTYPE "unknown type" #define MTX_CLAUSE "" #define MTX_EOFINCOMMENT "End of file in comment" #define MTX_EOFINCHAR "End of file in char" #define MTX_UNIFYTYPE "unification type" #define MTX_NONVARBIND "non var bind" #define MTX_OCCURCHK "occur check returns true!" #define MTX_MOLECNOISE "noise in molecule" #define MTX_CANTALLOC "cant allocate " #define MTX_NOCFGFILE "sprolog.inf missing using default configuration" #define MTX_CFGFILE "sprolog.inf" #define MTX_YESUPPER "Y" #define MTX_YESLOWER "y" #define MTX_OUTBUFOFLOW "output buffer overflow" #define MTX_QUERYOK "Query was successful." #define MTX_QUERYFAIL "Sorry, query was unsuccessful." #define MTX_MORE "More ?" #define MTX_ERROR "ERROR: " #define MTX_REGION_FAILURE "virtual memory region allocation failure" struct MsgEntry { int num ; char * msg ; } msgEntries [] = { { MSG_OVERFLOW, MTX_OVERFLOW }, { MSG_SUBSTSPACE, MTX_SUBSTSPACE }, { MSG_DYNSPACE, MTX_DYNSPACE }, { MSG_TRAILSPACE, MTX_TRAILSPACE }, { MSG_HEAPSPACE, MTX_HEAPSPACE }, { MSG_STRINGSPACE, MTX_STRINGSPACE }, { MSG_TEMPSPACE, MTX_TEMPSPACE }, { MSG_SEESTACK, MTX_SEESTACK }, { MSG_WILDPOINTER, MTX_WILDPOINTER }, { MSG_BADCOPYTYPE, MTX_BADCOPYTYPE }, { MSG_NOTALIST, MTX_NOTALIST }, { MSG_TAILNOTLIST, MTX_TAILNOTLIST }, { MSG_HEADNOTLIST, MTX_HEADNOTLIST }, { MSG_ATOMORSTRING, MTX_ATOMORSTRING }, { MSG_CANTOPEN, MTX_CANTOPEN }, { MSG_TOOMANYFILES, MTX_TOOMANYFILES }, { MSG_CANTLOAD, MTX_CANTLOAD }, { MSG_HEADNOTATOM, MTX_HEADNOTATOM }, { MSG_PARSEERROR, MTX_PARSEERROR }, { MSG_PARSEERROR2, MTX_PARSEERROR2 }, { MSG_INTERNALERR, MTX_INTERNALERR }, { MSG_ARGERR, MTX_ARGERR }, { MSG_NARGERR, MTX_NARGERR }, { MSG_TYPEERR, MTX_TYPEERR }, { MSG_TYPEATOM, MTX_TYPEATOM }, { MSG_TYPEVAR, MTX_TYPEVAR }, { MSG_TYPESTR, MTX_TYPESTR }, { MSG_TYPEINT, MTX_TYPEINT }, { MSG_TYPEPAIR, MTX_TYPEPAIR }, { MSG_TYPECLAUSE, MTX_TYPECLAUSE }, { MSG_TYPEREAL, MTX_TYPEREAL }, { MSG_TYPECHAR, MTX_TYPECHAR }, { MSG_DIVBYZEROR, MTX_DIVBYZEROR }, { MSG_DIVBYZEROI, MTX_DIVBYZEROI }, { MSG_NOTVARPRED, MTX_NOTVARPRED }, { MSG_NOPRED, MTX_NOPRED }, { MSG_STACKCONTENTS, MTX_STACKCONTENTS }, { MSG_INIQUERY, MTX_INIQUERY }, { MSG_STRINGQUERY, MTX_STRINGQUERY }, { MSG_TOOMANYVARS, MTX_TOOMANYVARS }, { MSG_PARSERRMSG, MTX_PARSERRMSG }, { MSG_SCAN_ERRMSG, MTX_SCAN_ERRMSG }, { MSG_EOFINEXP, MTX_EOFINEXP }, { MSG_VARSTOOLONG, MTX_VARSTOOLONG }, { MSG_BADINT, MTX_BADINT }, { MSG_BADREAL, MTX_BADREAL }, { MSG_NOREALS, MTX_NOREALS }, { MSG_UNEXPECTED, MTX_UNEXPECTED }, { MSG_NONLISTARG, MTX_NONLISTARG }, { MSG_CLOSEBEXPECTED, MTX_CLOSEBEXPECTED }, { MSG_PROMPTUSER, MTX_PROMPTUSER }, { MSG_VARNAMEERR, MTX_VARNAMEERR }, { MSG_UNKNOWNTYPE, MTX_UNKNOWNTYPE }, { MSG_CLAUSE, MTX_CLAUSE }, { MSG_EOFINCOMMENT, MTX_EOFINCOMMENT }, { MSG_EOFINCHAR, MTX_EOFINCHAR }, { MSG_UNIFYTYPE, MTX_UNIFYTYPE }, { MSG_NONVARBIND, MTX_NONVARBIND }, { MSG_OCCURCHK, MTX_OCCURCHK }, { MSG_MOLECNOISE, MTX_MOLECNOISE }, { MSG_CANTALLOC, MTX_CANTALLOC }, { MSG_NOCFGFILE, MTX_NOCFGFILE }, { MSG_CFGFILE, MTX_CFGFILE }, { MSG_YESUPPER, MTX_YESUPPER }, { MSG_YESLOWER, MTX_YESLOWER }, { MSG_OUTBUFOFLOW, MTX_OUTBUFOFLOW }, { MSG_QUERYOK, MTX_QUERYOK }, { MSG_QUERYFAIL, MTX_QUERYFAIL }, { MSG_MORE, MTX_MORE }, { MSG_ERROR, MTX_ERROR }, { MSG_REGION_FAILURE, MTX_REGION_FAILURE }, { -1, NULL } }; char * msgDeref ( int msgNo ) { register int i ; for ( i = 0 ; msgEntries[i].num >= 0 && msgEntries[i].num != msgNo ; i++ ); return msgEntries[i].num >= 0 ? msgEntries[i].msg : "?? UNKNOWN MSG ??" ; }