src/function.c
void buildCSharp()
{
    int key = INT_MIN;

    HASH = (char**)malloc(sizeof(char*)*HASHSIZE);      // making hashtable of the size

    char* CSHARP[] ={"abstract","as","base","bool","break","byte","case","catch","char"
    ,"checked","class","const","continue","decimal","default","delegate","do","double"
    ,"else","enum","event","explicit","extern","false","finally","fixed","float","for"
    ,"foreach","goto","if","implicit","in","int","interface","internal","is","lock"
    ,"long","namespace","new","null","object","operator","out","override","params","private"
    ,"protected","public","readonly","ref","return","sbyte","sealed","short","sizeof"
    ,"stackalloc","static","string","struct","switch","this","throw","true","try","typeof"
    ,"unit","ulong","unchecked","unsafe","ushort","using","using static","virtual","void","volatile"
    ,"while"};

    register int i;
    for(i=0;i<78;i++)
    {
        key = hashfunction(CSHARP[i]);

        if(key >= 0 && key<HASHSIZE && HASH[key]==NULL)
        {
            int s = strlen(CSHARP[i]);
            HASH[key] = (char*)malloc(sizeof(char)*(s+1));
            strcpy(HASH[key],CSHARP[i]);
        }
        else                                        
        {
            /**
             * COLLISIONS FOUND
             * 209 -- float
             * 165 -- lock
             * 356 -- operator
             * 226 -- sbyte
             * 273 -- string
             * 273 -- typeof
             * 188 -- unit
             * 287 -- ushort
             * 344 -- volatile
             **/
            // printf("collision %d  %s\n",key,CSHARP[i]);
            // exit(1);
            if(strcmp(CSHARP[i],"typeof")==0)
            {
                key=key+2;
            }
            else
            {
                key++;
            }
            int s = strlen(CSHARP[i]);
            HASH[key] = (char*)malloc(sizeof(char)*(s+1));
            strcpy(HASH[key],CSHARP[i]);
        }
    }
}
/**
 * It will build keyword tree of CSharp keywords
 * 
 * @return void
 **/
It will build keyword tree of CSharp keywords

@return void
It will build keyword tree of CSharp keywords @return void
void buildCSharp()
{
    int key = INT_MIN;
    HASH = (char**)malloc(sizeof(char*)*HASHSIZE);      
    char* CSHARP[] ={"abstract","as","base","bool","break","byte","case","catch","char"
    ,"checked","class","const","continue","decimal","default","delegate","do","double"
    ,"else","enum","event","explicit","extern","false","finally","fixed","float","for"
    ,"foreach","goto","if","implicit","in","int","interface","internal","is","lock"
    ,"long","namespace","new","null","object","operator","out","override","params","private"
    ,"protected","public","readonly","ref","return","sbyte","sealed","short","sizeof"
    ,"stackalloc","static","string","struct","switch","this","throw","true","try","typeof"
    ,"unit","ulong","unchecked","unsafe","ushort","using","using static","virtual","void","volatile"
    ,"while"};
    register int i;
    for(i=0;i<78;i++)
    {
        key = hashfunction(CSHARP[i]);
        if(key >= 0 && key<HASHSIZE && HASH[key]==NULL)
        {
            int s = strlen(CSHARP[i]);
            HASH[key] = (char*)malloc(sizeof(char)*(s+1));
            strcpy(HASH[key],CSHARP[i]);
        }
        else                                        
        {
            if(strcmp(CSHARP[i],"typeof")==0)
            {
                key=key+2;
            }
            else
            {
                key++;
            }
            int s = strlen(CSHARP[i]);
            HASH[key] = (char*)malloc(sizeof(char)*(s+1));
            strcpy(HASH[key],CSHARP[i]);
        }
    }
}
void buildCSharp ( ) { int key = INT_MIN ; HASH = ( char * * ) malloc ( sizeof ( char * ) * HASHSIZE ) ; char * CSHARP [ ] = { " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " } ; register int i ; for ( i = 0 ; i < 78 ; i ++ ) { key = hashfunction ( CSHARP [ i ] ) ; if ( key >= 0 && key < HASHSIZE && HASH [ key ] == NULL ) { int s = strlen ( CSHARP [ i ] ) ; HASH [ key ] = ( char * ) malloc ( sizeof ( char ) * ( s + 1 ) ) ; strcpy ( HASH [ key ] , CSHARP [ i ] ) ; } else { if ( strcmp ( CSHARP [ i ] , " " ) == 0 ) { key = key + 2 ; } else { key ++ ; } int s = strlen ( CSHARP [ i ] ) ; HASH [ key ] = ( char * ) malloc ( sizeof ( char ) * ( s + 1 ) ) ; strcpy ( HASH [ key ] , CSHARP [ i ] ) ; } } }
It will build keyword tree of CSharp keywords
It will build keyword tree of CSharp keywords
// making hashtable of the size /**
             * COLLISIONS FOUND
             * 209 -- float
             * 165 -- lock
             * 356 -- operator
             * 226 -- sbyte
             * 273 -- string
             * 273 -- typeof
             * 188 -- unit
             * 287 -- ushort
             * 344 -- volatile
             **/ // printf("collision %d  %s\n",key,CSHARP[i]); // exit(1);