Here is an example of enums:
[code]// lex Python=SCLEX_PYTHON SCE_P_ SCLEX_PYTHON 2
// lex Nimrod=SCLEX_NIMROD SCE_P_ SCLEX_NIMROD 96
const char *SCE_P[] = {
“LEX_P_DEFAULT = 0”,
“LEX_P_COMMENTLINE = 1”,
“LEX_P_NUMBER = 2”,
“LEX_P_STRING = 3”,
“LEX_P_CHARACTER = 4”,
“LEX_P_WORD = 5”,
“LEX_P_TRIPLE = 6”,
“LEX_P_TRIPLEDOUBLE = 7”,
“LEX_P_CLASSNAME = 8”,
“LEX_P_DEFNAME = 9”,
“LEX_P_OPERATOR = 10”,
“LEX_P_IDENTIFIER = 11”,
“LEX_P_COMMENTBLOCK = 12”,
“LEX_P_STRINGEOL = 13”,
“LEX_P_WORD2 = 14”,
“LEX_P_DECORATOR = 15”,
};
// lex Cpp=SCLEX_CPP SCE_C_ SCLEX_CPP 3
// lex BullAnt=SCLEX_BULLANT SCE_C_ SCLEX_BULLANT 27
// lex CppNoCase SCLEX_CPPNOCASE 35
// ?? SCLEX_TAL 91
// ?? SCLEX_COBOL 92
// ?? SCLEX_TACL 93
const char *SCE_C[] = {
“LEX_C_DEFAULT = 0”,
“LEX_C_COMMENT = 1”,
“LEX_C_COMMENTLINE = 2”,
“LEX_C_COMMENTDOC = 3”,
“LEX_C_NUMBER = 4”,
“LEX_C_WORD = 5”,
“LEX_C_STRING = 6”,
“LEX_C_CHARACTER = 7”,
“LEX_C_UUID = 8”,
“LEX_C_PREPROCESSOR = 9”,
“LEX_C_OPERATOR = 10”,
“LEX_C_IDENTIFIER = 11”,
“LEX_C_STRINGEOL = 12”,
“LEX_C_VERBATIM = 13”,
“LEX_C_REGEX = 14”,
“LEX_C_COMMENTLINEDOC = 15”,
“LEX_C_WORD2 = 16”,
“LEX_C_COMMENTDOCKEYWORD = 17”,
“LEX_C_COMMENTDOCKEYWORDERROR = 18”,
“LEX_C_GLOBALCLASS = 19”,
“LEX_C_STRINGRAW = 20”,
“LEX_C_TRIPLEVERBATIM = 21”,
“LEX_C_HASHQUOTEDSTRING = 22”,
“LEX_C_PREPROCESSORCOMMENT = 23”,
“LEX_C_PREPROCESSORCOMMENTDOC = 24”,
“LEX_C_USERLITERAL = 25”,
“LEX_C_TASKMARKER = 26”,
“LEX_C_ESCAPESEQUENCE = 27”
};
#define SCOPE REALScopeGlobal
#define TYPE “”
REALenum Lexis_Enums[] = {
{ “LEX_P”, TYPE, SCOPE, SCE_P, _countof(SCE_P) },
{ “LEX_C”, TYPE, SCOPE, SCE_C, _countof(SCE_C) },
…
}; // 94 fields
[/code]
They are registered in a module
REALmoduleDefinition lexicalModule = {
kCurrentREALControlVersion,
"Lexes",
LexingSharedMethods, _countof(LexingSharedMethods),
Lexes_Constants, _countof(Lexes_Constants),
nil, 0, // Properties
nil, 0,//Lexis_Structs, _countof(Lexis_Structs),
Lexis_Enums, _countof(Lexis_Enums),
};
Code completion in the IDE shows, suggests, that it has been done correctly, yet the compiler tells when
me.ForeColor(Lexes.Lex_C.LEX_C_DEFAULT) = &c000000
“There is more than one item with this name and it’s not clear to which this refers.” The “me.ForeColor(Lexes.Lex_C.LEX_C_DEFAULT)” is highlighted in yellow. The same is happening when registering it globally:
REALRegisterEnum(&Lexis_Enums[1]);
Wanted to file as a feedback bug, but feedback fails to register with the server.