Mercurial > hg > CbC > old > device
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 */