jilc-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Jilc-patches] CVS: jilc/src codegen.c,NONE,1.1


From: Gaurav Vaish <address@hidden>
Subject: [Jilc-patches] CVS: jilc/src codegen.c,NONE,1.1
Date: Fri, 12 Apr 2002 11:48:44 -0400

Update of /cvsroot/jilc/jilc/src
In directory subversions:/tmp/cvs-serv19975

Added Files:
        codegen.c 
Log Message:
2002-04-12 Gaurav Vaish <address@hidden>

* codegen.c: Why do I always forget to add files in first go. ;)
 Abhaya's code.




--- NEW FILE ---
/**
 * codegen.h -- Code generator stub.
 *
 * Author: Abhaya Agarwal ( address@hidden )
 *
 * (C) Abhaya Agarwal : 2002
 *
 */

#include "codegen.h"

int write_class(JVClass* klass, FILE* output)
{
        int i=0;
        write_class_head(klass,output);
        fprintf(output,"{\n");
        write_class_members(klass,output);
        fprintf(output,"} // Generated by jilc\n");
}

int write_class_head(JVClass* klass, FILE* output)
{
        fprintf(output,".class ");
        write_class_attributes(klass->acc_flags,output);
        write_class_name(klass->full_name,output);
        write_super_class(klass->full_super,output);
        if(klass->interface_count>0)
                write_implemented_interfaces(klass,output);
        fprintf(output,"\n");
}

int write_class_attributes(UInt16 acc_flag,FILE* output)
{
        fprintf(output,"auto unicode beforefieldinit 
%s",resolve_flags(acc_flag,CLASS));
}

int write_class_name(char * name, FILE * output)
{
        fprintf(output,"%s ",name);
}

int write_super_class(char * super, FILE * output)
{
        //Todo: Handle System.object
        fprintf(output,"extends %s ",super);
}

int write_implemented_interfaces(JVClass* klass, FILE* output)
{
        fprintf(output,"implements %s",jilc_interface(klass));
}

char * jilc_interface(JVClass* klass)
{
        int i=0;
        char * retVal=(char *)calloc(101,sizeof(char));
        for(i=0;i<klass->interface_count;i++){
                strcat(retVal,klass->interface_entries[i].full_name);
                strcat(retVal," ");
        }
        retVal = (char *)realloc(retVal, strlen(retVal));
        return retVal;
}

int write_class_members(JVClass* klass, FILE* output)
{
        int i;
        for(i=0;i<klass->field_count;i++)
                jilc_field(klass,i,output);
        for(i=0;i<klass->method_count;i++)
                jilc_method(klass,i,output);
}

int jilc_field( JVClass* klass, int index, FILE* output)
{

}

int jilc_method(JVClass* klass, int index, FILE* output)
{
}

int jilc_statement(JVClass* klass, int* count, int* line_count, FILE* output)
{
}

int jilc_instruction(jopcode_map opcode, FILE* output)
{
}


/* Auxiliary methods */

int resolve_field_descriptor()
{
}

ilopcode_map jilc_opcode(jopcode_map opcode)
{
}

int jilc_extra_code(JVClass* klass, int* count, int* line_count, FILE* output)
{
}




reply via email to

[Prev in Thread] Current Thread [Next in Thread]