yeah kinda like a project file

i'm not entirely sure how Microsoft VC++ IDE actually does the syntax highlighting, however a method i'd deviced for Ciyanna probably wasn't that far off.
What i did was made 3 types of keyword...
Programmed Rule Keywords
Function Keywords
& Static Keywords
you'd declare a Static Keyword would be simple to declare, like so
Static::"float"
{
help="../MyHelp.htm";
case=1;
}
case being case sensitive

you'd then have function keywords
Func::"text"
{
in=(dword) x, (dword) y, (string) caption;
out=(void);
help="../myfunction.htm";
case=0
}
and then there was the Programmed Rule
Prog::"Rule1"
{
int size=char(in);
int i;
int j;
char bu;
char a[0];
char b[0];
int cCount;
char c[256,0];
for( i=0 ; i<size ; i++ )
{
bu=_Text(in,i);
a[i]=bu;
if( bu==NULL )
j=i;
BREAK;
}
for(i=j+1 ; i<size ; i++ )
{
bu=_Text(in,i);
b[i-(j+1)]=bu;
if( bu=='(' | NULL )
j=i;
BREAK;
}
if(_Text(in,j+1)=='(')
j=j+2;
else
j=j+1;
int h;
for( i=j ; i>size ; i++ )
{
bu=_Text(in,i)
b[h,i-j]=bu;
if( bu==',' )
h++;
}
}
i don't feel like coding the rest of the example right now cause to be honest i don't remember how i setup the export format in the buffer.
but it'd then buffer all that information and that rule would be for the functions

no doubt VisualC has a similar scheme inplace with the plugins to create because you just run a search when the function is loaded that way when it detects the actual keyword that is buffered you can also have all the fresh information you need on the parameters, and what is given back etc... pretty nifty eh (and before you say anything i'm pretty sure the example i gave wouldn't run either but you get the idea of how it would roughly be done)
Within the Epic battle of the fates the Shadow and the Angel will meet. With it will harbinger the very fight of good vs evil!