Changeset 292 for trunk/idl-compiler


Ignore:
Timestamp:
Apr 1, 2007, 5:17:12 PM (18 years ago)
Author:
cinc
Message:

Created C file emitter. Some fixes.

Location:
trunk/idl-compiler
Files:
3 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/idl-compiler/Makefile

    r278 r292  
    1414HEMITTERDIR     =       ./h-emitter_c
    1515IHEMITTERDIR    =       ./ih-emitter_c
     16CEMITTERDIR     =       ./c-emitter_c
    1617
    1718CFLAGS          =       -Zmt -Zcrtdll -D__OS2__ -D__ST_MT_ERRNO__ -c -Wall
     
    3132                        $(OBJDIR)/emitter.o \
    3233                        $(OBJDIR)/open_outfile.o \
     34                        $(OBJDIR)/printdata.o \
    3335                        $(OBJDIR)/typespec_parser.o \
    3436                        $(OBJDIR)/method_parser.o \
     
    4345                        $(OBJDIR)/h_file_emitter.o \
    4446                        $(OBJDIR)/ih_file_emitter.o \
    45                         $(OBJDIR)/printdata.o
     47                        $(OBJDIR)/c_file_emitter.o
    4648
    4749
     
    8082        $(CC) -I $(INC) $(CFLAGS)  -o$@ $<
    8183
     84$(OBJDIR)/%.o:  $(CEMITTERDIR)/%.c $(INCDIR)/parser.h
     85        $(CC) -I $(INC) $(CFLAGS)  -o$@ $<
     86
    8287# Create the directories for temp files
    8388$(OBJDIR)/o.dep:
  • trunk/idl-compiler/c/nom-idl-compiler.c

    r289 r292  
    612612  if(fOptionEmitH)
    613613    emitHFile(parseInfo.pInterfaceArray);
    614   if(fOptionEmitIH)
     614  else if(fOptionEmitIH)
    615615    emitIHFile(parseInfo.pInterfaceArray);
    616 
    617 #if 0
    618616  else if(fOptionEmitC)
    619     a++;
    620 
    621   if(pInterfaceArray->len)
    622     printInterface();
    623 #endif
     617    emitCFile(parseInfo.pInterfaceArray);
    624618
    625619  g_scanner_destroy(gScanner);
  • trunk/idl-compiler/c/util.c

    r278 r292  
    162162  return findInterfaceFromName(pif->chrParent);
    163163}
     164
     165gboolean queryMessageReturnsAValue(PMETHOD pm)
     166{
     167  if(pm->mpReturn.uiStar)
     168    return TRUE;
     169
     170  if(!strcmp(pm->mpReturn.chrType, "void"))
     171    return FALSE;
     172
     173  return TRUE;
     174}
     175
  • trunk/idl-compiler/h-emitter_c/h_file_emitter.c

    r290 r292  
    162162
    163163      /* Do return type */
    164       fprintf(fh, "typedef %s", pm->mpReturn.chrType);
    165       for(b=0;b<pm->mpReturn.uiStar;b++)
    166         fprintf(fh, "*");
     164      fprintf(fh, "typedef ");
     165      emitReturnType(pLocalPI, pif, pm);
    167166
    168167      fprintf(fh, " NOMLINK nomTP_%s_%s(%s* nomSelf,\n", pif->chrName,  pm->chrName, pif->chrName);
  • trunk/idl-compiler/include/parser.h

    r287 r292  
    185185void emitHFile(GPtrArray* pInterfaceArray);
    186186void emitIHFile(GPtrArray* pInterfaceArray);
     187void emitCFile(GPtrArray* pInterfaceArray);
    187188
    188189/* Emitter support function */
     
    199200PINTERFACE findInterfaceFromName(gchar* chrName);
    200201PMETHOD findMethodInfoFromMethodName(PINTERFACE pif, gchar* chrName);
     202gboolean queryMessageReturnsAValue(PMETHOD pm);
    201203
    202204#ifdef INCL_FILE
Note: See TracChangeset for help on using the changeset viewer.