I am trying to browse the functions of a project on which I am working by using the function list at right of the IDE, but for some reason Pelle's C doesn't list the functions that come after a macro reference that has the character constant '\"' as the macro content. An use case with a function that uses this macro is shown below. By copying and pasting this snippet on a empty Pelle's C project, you can see that the ISO C main() function isn't listed on the function list. If you change the character constant of the DOUBLE_QUOTE define or remove any references to the DOUBLE_QUOTE define on the source code, the main() function will appear again.
#define END_OF_STRING '\0'
#define LINE_FEED '\n'
#define CARRIAGE_RETURN '\r'
#define WHITE_SPACE ' '
// Get attention to this define
#define DOUBLE_QUOTE '\"'
typedef enum Token {
UNKNOWN_TOKEN = 0, NUMBER_TOKEN, IDENTIFIER_TOKEN, STRING_TOKEN,
DOUBLE_QUOTE_TOKEN, PRINT_TOKEN, START_STATE, WHITE_SPACE_TOKEN, END_OF_LINE_TOKEN, END_OF_STRING_TOKEN
} TOKEN;
TOKEN CharacterTable[256];
void PopulateCharacterTable(void)
{
for (int Index = 'A'; Index <= 'Z'; Index++)
{
CharacterTable[Index] = IDENTIFIER_TOKEN;
};
for (int Index = 'a'; Index <= 'z'; Index++)
{
CharacterTable[Index] = IDENTIFIER_TOKEN;
};
for (int Index = '0'; Index <= '1'; Index++)
{
CharacterTable[Index] = NUMBER_TOKEN;
};
CharacterTable[WHITE_SPACE] = WHITE_SPACE_TOKEN;
CharacterTable[LINE_FEED] = END_OF_LINE_TOKEN;
CharacterTable[END_OF_STRING] = END_OF_STRING_TOKEN;
// From now on any functions declared in the source code will not appear on the function list anymore.
CharacterTable[DOUBLE_QUOTE] = DOUBLE_QUOTE_TOKEN;
};
int main (void)
{
PopulateCharacterTable();
};