[Top][All Lists]
[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)
{
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Jilc-patches] CVS: jilc/src codegen.c,NONE,1.1,
Gaurav Vaish <address@hidden> <=
- Prev by Date:
[Jilc-patches] CVS: jilc/src codegen.h,1.3,1.4 jparser.c,1.4,1.5 jparser.h,1.4,1.5
- Next by Date:
[Jilc-patches] CVS: CVSROOT syncmail,1.4,1.5
- Previous by thread:
[Jilc-patches] CVS: jilc/src codegen.h,1.3,1.4 jparser.c,1.4,1.5 jparser.h,1.4,1.5
- Next by thread:
[Jilc-patches] CVS: CVSROOT syncmail,1.4,1.5
- Index(es):