//***************************************************************************
// Every error message in English
//***************************************************************************
#ifndef ERRORMSG_H_
#error "You must not include this header file directly!"
#else
#define ERRORBEGIN "Error: "
#define ERRORBEGIN_PROGNAME "Error[" PROGRAM_NAME "]: "
#define ERRORBEGIN_FILENAME "Error[\"%s\"]: "
#define ERRORBEGIN_FILELINE "Error[\"%s\":%d]: "
#define ERRORBEGIN_FILELCOL "Error[\"%s\":%d:%d]: "
#define ERRORMSG_BADOPTION ERRORBEGIN_PROGNAME "\"%s\" is not a valid option\n"
#define ERRORMSG_NOINPUT ERRORBEGIN_PROGNAME "missing input and output file names\n"
#define ERRORMSG_NOOUTPUT ERRORBEGIN_PROGNAME "missing output file name\n"
#define ERRORMSG_TOOMANYFILES ERRORBEGIN_PROGNAME "too many file names\n"
#define ERRORMSG_OPENMML ERRORBEGIN "can't open MML file \"%s\"\n"
#define ERRORMSG_READMML ERRORBEGIN "problem reading from MML file \"%s\"\n"
#define ERRORMSG_OPENSONA ERRORBEGIN "can't create Sona stream file \"%s\"\n"
#define ERRORMSG_WRITESONA ERRORBEGIN "problem writing to Sona stream file \"%s\"\n"
#define ERRORMSG_NOMEMORY ERRORBEGIN_PROGNAME "out of memory!\n"
#define ERRORMSG_BADCHANNEL ERRORBEGIN_FILELINE "\"%c\" is not a valid channel\n"
#define ERRORMSG_DUPECHANNEL ERRORBEGIN_FILELINE "channel \"%c\" specified multiple times\n"
#define ERRORMSG_BADCOMMAND ERRORBEGIN_FILELCOL "\"%c\" is not a valid MML command\n"
#define ERRORMSG_BADPSG4KEYON ERRORBEGIN_FILELCOL "semitones not supported for PSG noise, use n command instead\n"
#define ERRORMSG_NORAWNOTE ERRORBEGIN_FILELCOL "expected raw note number\n"
#define ERRORMSG_BADNOISE ERRORBEGIN_FILELCOL "%d is not a valid noise tone type (must be between 0 and 7)\n"
#define ERRORMSG_NOOCTAVE ERRORBEGIN_FILELCOL "expected new octave number\n"
#define ERRORMSG_NOTRANSPOSE ERRORBEGIN_FILELCOL "expected transpose amount\n"
#define ERRORMSG_NODEFLENGTH ERRORBEGIN_FILELCOL "expected new default length\n"
#define ERRORMSG_NONOTELENGTH ERRORBEGIN_FILELCOL "expected note length\n"
#define ERRORMSG_NOLENCLOCK ERRORBEGIN_FILELCOL "expected number in ticks for length\n"
#define ERRORMSG_BADLENCLOCK ERRORBEGIN_FILELCOL "number in ticks must be more than 0\n"
#define ERRORMSG_BADLENFRAC ERRORBEGIN_FILELCOL "1/%d is not a valid length (must be 1, 2, 4, 8, 16, 32, 64, 128)\n"
#define ERRORMSG_BADLENDOT ERRORBEGIN_FILELCOL "length 1/128th can't be dotted\n"
#define ERRORMSG_BADLENTIE ERRORBEGIN_FILELCOL "expected another length after ^ tie\n"
#define ERRORMSG_NOVOLUME ERRORBEGIN_FILELCOL "expected new volume value\n"
#define ERRORMSG_NOPAN ERRORBEGIN_FILELCOL "expected new panning value\n"
#define ERRORMSG_BADPAN ERRORBEGIN_FILELCOL "%d is not a valid panning value (must be between 0 and 3)\n"
#define ERRORMSG_NOTEMPO ERRORBEGIN_FILELCOL "expected new tempo speed\n"
#define ERRORMSG_LOWTEMPO ERRORBEGIN_FILELCOL "tempo %d is too low (minimum is 0)\n"
#define ERRORMSG_HIGHTEMPO ERRORBEGIN_FILELCOL "tempo %d is too high (maximum is %d)\n"
#define ERRORMSG_NOFMOPER ERRORBEGIN_FILELCOL "expected FM operator number\n"
#define ERRORMSG_NOFMREG ERRORBEGIN_FILELCOL "expected FM register number\n"
#define ERRORMSG_NOFMVAL ERRORBEGIN_FILELCOL "expected value to write to FM register\n"
#define ERRORMSG_BADFMOPER ERRORBEGIN_FILELCOL "%d is not a valid FM operator number (must be between 0 and 3)\n"
#define ERRORMSG_BADFMREG ERRORBEGIN_FILELCOL "%d is not a valid FM register number (must be between 0 and 511)\n"
#define ERRORMSG_BADFMVAL ERRORBEGIN_FILELCOL "%d is not a valid value to write to a FM register (must be between 0 and 255)\n"
#define ERRORMSG_NOREPEATEND ERRORBEGIN_FILELCOL "found [ without matching ]\n"
#define ERRORMSG_BADREPEATEND ERRORBEGIN_FILELCOL "found ] without matching [\n"
#define ERRORMSG_NOREPEATCOUNT ERRORBEGIN_FILELCOL "expected repeat count\n"
#define ERRORMSG_BADREPEATCOUNT ERRORBEGIN_FILELCOL "%d is not a valid repeat count (must be larger than 0)\n"
#define ERRORMSG_BADATCOMMAND ERRORBEGIN_FILELCOL "expected instrument number\n"
#define ERRORMSG_BADINSTRUMENT ERRORBEGIN_FILELCOL "%d is not a valid instrument number (must be between 0 and 255)\n"
#define ERRORMSG_NOMACROID ERRORBEGIN_FILELCOL "expected macro number or letter\n"
#define ERRORMSG_MACRORANGE ERRORBEGIN_FILELCOL "%d is not a valid macro number (must be between 0 and 999)\n"
#define ERRORMSG_NOMACRODEF ERRORBEGIN_FILELCOL "macro is not defined\n"
#define ERRORMSG_NORAWBYTE ERRORBEGIN_FILELCOL "expected raw byte value\n"
#define ERRORMSG_BADRAWBYTE ERRORBEGIN_FILELCOL "%d is not a valid raw byte value (must be between 0 and 255)\n"
#define ERRORMSG_BADVMCMD ERRORBEGIN_FILELCOL "not a valid VM instruction\n"
#define ERRORMSG_NOVMCMD ERRORBEGIN_FILELCOL "expected VM command\n"
#define ERRORMSG_NOVMEND ERRORBEGIN_FILELCOL "found @{ without matching }\n"
#define ERRORMSG_BADASSIGN ERRORBEGIN_FILELCOL "%c is not a valid assignment operator (must be one of = += -= &= |= ^=)\n"
#define ERRORMSG_ASSIGNSRC ERRORBEGIN_FILELCOL "source must be either a variable or a constant number\n"
#define ERRORMSG_ASSIGNRANGE ERRORBEGIN_FILELCOL "%d is out of range for an assignment (must be between 0 and 255)\n"
#define ERRORMSG_VARNUMSPACE ERRORBEGIN_FILELCOL "can't have a space between v and its number\n"
#define ERRORMSG_NOVARNUM ERRORBEGIN_FILELCOL "expected VM variable number\n"
#define ERRORMSG_BADVARNUM ERRORBEGIN_FILELCOL "v%d is not a valid VM variable (must be between 0 and 127)\n"
#undef ERRORMSG_H_
#endif