631 lines
23 KiB
C++
631 lines
23 KiB
C++
#pragma once
|
||
#include <string>
|
||
#ifdef __SPF
|
||
#include "dvm.h"
|
||
#endif
|
||
enum typeMessage { WARR, ERROR, NOTE };
|
||
|
||
//Гайд по русификации сообщений смотри ниже.
|
||
|
||
// GROUP:
|
||
// 10xx - analysis
|
||
// 20xx - transform
|
||
// 30xx - parallel
|
||
// 50xx - checkpoint
|
||
|
||
// 10xx ANALISYS GROUP
|
||
// 01 "bad directive position, it can be placed only"
|
||
// 02 "variable '%s' is not used in loop"
|
||
// 03 "variable '%s' is not changed in loop"
|
||
// 04 "dimention of array '%s' is %d, but must be 1"
|
||
// 05 "type of array '%s' but must be INTEGER"
|
||
// 06 "type of variable '%s' must be array"
|
||
// 07 "array size can't be computed"
|
||
// 08 "size of array '%s' is %d, but you enter %d"
|
||
// 09 "array '%s' is private"
|
||
// 10 "only positive numbers are supported"
|
||
// 11 "no such expression '%s' on loop"
|
||
// 12 "More information is required about sizes of array '%s'"
|
||
// 13 "Function '%s' needs to be inlined ..."
|
||
// 14 "Found recursive chain calls: %s, this function will be ignored"
|
||
// 15 "This function is not called in current project"
|
||
// 16 "Can not calculate count of iterations for this loop, information about iterations in all loops in parallel regions '%s' will be ignored"
|
||
// 17 "Can not find declaration for symbol '%s' in current scope"
|
||
// 18 "This loop does not have END DO format"
|
||
// 19 "Include '%s' has executable operators"
|
||
// 20 "Active DVM directives are not supported yet"
|
||
// 21 "array ref '%s' has more than one loop's variables"
|
||
// 22 "array ref '%s' has indirect access"
|
||
// 23 "can not calculate index expression for array ref '%s'"
|
||
// 24 "coefficient A in A*x+B is not positive for array ref '%s', inverse distribution in not supported yet"
|
||
// 25 "can not map write to array '%s' to this loop"
|
||
// 26 "write to non distributed array '%s' in this loop"
|
||
// 27 "many operator in the same line"
|
||
// 28 "Module with name '%s' must be placed in current file"
|
||
// 29 lowlevel warnings from private analyzer
|
||
// 30 lowlevel notes from private analyzer
|
||
// 31 "wrong parallel region identifier: variable '%s' was declared on line %d"
|
||
// 32 "wrong parallel region identifier: variable '%s' was declared in common block '%s'"
|
||
// 33 "parallel region '%s' is included in file '%s'"
|
||
// 34 "parallel regions '%s' and '%s' are crossed"
|
||
// 35 "parallel region '%s' has data statement(s)"
|
||
// 36 "Can not build align graph from user's DVM directives in this region"
|
||
// 37 "Array can not be distributed because of DVM's I/O constraints"
|
||
// 38 "An equivalence operator at line %d is not supported yet"
|
||
// 39 "Variabled '%s' and '%s' in one storage association (common block '%s') have different types"
|
||
// 40 "First %d dimensions of array '%s' were deprecated to distributon due to function call '%s'"
|
||
// 41 "parallel region '%s' has line included in another region"
|
||
// 42 "distributed array in common block %s must have declaration in main unit"
|
||
// 43 "bad directive expression"
|
||
// 44 "Only pure procedures were supported"
|
||
// 45 "function's argument '%s' does not have declaration statement"
|
||
// 46 "mismatch of count formal and actual parameters "
|
||
// 47 "inconsistent array use"
|
||
// 48 "the same function name in different places was found"
|
||
// 49 "reasons of non pure function"
|
||
// 50 "count of PROGRAM unit"
|
||
// 51 "Detected mpi call, turn on special regime of paralyzing"
|
||
// 52 "error in user DVM intervals"
|
||
// 53 "variable in shrink clause must be arrayy in file '%s' on line %d"
|
||
// 54 "length of mask for array '%s' must be %d, but you enter only %d dimenions in file '%s' on line %d"
|
||
// 55 "wrong mask value in %d position: it can be only 0 or 1 in file '%s' on line %d"
|
||
// 56 "array '%s' in shrink clause must be also declared in private clause in file '%s' on line %d"
|
||
// 57 "Variable '%s' in %s clause must be used in next statement in file '%s' on line %d.\n."
|
||
// 58 "Left part of PARAMETER clause must be a variable in file '%s' on line %d.\n"
|
||
// 59 "Reduction by element of array '%s' is not implemented yet"
|
||
// 60 "Format misplaced"
|
||
// 61 "Array has declaration area conflict"
|
||
// 62 "need to move common declaration to main for DECLATE"
|
||
//
|
||
// 20xx TRANSFORM GROUP
|
||
// 01 "can not convert array assign to loop"
|
||
// 02 "converted arithmetic IF to simple IF"
|
||
// 03 "can not convert to END DO loop"
|
||
// 04 "convert to END DO loop"
|
||
// 05 "loops on lines %d and %d were combined"
|
||
// 06 "substitute statement function with name '%s'"
|
||
// 07 "Internal error during unparsing process has occurred"
|
||
// 08 "Can not do PRIVATE EXPANSION for this loop - privates not found"
|
||
// 09 "Can not split this loop because of dependecy: %s"
|
||
// 10 "This loop has indirect child loops and can not be splitted"
|
||
// 11 "It is allowed to inline function only at execution code section"
|
||
// 12 "for function duplication"
|
||
// 13 "for function duplication"
|
||
// 14 inlining errors - dims mismatch
|
||
// 15 unrolling loop errors
|
||
// 16 "cannot remove private var '%s' - it doesn't match any fixed dimensions mask"
|
||
// 17 cannot remove private var '%s' - it has recursive dependency or it depends on non-invariant var '%s'
|
||
// 18 "private variable '%s' was removed" or "private variable '%s' was partially removed"
|
||
// 19 "Removing of private var '%s' was made with assumption that references '%s' and '%s' are different"
|
||
// 20 "Function inlining failed with an error"
|
||
// 21 "cannot remove private var '%s' - cannot find reaching definition for the statement"
|
||
// 22 "cannot transform ..."
|
||
// 23 "cannot transform ..."
|
||
// 24 "Cannot remove private var '%s' - its references have different alignment with the loop"
|
||
// 25 "Cannot remove private var '%s' - it is used in the call of function '%s'"
|
||
|
||
// 30xx PARALLEL GROUP
|
||
// 01 "add across dependencies by array '%s' to loop"
|
||
// 02 "add private scalar '%s' to loop on line %d"
|
||
// 03 "add reduction scalar '%s' with operation '%s' to loop on line %d"
|
||
// 04 "unknown type of reduction scalar '%s'"
|
||
// 05 "unknown scalar dependencies by '%s' (try to specify its type)"
|
||
// 06 "... prevents parallelization"
|
||
// 07 "Can not create distributed link for array '%s': dim size of this array is '%d' and it is not equal '%d'"
|
||
// 08 "internal error in analysis, parallel directives will not be generated for this file!"
|
||
// 09 "Added remote access for array ref '%s' can significantly reduce performance"
|
||
// 10 "Can not find arrays for distribution for parallel region '%s', ignored"
|
||
// 11 "Arrays have different align rules in this loop according to their write accesses"
|
||
// 12 "parallel regions %shave common function '%s' which is used inside them"
|
||
// 13 "parallel regions %shave local array '%s' which is used inside them"
|
||
// 14 "parallel region '%s' has common array '%s' which is used inside and outside region"
|
||
// 15 "parallel region '%s' does not have DVM interval for fragment"
|
||
// 16 "expected only assign operands in DVM interval"
|
||
// 17 "parallel region '%s' does not have copying of array '%s' in DVM interval"
|
||
// 18 "parallel region '%s' does not have copying of common array '%s' in DVM interval"
|
||
// 19 "Can not find execution time for this loop, try to get times statistic"
|
||
// 20 "detected distributed and non distributed array links by function's calls for array %s\n"
|
||
// 21 "empty parallel regions is forbidden"
|
||
// 22 "Can not find align rules"
|
||
// 23 "Array reference '%s' has a different size from the original array"
|
||
// 24 "Array's memory intersections prevents this loop from parallelization"
|
||
|
||
// 40xx LOW LEVEL WARNINGS
|
||
// 01
|
||
// 02 Wrong pure declaration - INTENT mismatch
|
||
|
||
// 50xx CHECKPOINT GROUP
|
||
// 01 "The first argument must be TIME or ITER and the second must be integer in INTERVAL clause."
|
||
// 02 "CHECKPOINT directive with %s clause can be only at executable code section."
|
||
// 03 "CHECKPOINT directive with FILES clause must contain integer value."
|
||
// 04 "Variable '%s' in %s clause must be declared at the same module."
|
||
// 05 "Illegal option in TYPE clause."
|
||
// 06 "%s clause can be used only once."
|
||
// 07 "Variable '%s' can't be used in FILES and EXCEPT clauses at the same time."
|
||
|
||
extern int langOfMessages;
|
||
struct Messages
|
||
{
|
||
private:
|
||
//explicit Messages(const typeMessage type, const int line, const std::string &value_) : Messages(type, line, value_, 0) { }
|
||
explicit Messages(const typeMessage type, const int line, const std::wstring &value_, const int group) : type(type), line(line), group(group)
|
||
{
|
||
value = value_;
|
||
//check for \n at the end
|
||
if (value[value.size() - 1] == '\n')
|
||
value.erase(value.begin() + value.size() - 1);
|
||
}
|
||
public:
|
||
explicit Messages(const typeMessage type, const int line, const std::wstring &rus, const std::wstring &eng, const int group) :
|
||
Messages(type, line, (langOfMessages == 1) ? rus : eng, group)
|
||
{
|
||
engMessage = eng;
|
||
if (engMessage[engMessage.size() - 1] == '\n')
|
||
engMessage.erase(engMessage.begin() + engMessage.size() - 1);
|
||
}
|
||
|
||
std::wstring toString() const
|
||
{
|
||
std::wstring retVal = L"|";
|
||
retVal += std::to_wstring((int)type) + L" ";
|
||
retVal += std::to_wstring(line) + L" ";
|
||
retVal += std::to_wstring(group);
|
||
retVal += L"|" + value;
|
||
return retVal;
|
||
}
|
||
|
||
std::string getString() const { return std::string(engMessage.begin(), engMessage.end()); }
|
||
public:
|
||
typeMessage type;
|
||
int group;
|
||
int line;
|
||
std::wstring value;
|
||
std::wstring engMessage;
|
||
};
|
||
|
||
// from Utils.cpp
|
||
#ifdef _WIN32
|
||
extern void printStackTrace();
|
||
#else
|
||
static void printStackTrace() { };
|
||
#endif
|
||
|
||
#if __SPC
|
||
#define printInternalError(file, line) do {\
|
||
char buf[512];\
|
||
sprintf(buf, "Internal error at line %d and file %s\n", line, file);\
|
||
addToGlobalBufferAndPrint(buf);\
|
||
throw(-1);\
|
||
} while (0)
|
||
#else
|
||
#define printInternalError(file, line) do {\
|
||
printStackTrace(); \
|
||
char buf[512];\
|
||
sprintf(buf, "Internal error at line %d and file %s\n", line, file);\
|
||
addToGlobalBufferAndPrint(buf);\
|
||
\
|
||
if (SgStatement::getCurrProcessFile() != "" && SgStatement::getCurrProcessLine() != -1)\
|
||
{ \
|
||
sprintf(buf, "Internal error in user code at line %d and file %s\n", SgStatement::getCurrProcessLine(), SgStatement::getCurrProcessFile().c_str());\
|
||
addToGlobalBufferAndPrint(buf);\
|
||
} \
|
||
throw(-1);\
|
||
} while (0)
|
||
#endif
|
||
|
||
#define checkNull(address, file, line) do { \
|
||
if ((address) == NULL) \
|
||
printInternalError(file, line); \
|
||
} while (0)
|
||
|
||
//TODO: count of string len of all parameters
|
||
#define allocAndPrint(buf, format, ...) do { \
|
||
const int bufLen = 32 * 1024 * 1024;\
|
||
buf = new char[bufLen];\
|
||
const int countW = sprintf(buf, format, ##__VA_ARGS__);\
|
||
if (countW + 1 > bufLen) \
|
||
{ \
|
||
delete []buf; \
|
||
printInternalError(__FILE__, __LINE__);\
|
||
} \
|
||
} while (0)
|
||
|
||
#ifdef _WIN32
|
||
#define allocAndPrintLong(buf, format, ...) do { \
|
||
const int bufLen = 32 * 1024 * 1024;\
|
||
buf = new wchar_t[bufLen];\
|
||
const int countW = swprintf(buf, format, ##__VA_ARGS__);\
|
||
if (countW + 1 > bufLen) \
|
||
{ \
|
||
delete []buf; \
|
||
printInternalError(__FILE__, __LINE__);\
|
||
} \
|
||
} while (0)
|
||
#else
|
||
#define allocAndPrintLong(buf, format, ...) do { \
|
||
const int bufLen = 32 * 1024 * 1024;\
|
||
buf = new wchar_t[bufLen];\
|
||
const int countW = swprintf(buf, bufLen, format, ##__VA_ARGS__);\
|
||
if (countW + 1 > bufLen) \
|
||
{ \
|
||
delete []buf; \
|
||
printInternalError(__FILE__, __LINE__);\
|
||
} \
|
||
} while (0)
|
||
#endif
|
||
|
||
#define __spf_printToBuf(outval, format, ...) do {\
|
||
char *buf = NULL; \
|
||
allocAndPrint(buf, format, ##__VA_ARGS__); \
|
||
outval = std::string(buf);\
|
||
delete []buf;\
|
||
} while (0)
|
||
|
||
#define __spf_printToLongBuf(outval, format, ...) do {\
|
||
wchar_t *buf = NULL; \
|
||
allocAndPrintLong(buf, fixedLongFormat(format).c_str(), ##__VA_ARGS__); \
|
||
outval = std::wstring(buf);\
|
||
delete []buf;\
|
||
} while (0)
|
||
|
||
#define __spf_print(needPrint, format, ...) do {\
|
||
if (needPrint == 1) {\
|
||
char *buf = NULL; \
|
||
allocAndPrint(buf, format, ##__VA_ARGS__); \
|
||
addToGlobalBufferAndPrint(buf);\
|
||
delete []buf;\
|
||
} \
|
||
} while (0)
|
||
|
||
// Свободный - R206
|
||
// Гайд по русификации сообщений: При добавлении нового сообщения, меняется последний сводобный идентификатор.
|
||
// В этом файле остаются только спецификаторы, для которых будет заполнен текст. Полный текст пишется в файле
|
||
// russian_errors_text.txt. Спецификаторы там тоже сохраняются, по ним в визуализаторе будет восстановлен
|
||
// закодированный текст.
|
||
|
||
//russian messages
|
||
//1001
|
||
static const wchar_t *R1 = L"R1:%ls#%ls#%ls";
|
||
static const wchar_t *RR1_1 = L"RR1_1:";
|
||
static const wchar_t *RR1_2 = L"RR1_2:";
|
||
static const wchar_t *RR1_3 = L"RR1_3:";
|
||
static const wchar_t *RR1_4 = L"RR1_4:";
|
||
static const wchar_t *RR1_5 = L"RR1_5:";
|
||
static const wchar_t *RR1_6 = L"RR1_6:";
|
||
static const wchar_t *RR1_7 = L"RR1_7:";
|
||
static const wchar_t *RR1_8 = L"RR1_8:";
|
||
|
||
static const wchar_t *R2 = L"R2:";
|
||
static const wchar_t *R3 = L"R3:";
|
||
static const wchar_t *R4 = L"R4:%s";
|
||
static const wchar_t *R5 = L"R5:%s";
|
||
static const wchar_t *R6 = L"R6:%s";
|
||
static const wchar_t *R7 = L"R7:";
|
||
static const wchar_t *R8 = L"R8:";
|
||
static const wchar_t *R9 = L"R9:";
|
||
static const wchar_t *R10 = L"R10:%s";
|
||
static const wchar_t *R11 = L"R11:%s";
|
||
static const wchar_t *R12 = L"R12:";
|
||
static const wchar_t *R13 = L"R13:";
|
||
static const wchar_t *R14 = L"R14:";
|
||
static const wchar_t *R15 = L"R15:";
|
||
static const wchar_t *R16 = L"R16:";
|
||
static const wchar_t *R17 = L"R17:";
|
||
static const wchar_t *R18 = L"R18:";
|
||
static const wchar_t *R19 = L"R19:%d#%d";
|
||
static const wchar_t *R20 = L"R20:";
|
||
//1002
|
||
static const wchar_t *R21 = L"R21:%s";
|
||
static const wchar_t *R22 = L"R22:%s";
|
||
//1003
|
||
static const wchar_t *R23 = L"R23:%s";
|
||
static const wchar_t *R24 = L"R24:%s";
|
||
//1004
|
||
static const wchar_t *R25 = L"R25:%s#%d";
|
||
//1005
|
||
static const wchar_t *R26 = L"R26:%s";
|
||
//1006
|
||
static const wchar_t *R27 = L"R27:%s";
|
||
static const wchar_t *R28 = L"R28:%s";
|
||
static const wchar_t *R29 = L"R29:%s";
|
||
//1007
|
||
static const wchar_t *R30 = L"R30:";
|
||
//1008
|
||
static const wchar_t *R31 = L"R31:%s#%d#%d";
|
||
static const wchar_t *R32 = L"R32:%s#%d#%d";
|
||
//1009
|
||
static const wchar_t *R33 = L"R33:%s";
|
||
static const wchar_t *R34 = L"R34:%s";
|
||
//1010
|
||
static const wchar_t *R35 = L"R35:";
|
||
//1011
|
||
static const wchar_t *R36 = L"R36:%s";
|
||
//1012
|
||
static const wchar_t *R37 = L"R37:%s";
|
||
static const wchar_t *R149 = L"R149:%s";
|
||
//1013
|
||
static const wchar_t *R38 = L"R38:%s";
|
||
static const wchar_t *R39 = L"R39:%s#%s#%s#%s#%d#%s";
|
||
static const wchar_t *R40 = L"R40:%s";
|
||
static const wchar_t *R41 = L"R41:%s#%s#%d#%s";
|
||
|
||
static const wchar_t *R42 = L"R42:%s#%s#%ls";
|
||
static const wchar_t *RR42_1 = L"RR42_1:";
|
||
static const wchar_t *RR42_2 = L"RR42_2:";
|
||
|
||
static const wchar_t *R43 = L"R43:%s#%s#%d#%d";
|
||
static const wchar_t *R44 = L"R44:%s#%s";
|
||
static const wchar_t *R45 = L"R45:%s#%d#%d";
|
||
//1014
|
||
static const wchar_t *R46 = L"R46:%s";
|
||
//1015
|
||
static const wchar_t *R47 = L"R47:";
|
||
//1016
|
||
static const wchar_t *R48 = L"R48:%s";
|
||
//1017
|
||
static const wchar_t *R49 = L"R49:%s";
|
||
//1018
|
||
static const wchar_t *R50 = L"R50:";
|
||
static const wchar_t *R51 = L"R51:";
|
||
//1019
|
||
static const wchar_t *R52 = L"R52:%s";
|
||
//1020
|
||
static const wchar_t *R53 = L"R53:";
|
||
//1021
|
||
static const wchar_t *R54 = L"R54:%s";
|
||
static const wchar_t *R55 = L"R55:%s#%d";
|
||
//1022
|
||
static const wchar_t *R56 = L"R56:%s";
|
||
//1023
|
||
static const wchar_t *R57 = L"R57:%s";
|
||
//1024
|
||
static const wchar_t *R58 = L"R58:%s";
|
||
//1025
|
||
static const wchar_t *R59 = L"R59:%s";
|
||
//1026
|
||
static const wchar_t *R60 = L"R60:%s";
|
||
static const wchar_t *R61 = L"R61:%s";
|
||
//1027
|
||
static const wchar_t *R179 = L"R179:";
|
||
//1028
|
||
static const wchar_t *R62 = L"R62:%s";
|
||
//1029 && 1030
|
||
static const wchar_t *R158 = L"R158:%s";
|
||
static const wchar_t *R159 = L"R159:%s";
|
||
static const wchar_t *R160 = L"R160:%s";
|
||
static const wchar_t *R161 = L"R161:%s";
|
||
static const wchar_t *R162 = L"R162:%s";
|
||
static const wchar_t *R163 = L"R163:%s";
|
||
static const wchar_t *RR158_1 = L"RR158_1:";
|
||
//1031
|
||
static const wchar_t *R63 = L"R63:%s#%d";
|
||
//1032
|
||
static const wchar_t *R64 = L"R64:%s#%s";
|
||
//1033
|
||
static const wchar_t *R65 = L"R65:%s#%s";
|
||
//1034
|
||
static const wchar_t *R66 = L"R66:%s#%s";
|
||
//1035
|
||
//--- TODO
|
||
//1036
|
||
static const wchar_t *R67 = L"R67:";
|
||
//1037
|
||
static const wchar_t *R68 = L"R68:%s";
|
||
//1038
|
||
static const wchar_t *R69 = L"R69:";
|
||
static const wchar_t *R70 = L"R70:";
|
||
//1039
|
||
static const wchar_t *R71 = L"R71:%s#%s#%s#%s#%d#%s#%d";
|
||
//1040
|
||
static const wchar_t *R72 = L"R72:%d#%s#%s";
|
||
static const wchar_t *R73 = L"R73:%s#%s";
|
||
//1041
|
||
static const wchar_t *R74 = L"R74:%s";
|
||
//1042
|
||
static const wchar_t *R75 = L"R75:%s#%s";
|
||
//1043
|
||
static const wchar_t *R76 = L"R76:";
|
||
static const wchar_t *R77 = L"R77:%d#%d#%d";
|
||
static const wchar_t *R78 = L"R78:%s#%d";
|
||
//1044
|
||
static const wchar_t *R79 = L"R79:";
|
||
static const wchar_t *R80 = L"R80:";
|
||
//1045
|
||
static const wchar_t *R81 = L"R81:%s#%s";
|
||
//1046
|
||
static const wchar_t *R82 = L"R82:%s";
|
||
static const wchar_t *R83 = L"R83:%s";
|
||
static const wchar_t *R84 = L"R84:%s";
|
||
//1047
|
||
static const wchar_t *R85 = L"R85:%d#%s";
|
||
static const wchar_t *R86 = L"R86:%s";
|
||
static const wchar_t *R87 = L"R87:%s";
|
||
static const wchar_t *R88 = L"R88:%s";
|
||
static const wchar_t *R89 = L"R89:%s";
|
||
static const wchar_t *R90 = L"R90:%s";
|
||
static const wchar_t *R91 = L"R91:%s";
|
||
static const wchar_t *R164 = L"R164:%s";
|
||
//1048
|
||
static const wchar_t *R92 = L"R92:%s#%s#%d#%s#%d";
|
||
//1049
|
||
static const wchar_t *R93 = L"R93:";
|
||
//1050
|
||
static const wchar_t *R146 = L"R146:";
|
||
static const wchar_t *R147 = L"R147:";
|
||
//1051
|
||
static const wchar_t *R148 = L"R148:";
|
||
//1052
|
||
static const wchar_t *R150 = L"R150:";
|
||
//1053
|
||
static const wchar_t *R154 = L"R154:%s";
|
||
//1054
|
||
static const wchar_t *R155 = L"R155:%s#%d#%d#%s";
|
||
//1055
|
||
static const wchar_t *R156 = L"R156:%d#%s#%s";
|
||
//1056
|
||
static const wchar_t *R157 = L"R157:%s#%s";
|
||
//1057
|
||
static const wchar_t *R175 = L"R175:%s";
|
||
//1058
|
||
static const wchar_t *R176 = L"R176:";
|
||
//1059
|
||
static const wchar_t *R182 = L"R176:%s";
|
||
//1060
|
||
static const wchar_t *R183 = L"R183:";
|
||
//1061
|
||
static const wchar_t *R184 = L"R184:%s";
|
||
//1062
|
||
static const wchar_t* R205 = L"R205:%s#%s";
|
||
|
||
//2001
|
||
static const wchar_t *R94 = L"R94:";
|
||
static const wchar_t *R95 = L"R95:";
|
||
//2002
|
||
static const wchar_t *R96 = L"R96:";
|
||
static const wchar_t *R97 = L"R97:";
|
||
//2003
|
||
static const wchar_t *R98 = L"R98:";
|
||
//2004
|
||
static const wchar_t *R99 = L"R99:";
|
||
//2005
|
||
static const wchar_t *R100 = L"R100:%d#%d";
|
||
//2006
|
||
static const wchar_t *R101 = L"R101:%s";
|
||
//2007
|
||
static const wchar_t *R102 = L"R102:";
|
||
static const wchar_t *R103 = L"R103:";
|
||
//2008
|
||
// -- TODO
|
||
//2009
|
||
static const wchar_t *R104 = L"R104:%s";
|
||
//2010
|
||
static const wchar_t *R105 = L"R105:";
|
||
static const wchar_t *R106 = L"R106:";
|
||
static const wchar_t *R107 = L"R107:";
|
||
//2011
|
||
static const wchar_t *R177 = L"R177:";
|
||
//2012
|
||
static const wchar_t *R173 = L"R173:";
|
||
//2013
|
||
static const wchar_t *R174 = L"R174:%s";
|
||
//2014
|
||
static const wchar_t *R180 = L"R180:%s#%s";
|
||
//2015
|
||
static const wchar_t *R185 = L"R185:";
|
||
static const wchar_t *R186 = L"R186:";
|
||
static const wchar_t *R187 = L"R187:";
|
||
static const wchar_t *R195 = L"R195:";
|
||
//2016
|
||
static const wchar_t *R188 = L"R188:%s";
|
||
//2017
|
||
static const wchar_t *R189 = L"R189:%s";
|
||
static const wchar_t *R190 = L"R190:%s#%s";
|
||
//2018
|
||
static const wchar_t *R191 = L"R191:%s";
|
||
static const wchar_t *R201 = L"R201:%s";
|
||
//2019
|
||
static const wchar_t *R192 = L"R192:%s#%s#%s";
|
||
//2020
|
||
static const wchar_t *R193 = L"R193:";
|
||
//2021
|
||
static const wchar_t *R194 = L"R194:%s";
|
||
//2022
|
||
static const wchar_t *R196 = L"R196:";
|
||
//2023
|
||
static const wchar_t *R197 = L"R197:";
|
||
//2024
|
||
static const wchar_t *R198 = L"R198:%s";
|
||
//2025
|
||
static const wchar_t *R203 = L"R203:%s#%s";
|
||
|
||
//3001
|
||
static const wchar_t *R108 = L"R108:%s";
|
||
//3002
|
||
static const wchar_t *R109 = L"R109:%s#%d";
|
||
static const wchar_t *R200 = L"R200:%s#%d";
|
||
//3003
|
||
static const wchar_t *R110 = L"R110:%s#%s#%d";
|
||
//3004
|
||
static const wchar_t *R111 = L"R111:%s";
|
||
//3005
|
||
static const wchar_t *R112 = L"R112:%s";
|
||
//3006
|
||
static const wchar_t *R113 = L"R113:";
|
||
static const wchar_t *R114 = L"R114:";
|
||
static const wchar_t *R115 = L"R115:";
|
||
static const wchar_t *R116 = L"R116:";
|
||
static const wchar_t *R117 = L"R117:";
|
||
static const wchar_t *R118 = L"R118:";
|
||
static const wchar_t *R119 = L"R119:";
|
||
static const wchar_t *R120 = L"R120:";
|
||
static const wchar_t *R121 = L"R121:";
|
||
static const wchar_t *R122 = L"R122:";
|
||
static const wchar_t *R123 = L"R123:";
|
||
static const wchar_t *R124 = L"R124:%s#%s#%d#%s#%d#%d";
|
||
static const wchar_t *R125 = L"R124:%s#%s#%d#%s#%d";
|
||
static const wchar_t *R144 = L"R144:";
|
||
static const wchar_t *R145 = L"R145:";
|
||
static const wchar_t *R178 = L"R178:";
|
||
static const wchar_t *R199 = L"R199:";
|
||
//3007
|
||
static const wchar_t *R126 = L"R126:%s#%d#%d";
|
||
static const wchar_t *R127 = L"R127:";
|
||
//3008
|
||
static const wchar_t *R128 = L"R128:";
|
||
//3009
|
||
static const wchar_t *R129 = L"R129:%s";
|
||
//3010
|
||
static const wchar_t *R130 = L"R130:";
|
||
static const wchar_t *R131 = L"R131:";
|
||
//3011
|
||
static const wchar_t *R132 = L"R132:%s#%s";
|
||
//3012
|
||
static const wchar_t *R133 = L"R133:%s#%s";
|
||
//3013
|
||
static const wchar_t *R134 = L"R134:%s#%s";
|
||
static const wchar_t *R152 = L"R152:%s#%s";
|
||
//3014
|
||
static const wchar_t *R135 = L"R135:%s#%s";
|
||
//3015
|
||
static const wchar_t *R136 = L"R136:%s";
|
||
//3016
|
||
static const wchar_t *R137 = L"R137:";
|
||
//3017
|
||
static const wchar_t *R138 = L"R138:%s#%s";
|
||
//3018
|
||
static const wchar_t *R139 = L"R139:%s#%s";
|
||
//3019
|
||
//--- TODO предиктор
|
||
//3020
|
||
static const wchar_t *R140 = L"R140:%s";
|
||
static const wchar_t *R141 = L"R141:%s";
|
||
static const wchar_t *R153 = L"R153:%s";
|
||
static const wchar_t *R142 = L"R142:%s";
|
||
//3021
|
||
static const wchar_t *R151 = L"R151:";
|
||
//3022
|
||
static const wchar_t *R171 = L"R171:%s";
|
||
//3023
|
||
static const wchar_t *R202 = L"R202:%s";
|
||
//3024
|
||
static const wchar_t* R204 = L"R204:";
|
||
|
||
//4001
|
||
//---TODO ошибки из SAGE
|
||
//4002
|
||
static const wchar_t *R143 = L"R143:";
|
||
|
||
//5001
|
||
static const wchar_t *R165 = L"R165:";
|
||
//5002
|
||
static const wchar_t *R166 = L"R166:%s#%s";
|
||
//5003
|
||
static const wchar_t *R167 = L"R167:";
|
||
//5004
|
||
static const wchar_t *R168 = L"R168:%s#%s";
|
||
//5005
|
||
static const wchar_t *R169 = L"R169:";
|
||
//5006
|
||
static const wchar_t *R170 = L"R170:%s";
|
||
//5007
|
||
static const wchar_t *R172 = L"R172:%s"; |