/* ** ** X script version 0.00000001 by x82 -_-; ¹öÀüÀº ³»¸¾. ** */ #include #include #include #define ETC_VAL "abcdefghijklmnopqrstuvwxyz" \ "ABCDEFGHIJKLMNOPQRSTUVWXYZ" \ "0123456789" \ "`~!@$%^&*()-_=+\\|,<.>/?;:'\"[{]}" #define INT_VAL "$Á¤¼ö$" #define CHAR_VAL "$¹®ÀÚ$" #define COMMENT '#' #define START_VN '%' #define END_VN '=' #define _LINE 65535 #define OP_SIZE 48 //#define DEBUG struct op_comm { char comm_name[OP_SIZE]; /* opcode max size */ }; struct op_comm opcode[]= { {"ÀúÀå"}, /* set */ {"ÇìÁ¦"}, /* unset */ {"ÁöÁ¤"}, /* label */ {"À̵¿"}, /* jmp */ {"µ¡¼À"}, /* + */ {"»¬¼À"}, /* - */ {"°ö¼À"}, /* * */ {"³ª´°¼À"}, /* / */ {"±â´Ù¸²"}, /* sleep */ {"Ãâ·Â"}, /* print */ {"ÀÔ·Â"}, /* get */ {"Á¾·á"}, /* exit */ }; typedef struct value_type { u_char *v_name; u_char *v_type; u_char *char_val; u_int int_val; } val_tp; val_tp *r_tp[_LINE]; typedef struct calc_val { u_int mark_c; u_int ttl_v; u_int v_num; u_int l_num; u_int _label; } calc_t; calc_t *_f; int qt=0,i=0,goto_v=0; int syntax_f(char *l); int comm_chk(char *l,int r,char *comm); int set_val_f(char *l,int r); int unset_val_f(char *l,int r); int data_f(char *l); int code_f(char *l); int w_sleep_f(char *l,int r); int v_gets_f(char *l,int r); int print_f(char *l,int r); int calclt_f(char *l,int r,int method); int main(int argc,char **argv) { char l[_LINE]; FILE *fp; char *t_ext; if((_f=(calc_t *)malloc(sizeof(calc_t)))==NULL) { perror("malloc()"); exit(-1); } { _f->mark_c=0; _f->ttl_v=0; _f->v_num=0; _f->l_num=1; _f->_label=0; } l_b: /* loop */ if(argc<2) { exit(-1); } else if(((t_ext=(char *)strrchr(argv[1],'.'))==NULL)||(strcmp(".x",t_ext))) { fprintf(stderr,"ÀÌ ÆÄÀÏÀº x ½ºÅ©¸³Æ®Ã³·³ º¸ÀÌÁö ¾Ê±º¿ä.\n"); exit(-1); } else if((fp=fopen(argv[1],"r"))==NULL) { perror("ÆÄÀÏÀ» ¿­ ¼ö ¾ø½À´Ï´Ù."); exit(-1); } #ifdef DEBUG fprintf(stdout,"+x ½ºÅ©¸³Æ® ¹ß°ß+\n"); fprintf(stdout,"+ÁÙ´ÜÀ§·Î Àб⠽ÃÀÛ+\n"); #endif while(fgets(l,sizeof(l)-1,fp)) { if(goto_v) { if(_f->l_num==_f->_label) { _f->_label=0; goto_v=0; } else { _f->l_num++; continue; } } #ifdef DEBUG fprintf(stdout,"+%d¹øÂ° ÁÙ ºÐ¼® ½ÃÀÛ+\n",_f->l_num); #endif // ¹®¹ý ½ÃÀÛ. { (int)syntax_f(l); } #ifdef DEBUG fprintf(stdout,"+syntax_f() È£Ãâ ¼º°ø+\n"); #endif if(l[0]!=COMMENT) // ÁÖ¼® Á¦°Å. { // ¸ÂÃã¹ý °Ë»ç. if(l[strlen(l)-2]=='.'&&l[strlen(l)-1]=='\n') { #ifdef DEBUG fprintf(stdout,"+data_f() ÇÔ¼ö ½ÃÀÛ+\n"); #endif for(i=0;i<_f->ttl_v;i++) { #ifdef DEBUG fprintf(stdout,"!%d¹øÂ° ºí·° °Ë»ç!\n",i); fprintf(stdout,"!º¯¼ö À̸§: %s!\n",r_tp[i]->v_name); #endif if(!strcmp(r_tp[i]->v_name,"free")) { #ifdef DEBUG fprintf(stdout,"freeµÈ ºí·°À» ¹ß°ßÇÏ¿´½À´Ï´Ù.\n"); fprintf(stdout,"%d¹øÂ° ºí·°À̱º¿ä.\n",i); #endif _f->v_num=i; _f->mark_c=1; break; } } if((int)data_f(l)==1) { #ifdef DEBUG fprintf(stdout,"=============\n"); fprintf(stdout,"*%d¹øÂ° ºí·°\n",_f->v_num); fprintf(stdout,"*º¯¼öÀ̸§: %s\n",r_tp[_f->v_num]->v_name); fprintf(stdout,"*º¯¼öŸÀÔ: %s\n",r_tp[_f->v_num]->v_type); fprintf(stdout,"=============\n"); #endif if(_f->mark_c) { _f->mark_c=0; _f->v_num=_f->ttl_v; } else { _f->ttl_v++; _f->v_num=_f->ttl_v; } } else { (int)code_f(l); if(goto_v) { _f->l_num=1; fclose(fp); goto l_b; } } } else // ¸ÂÃã¹ý ¿À·ù. { fprintf(stderr,"\n%d¹øÂ° ÁÙ: `.' ¹®¹ý ¿À·ù.\n",_f->l_num); exit(-1); } } _f->l_num++; } #ifdef DEBUG for(i=0;i<_f->ttl_v;i++) { fprintf(stdout,"[%d:%s]\n",i,r_tp[i]->v_name); } #endif } int syntax_f(char *l) { u_char rbuf[_LINE]; int r=0,s=0; memset((u_char *)rbuf,0,sizeof(rbuf)); if(l[0]==COMMENT) // ÁÖ¼®Ã³¸®. { return(0); } for(r=0;rl_num,l[r]); exit(-1); } } else { rbuf[s++]=l[r]; // ÀúÀå. } }//for if(qt) { fprintf(stderr,"\n%d¹øÂ° ÁÙ: `\"' ¹®¹ý ¿À·ù.\n",_f->l_num); exit(-1); } // size ¹Ì´Þ. if(strlen(rbuf)<=1) rbuf[0]=COMMENT; memset((char *)l,0,_LINE); strncpy(l,rbuf,_LINE-1); memset((char *)rbuf,0,sizeof(rbuf)); } int data_f(char *l) { int r=0,i; if(l[0]==COMMENT) // ÁÖ¼®Ã³¸®. { return(0); } for(r=0;rl_num,l[0]); exit(-1); } } } return(0); } int unset_val_f(char *l,int r) { char r_nm[256]; int s=0,ys=0; memset((char *)r_nm,0,sizeof(r_nm)); if(l[r]=='%') { r_nm[s++]=l[r]; r+=1; while(!(l[r]=='%')) { if(s>256-1) { fprintf(stderr,"\n%d¹øÂ° ÁÙ: º¯¼öÀ̸§ ¿À¹öÇÃ·Î¿ì ¿À·ù.\n",_f->l_num); exit(-1); } if(l[r]=='$'||l[r]=='"'||l[r]=='\n') { fprintf(stderr,"\n%d¹øÂ° ÁÙ: `%' ¹®¹ý ¿À·ù.\n",_f->l_num); exit(-1); } r_nm[s++]=l[r]; r++; } r_nm[s++]=l[r]; for(i=0;i<_f->ttl_v;i++) { #ifdef DEBUG fprintf(stdout,"*%d¹øÂ° ºí·°-\n",i); fprintf(stdout,"*º¯¼öÀ̸§: %s\n",r_tp[i]->v_name); fprintf(stdout,"*ÇìÁ¦º¯¼ö: %s\n",r_nm); #endif if(!strcmp(r_tp[i]->v_name,r_nm)) { #ifdef DEBUG fprintf(stdout,"+%d¹øÂ° ºí·°¿¡¼­ ÇìÁ¦ º¯¼ö¸¦ ã¾Ò½À´Ï´Ù!+\n",i); #endif memset((char *)r_tp[i]->v_name,0,256); /* free(r_tp[i]->v_name); */ strncpy(r_tp[i]->v_name,"free",256-1); memset((char *)r_tp[i]->v_type,0,12); free(r_tp[i]->v_type); memset((char *)r_tp[i]->char_val,0,_LINE); free(r_tp[i]->char_val); ys=1; break; } } if(!ys) { fprintf(stderr,"\n%d¹øÂ° ÁÙ: º¯¼öÀ̸§ ¿À·ù.\n",_f->l_num); exit(-1); } } return(r); } int set_val_f(char *l,int r) { char l_v_name[256]; int n=0,n2=0,i,sm=0; memset((char *)l_v_name,0,sizeof(l_v_name)); /*************************************************** structure - [v_name:256][v_type:12][char_val:65535][int_val:4] ***************************************************/ if((r_tp[_f->v_num]=(val_tp *)malloc(sizeof(val_tp)))==NULL) { perror("malloc()"); exit(-1); } else memset((char *)r_tp[_f->v_num],0,sizeof(val_tp)); if((r_tp[_f->v_num]->v_name=(char *)malloc(256))==NULL) { perror("malloc()"); exit(-1); } if((r_tp[_f->v_num]->v_type=(char *)malloc(12))==NULL) { perror("malloc()"); exit(-1); } if((r_tp[_f->v_num]->char_val=(char *)malloc(_LINE))==NULL) { perror("malloc()"); exit(-1); } r_tp[_f->v_num]->int_val=0; if(l[r]==START_VN) { //// %[º¯¼öÀ̸§]%-$[º¯¼öÇü]$-[º¯¼ö°ª] //// { l_v_name[n++]=l[r]; // '%' º¯¼ö ½ÃÀÛ. r+=1; while(!(l[r]==END_VN)) { if(n>=256-1) { fprintf(stderr,"\n%d¹øÂ° ÁÙ: º¯¼öÀ̸§ ¿À¹öÇÃ·Î¿ì ¿À·ù.\n",_f->l_num); exit(-1); } if(l[r]=='$'||l[r]=='"'||l[r]=='\n') { fprintf(stderr,"\n%d¹øÂ° ÁÙ: `=' ¹®¹ý ¿À·ù.\n",_f->l_num); exit(-1); } l_v_name[n++]=l[r]; r++; } for(i=0;i<_f->ttl_v;i++) { if(!strcmp(r_tp[i]->v_name,l_v_name)) { sm=1; } } if(sm) { fprintf(stderr,"\n%d¹øÂ° ÁÙ: ÀÌ¹Ì ÀúÀåµÈ º¯¼öÀÔ´Ï´Ù.\n",_f->l_num); exit(-1); } else { strncpy(r_tp[_f->v_num]->v_name,l_v_name,256-1); } if(l[r-1]!='%') { fprintf(stderr,"\n%d¹øÂ° ÁÙ: º¯¼öÀ̸§ÀÌ Á¤»óÀûÀÌÁö ¾Ê½À´Ï´Ù.\n",_f->l_num); exit(-1); } r+=1; } //// int Çü //// if(comm_chk(l,r,INT_VAL)) { strncpy(r_tp[_f->v_num]->v_type,"int",sizeof(int)*3); r+=strlen(INT_VAL); while(!(l[r]=='.')) { if(n2>=_LINE-1) { fprintf(stderr,"\n%d¹øÂ° ÁÙ: Á¤¼öÇü º¯¼ö ¿À¹öÇÃ·Î¿ì ¿À·ù.\n",_f->l_num); exit(-1); } if(l[r]=='\n') { fprintf(stderr,"\n%d¹øÂ° ÁÙ: `.' ¹®¹ý ¿À·ù.\n",_f->l_num); exit(-1); } r_tp[_f->v_num]->char_val[n2++]=l[r]; r++; } if(r_tp[_f->v_num]->char_val[0]=='0'&&r_tp[_f->v_num]->char_val[1]=='x') { r_tp[_f->v_num]->int_val=strtoul(r_tp[_f->v_num]->char_val,0,0); } else r_tp[_f->v_num]->int_val=atoi(r_tp[_f->v_num]->char_val); } //// char Çü //// else if(comm_chk(l,r,CHAR_VAL)) { r+=strlen(CHAR_VAL); strncpy(r_tp[_f->v_num]->v_type,"char",sizeof(int)*3); if(l[r]!='"') { fprintf(stderr,"\n%d¹øÂ° ÁÙ: ¹®¹ý ¿À·ù.\n",_f->l_num); exit(-1); } while(!(l[r-1]=='"'&&l[r]=='.')) { if(n2>=_LINE-1) { fprintf(stderr,"\n%d¹øÂ° ÁÙ: ¹®ÀÚÇü º¯¼ö ¿À¹öÇÃ·Î¿ì ¿À·ù.\n",_f->l_num); exit(-1); } if(l[r-1]!='\\'&&l[r]=='"') { if(qt) { qt-=1; } else qt+=1; r+=1; } if(qt) { if(l[r]=='\\'&&l[r+1]=='"') { r+=1; } r_tp[_f->v_num]->char_val[n2++]=l[r]; r+=1; } } }//if else { fprintf(stderr,"\n%d¹øÂ° ÁÙ: º¯¼öÇü ¿À·ù.\n",_f->l_num); exit(-1); } } return(r); } int comm_chk(char *l,int r,char *comm) { int n; for(n=0;l[r]==comm[n];r++,n++) { if(l[r]=='\0') return(0); if(comm[n+1]=='\0') return(1); } return(0); } int code_f(char *l) { int r=0; if(l[0]==COMMENT) // ÁÖ¼®Ã³¸®. { return(0); } for(r=0;r_label=(_f->l_num+1); } else if(comm_chk(l,r,opcode[3].comm_name)) { r+=strlen(opcode[3].comm_name); if(!_f->_label) { return(0); } else { goto_v=1; return(0); } } } else { fprintf(stderr,"%d¹øÂ° ÁÙ: `%c' ¹®¹ý ¿À·ù.\n",_f->l_num,l[0]); exit(-1); } } } } int w_sleep_f(char *l,int r) { char tm_c[256]; int n=0; memset((char *)tm_c,0,sizeof(tm_c)); while(!(l[r]=='.')) { if(n>=256-1) { fprintf(stderr,"\n%d¹øÂ° ÁÙ: ÁÖ¾îÁø ½Ã°£ÀÌ ³Ê¹« ±é´Ï´Ù.\n",_f->l_num); exit(-1); } if(l[r]=='\n') { fprintf(stderr,"\n%d¹øÂ° ÁÙ: `.' ¹®¹ý ¿À·ù.\n",_f->l_num); exit(-1); } tm_c[n++]=l[r]; r++; } sleep(atoi(tm_c)); return(r); } int v_gets_f(char *l,int r) { char r_nm[256]; int s=0,ys=0; memset((char *)r_nm,0,sizeof(r_nm)); if(l[r]=='%') { r_nm[s++]=l[r]; r+=1; while(!(l[r]=='%')) { if(s>256-1) { fprintf(stderr,"\n%d¹øÂ° ÁÙ: º¯¼öÀ̸§ ¿À¹öÇÃ·Î¿ì ¿À·ù.\n",_f->l_num); exit(-1); } if(l[r]=='$'||l[r]=='"'||l[r]=='\n') { fprintf(stderr,"\n%d¹øÂ° ÁÙ: `%' ¹®¹ý ¿À·ù.\n",_f->l_num); exit(-1); } r_nm[s++]=l[r]; r++; } r_nm[s++]=l[r]; for(i=0;i<_f->ttl_v;i++) { if(!strcmp(r_tp[i]->v_name,r_nm)) { if(!strcmp(r_tp[i]->v_type,"char")) { memset((char *)r_tp[i]->char_val,0,_LINE); fgets(r_tp[i]->char_val,_LINE-1,stdin); r_tp[i]->char_val[strlen(r_tp[i]->char_val)-1]='\0'; } if(!strcmp(r_tp[i]->v_type,"int")) { r_tp[i]->int_val=0; memset((char *)r_tp[i]->char_val,0,_LINE); fgets(r_tp[i]->char_val,_LINE-1,stdin); r_tp[i]->char_val[strlen(r_tp[i]->char_val)-1]='\0'; r_tp[i]->int_val=atoi(r_tp[i]->char_val); } ys=1; break; } } if(!ys) { fprintf(stderr,"\n%d¹øÂ° ÁÙ: º¯¼öÀ̸§ ¿À·ù.\n",_f->l_num); exit(-1); } } return(r); } int print_f(char *l,int r) { int n=0; jmp_str: //// string //// if(l[r]=='"') { if(qt) { qt-=1; } else qt+=1; r+=1; while(!(l[r-1]!='\\'&&l[r]=='"')) { if(l[r]=='\\'&&l[r+1]=='"') { r+=1; } fprintf(stdout,"%c",l[r]); r++; } if(qt) { qt-=1; } } jmp_val: //// value //// if(l[r]=='%') { int ys=0; char v_name[256]; memset((char *)v_name,0,sizeof(v_name)); v_name[n++]=l[r]; r+=1; while(!(l[r]=='%')) { if(n>256-1) { fprintf(stderr,"\n%d¹øÂ° ÁÙ: º¯¼öÀ̸§ ¿À¹öÇÃ·Î¿ì ¿À·ù.\n",_f->l_num); exit(-1); } if(l[r]=='$'||l[r]=='"'||l[r]=='\n') { fprintf(stderr,"\n%d¹øÂ° ÁÙ: `%' ¹®¹ý ¿À·ù.\n",_f->l_num); exit(-1); } v_name[n++]=l[r]; r++; } v_name[n++]=l[r]; for(i=0;i<_f->ttl_v;i++) { if(!strcmp(r_tp[i]->v_name,v_name)) { if(!strcmp(r_tp[i]->v_type,"char")) { fprintf(stdout,"%s",r_tp[i]->char_val); } if(!strcmp(r_tp[i]->v_type,"int")) { fprintf(stdout,"%d",r_tp[i]->int_val); } ys=1; break; } } if(!ys) { fprintf(stderr,"\n%d¹øÂ° ÁÙ: º¯¼öÀ̸§ ¿À·ù.\n",_f->l_num); exit(-1); } } r+=1; if(l[r]=='"') { goto jmp_str; } else if(l[r]=='%') { n=0; goto jmp_val; } else if(!(l[r]=='.'&&l[r+1]=='\n')) { fprintf(stderr,"\n%d¹øÂ° ÁÙ: ¹®¹ý ¿À·ù.\n",_f->l_num); exit(-1); } return(r); } int calclt_f(char *l,int r,int method) { char r_nm[256]; char f_st[256]; char s_st[256]; int s=0,ys=0,rslt_v=0; u_int src_1=0,src_2=0; memset((char *)r_nm,0,sizeof(r_nm)); if(l[r]=='%') { r_nm[s++]=l[r]; r+=1; while(!(l[r]=='%')) { if(s>256-1) { fprintf(stderr,"\n%d¹øÂ° ÁÙ: º¯¼öÀ̸§ ¿À¹öÇÃ·Î¿ì ¿À·ù.\n",_f->l_num); exit(-1); } if(l[r]=='$'||l[r]=='"'||l[r]=='\n') { fprintf(stderr,"\n%d¹øÂ° ÁÙ: `%' ¹®¹ý ¿À·ù.\n",_f->l_num); exit(-1); } r_nm[s++]=l[r]; r++; } r_nm[s++]=l[r]; r+=2; // strlen(",?"); for(i=0;i<_f->ttl_v;i++) { if(!strcmp(r_tp[i]->v_name,r_nm)) { if(!strcmp(r_tp[i]->v_type,"int")) { /// result value /// rslt_v=(i); /// src_1 /// s=0; memset((char *)f_st,0,sizeof(f_st)); while(!(l[r]==',')) { if(s>256-1) { fprintf(stderr,"\n%d¹øÂ° ÁÙ: ¿À¹öÇÃ·Î¿ì ¿À·ù.\n",_f->l_num); exit(-1); } if(l[r]=='$'||l[r]=='"'||l[r]=='\n') { fprintf(stderr,"\n%d¹øÂ° ÁÙ: `,' ¹®¹ý ¿À·ù.\n",_f->l_num); exit(-1); } f_st[s++]=l[r]; r++; } /// src_2 /// s=0;r+=1; memset((char *)s_st,0,sizeof(s_st)); while(!(l[r]=='.')) { if(s>256-1) { fprintf(stderr,"\n%d¹øÂ° ÁÙ: ¿À¹öÇÃ·Î¿ì ¿À·ù.\n",_f->l_num); exit(-1); } if(l[r]=='$'||l[r]=='"'||l[r]=='\n') { fprintf(stderr,"\n%d¹øÂ° ÁÙ: `,' ¹®¹ý ¿À·ù.\n",_f->l_num); exit(-1); } s_st[s++]=l[r]; r++; } ys=1; break; } else { fprintf(stderr,"\n%d¹øÂ° ÁÙ: º¯¼öÀÇ ¼Ó¼ºÀº Á¤¼öÇüÀ̾î¾ß ÇÕ´Ï´Ù.\n",_f->l_num); exit(-1); } } } if(!ys) { fprintf(stderr,"\n%d¹øÂ° ÁÙ: º¯¼öÀ̸§ ¿À·ù.\n",_f->l_num); exit(-1); } #ifdef DEBUG fprintf(stdout,"|%s|%s|%s|\n",r_nm,f_st,s_st); #endif if(strlen(r_nm)<=0||strlen(f_st)<=0||strlen(s_st)<=0) { fprintf(stderr,"%d¹øÂ° ÁÙ: ÀԷ°ª ¿À·ù.\n"); exit(-1); } /// src_1 /// ys=0; if(f_st[0]=='%') { for(i=0;i<_f->ttl_v;i++) { if(!strcmp(r_tp[i]->v_name,f_st)) { if(!strcmp(r_tp[i]->v_type,"int")) { if((src_1=r_tp[i]->int_val)==0) { fprintf(stderr,"\n%d¹øÂ° ÁÙ: [°æ°í] ù¹øÂ° ¿ÀÆÛ·£µåÀÇ ÀԷ°ªÀÌ 0À¸·Î ÃøÁ¤µÇ¾ú½À´Ï´Ù.\n",_f->l_num); } ys=1; break; } else { fprintf(stderr,"\n%d¹øÂ° ÁÙ: º¯¼öÀÇ ¼Ó¼ºÀº Á¤¼öÇüÀ̾î¾ß ÇÕ´Ï´Ù.\n",_f->l_num); exit(-1); } } } if(!ys) { fprintf(stderr,"\n%d¹øÂ° ÁÙ: º¯¼öÀ̸§ ¿À·ù.\n",_f->l_num); exit(-1); } } else { if((src_1=atoi(f_st))==0) { fprintf(stderr,"\n%d¹øÂ° ÁÙ: [°æ°í] ù¹øÂ° ¿ÀÆÛ·£µåÀÇ ÀԷ°ªÀÌ 0À¸·Î ÃøÁ¤µÇ¾ú½À´Ï´Ù.\n",_f->l_num); } } /// src_2 /// ys=0; if(s_st[0]=='%') { for(i=0;i<_f->ttl_v;i++) { if(!strcmp(r_tp[i]->v_name,s_st)) { if(!strcmp(r_tp[i]->v_type,"int")) { if((src_2=r_tp[i]->int_val)==0) { fprintf(stderr,"\n%d¹øÂ° ÁÙ: [°æ°í] µÎ¹øÂ° ¿ÀÆÛ·£µåÀÇ ÀԷ°ªÀÌ 0À¸·Î ÃøÁ¤µÇ¾ú½À´Ï´Ù.\n",_f->l_num); } ys=1; break; } else { fprintf(stderr,"\n%d¹øÂ° ÁÙ: º¯¼öÀÇ ¼Ó¼ºÀº Á¤¼öÇüÀ̾î¾ß ÇÕ´Ï´Ù.\n",_f->l_num); exit(-1); } } } if(!ys) { fprintf(stderr,"\n%d¹øÂ° ÁÙ: º¯¼öÀ̸§ ¿À·ù.\n",_f->l_num); exit(-1); } } else { if((src_2=atoi(s_st))==0) { fprintf(stderr,"\n%d¹øÂ° ÁÙ: [°æ°í] µÎ¹øÂ° ¿ÀÆÛ·£µåÀÇ ÀԷ°ªÀÌ 0À¸·Î ÃøÁ¤µÇ¾ú½À´Ï´Ù.\n",_f->l_num); } } /// method /// switch(method) { case 1: #ifdef DEBUG fprintf(stdout,"´õÇϱâ:%d+%d\n",src_1,src_2); #endif r_tp[rslt_v]->int_val=(src_1+src_2); break; case 2: #ifdef DEBUG fprintf(stdout,"»©±â:%d-%d\n",src_1,src_2); #endif r_tp[rslt_v]->int_val=(src_1-src_2); break; case 3: #ifdef DEBUG fprintf(stdout,"°öÇϱâ:%d*%d\n",src_1,src_2); #endif r_tp[rslt_v]->int_val=(src_1*src_2); break; case 4: #ifdef DEBUG fprintf(stdout,"³ª´©±â:%d/%d\n",src_1,src_2); #endif r_tp[rslt_v]->int_val=(src_1/src_2); break; } } else { fprintf(stderr,"%d¹øÂ° ÁÙ: °á°ú¸¦ ¹ÞÀ» º¯¼ö°¡ ÇÊ¿äÇÕ´Ï´Ù.\n",_f->l_num); exit(-1); } return(r); }