view conv/c.c @ 68:0266905063b5

*** empty log message ***
author kono
date Mon, 24 Feb 2003 02:15:15 +0900
parents 254a0c576114
children dba8d111b7a0
line wrap: on
line source

#define EXTERN /**/

#include "mc.h"

#include "conv/convdef.h"

extern void type_print(int type,NMTBL *nptr,FILE *out);
extern void sym_print(int type,FILE *out);

static FILE *vout;

static void
comment_(int c)
{
    fprintf(vout,"%c",c);
}

static void
open_(char *s)
{
    char *p=cheapp;
    while ((*cheapp++ = *s++)) {
	if (*s=='.') {
	    *cheapp++=*s++; *cheapp++='c';
	    *cheapp++='c'; *cheapp++=0;
	    break;
	}
    }
    vout = fopen(p,"w");
    if (!vout) error(-1);
}

static void
print_(char *s)
{
    fprintf(vout,"c: %s\n",s);
}

static void
close_()
{
    fclose(vout);
}

void
case_begin_(int cases,int def){
    fprintf(vout,"case ");
}

void
case_(int cases,int def){
    if (def)
	fprintf(vout,"default:");
    else
	fprintf(vout,":");
}

void
code_(NMTBL *n,int arglist){
    fprintf(vout,"code %s(",n->nm);
    while(args) {
	n=(NMTBL *)car(args);
	type_print(n->ty,n,vout);
	args=cadr(args);
	if(args) fprintf(vout,",");
    }
    fprintf(vout,")");
}

void
code_end_(){

}

void
comma_(){
    fprintf(vout,",");
}

void
cond_(){

}

void
cond1_(){

}

void
cond2_(){

}

void
cond_end_(){

}

void
decl_data_begin_(){

}

void
decl_data_end_(){

}

void
def_(NMTBL *n){
}

void
dowhile_(){

}

void
dowhile_cond_(){

}

void
dowhile_end_(){

}

int
error_(n){
    return 0;
}

void
extern_(){
    fprintf(vout,"extern ");
}

void
for_(){
    fprintf(vout,"for(");
}

void
for1_(){
    fprintf(vout,";");
}

void
for2_(){
    fprintf(vout,";");
}

void
for3_(){
    fprintf(vout,")");
}

void
for_body_(){

}

void
for_end_(){

}

void
funcall_(int type){
    fprintf(vout,"(");
}

void
funcall_args_(){
    fprintf(vout,")");
}

void
function_(NMTBL *n,int args){
    type_print(n->ty,0,vout);
    fprintf(vout,"%s(",n->nm);
    while(args) {
	n=(NMTBL *)car(args);
	type_print(n->ty,n,vout);
	args=cadr(args);
	if(args) fprintf(vout,",");
    }
    fprintf(vout,")");
}

void
function_end_(){

}

void
goto_(){

}

void
goto_label_(){

}

void
id_(int sym,NMTBL *nptr){
    fprintf(vout," %s ",nptr->nm);
}

void
string_(char *s){
    fprintf(vout,"\"%s\"",s);
}

void
const_(int symval){
    fprintf(vout,"%d",symval);
}

void
return_f_(){
    fprintf(vout,"return");
}

void
defined_(char *s){
    fprintf(vout,"defined(%s)",s);
}

void
environment_(){
    fprintf(vout,"environment");
}

void
if_(){
    fprintf(vout,"if (");
}

void
if_else_(){
    fprintf(vout,"} else {");
}

void
if_endif_(){
    fprintf(vout,"}");
}

void
if_then_(){
    fprintf(vout,") {");
}

void
jump_(int env){

}

void
label_(){

}

void
lpar_(){
    fprintf(vout,"(");
}

void
rpar_(){
    fprintf(vout,")");
}

void
lbra_(int sym){
    fprintf(vout,"[");
}

void
rbra_(int sym){
    fprintf(vout,"]");
}

void
lc_(){
    fprintf(vout,"{");
}

void
rc_(){
    fprintf(vout,"}");
}

void
localvar_end_(){

}

void
op_(int sym){
    sym_print(sym,vout);
}

void
postfix_(int sym){
    /* sym_print(sym,vout); */
}

void
prefix_(int sym){
    /* sym_print(sym,vout); */
}

void
register_(){
    fprintf(vout,"register ");
}

void
return_(){
    fprintf(vout,"return (");
}

void
return_end_(){
    fprintf(vout,")");
}


void
return_type_(int t,NMTBL *nptr,int cont){
    if (cont) {
	if(nptr) fprintf(vout,"%s",nptr->nm);
	while (t>0&&car(t)==ARRAY) {
	    if(caddr(t)==0)
		fprintf(vout,"[]");
	    else
		fprintf(vout,"[%d]",caddr(t));
	    t=cadr(t);
	}
    } else
	type_print(t,nptr,vout);
}

void
sm_(){
    fprintf(vout,";");
}

void
static_(){
    fprintf(vout,"static ");
}

void
switch_(){
    fprintf(vout,"switch (");
}

void
switch_body_(){
    fprintf(vout,") {");
}

void
switch_end_(){
    fprintf(vout,"}");
}

void
typedef_(){
    fprintf(vout,"typedef ");
}

void
while_(){
    fprintf(vout,"while (");
}

void
while_body_(){
    fprintf(vout,") {");
}

void
while_end_(){
    fprintf(vout,"}");
}

/* end */