#include "stdafx.h" #include "common.h" void ComOpen(char *Parameter,char *buffer,int nowLine){ int i,i2,IsStr; char temporary[255]; for(i=0,i2=0,IsStr=0;;i++,i2++){ if(Parameter[i]=='\"') IsStr^=1; if(( ((Parameter[i]==' '||Parameter[i]=='\t')&&(Parameter[i+1]=='f'||Parameter[i+1]=='F')&&(Parameter[i+2]=='o'||Parameter[i+2]=='O')&&(Parameter[i+3]=='r'||Parameter[i+3]=='R')&&(Parameter[i+4]==' '||Parameter[i+4]=='\t'))|| (Parameter[i]==1&&Parameter[i+1]==ESC_AS) )&&IsStr==0){ buffer[i2]=0; break; } buffer[i2]=Parameter[i]; if(Parameter[i]=='\0') return; } KillStringSpaces(buffer); if(Parameter[i]==1&&Parameter[i+1]==ESC_AS) lstrcat(buffer,",0"); else{ i+=4; while(Parameter[i]==' '||Parameter[i]=='\t') i++; for(i2=0;;i++,i2++){ if(Parameter[i]=='\0'){ compiler.errorMessenger.Output(1,NULL,nowLine); return; } if(Parameter[i]==' '||Parameter[i]=='\t'||(Parameter[i]==1&&Parameter[i+1]==ESC_AS)){ temporary[i2]=0; break; } temporary[i2]=Parameter[i]; } if(lstrcmpi(temporary,"input")==0) lstrcat(buffer,",1"); else if(lstrcmpi(temporary,"output")==0) lstrcat(buffer,",2"); else if(lstrcmpi(temporary,"append")==0) lstrcat(buffer,",3"); else{ compiler.errorMessenger.Output(1,NULL,nowLine); return; } while(Parameter[i]==' '||Parameter[i]=='\t') i++; if(!(Parameter[i]==1&&Parameter[i+1]==ESC_AS)) return; } i+=2; while(Parameter[i]==' '||Parameter[i]=='\t') i++; if(Parameter[i]=='#') i++; lstrcat(buffer,","); lstrcat(buffer,Parameter+i); } void ComClose(char *Parameter,char *buffer){ if(Parameter[0]=='#') lstrcpy(buffer,Parameter+1); else lstrcpy(buffer,Parameter); } void ComField(char *Parameter,char *buffer){ if(Parameter[0]=='#') KillSpaces(Parameter+1,buffer); else KillSpaces(Parameter,buffer); } void ComLine(char *Parameter,char *buffer,int nowLine){ int i,i2,PareNum; char temporary[VN_SIZE],temp2[VN_SIZE]; KillStringSpaces(Parameter); if(Parameter[0]=='-'){ lstrcpy(buffer,"&H80000000,&H80000000"); i=0; } else{ if(Parameter[0]!='('){ compiler.errorMessenger.Output(10,"Line",nowLine); return; } for(i=1,i2=0,PareNum=1;;i++,i2++){ if(Parameter[i]=='(') PareNum++; if(Parameter[i]==')'){ PareNum--; if(PareNum==0){ temporary[i2]=0; break; } } temporary[i2]=Parameter[i]; } lstrcpy(buffer,temporary); if(Parameter[i+1]!='-'){ compiler.errorMessenger.Output(10,"Line",nowLine); return; } i++; } i++; if((Parameter[i]=='s'||Parameter[i]=='S')&&(Parameter[i+1]=='t'||Parameter[i+1]=='T')&&(Parameter[i+2]=='e'||Parameter[i+2]=='E')&&(Parameter[i+3]=='p'||Parameter[i+3]=='P')){ lstrcat(buffer,",1,"); i+=4; } else lstrcat(buffer,",0,"); if(Parameter[i]!='('){ compiler.errorMessenger.Output(10,"Line",nowLine); return; } for(i++,i2=0,PareNum=1;;i++,i2++){ if(Parameter[i]=='(') PareNum++; if(Parameter[i]==')'){ PareNum--; if(PareNum==0){ temporary[i2]=0; break; } } temporary[i2]=Parameter[i]; } lstrcat(buffer,temporary); if(Parameter[i+1]=='\0'){ lstrcat(buffer,",7"); return; } else if(Parameter[i+1]!=','){ compiler.errorMessenger.Output(10,"Line",nowLine); return; } i+=2; i=GetOneParameter(Parameter,i,temporary); //第5パラメータ取得 if(temporary[0]=='\0') lstrcpy(temporary,"7"); lstrcat(buffer,","); lstrcat(buffer,temporary); lstrcpy(temp2,temporary); if(Parameter[i]=='\0') return; i=GetOneParameter(Parameter,i,temporary); //第6パラメータ取得 if(temporary[0]=='\0') lstrcat(buffer,",0"); else if(lstrcmpi(temporary,"b")==0) lstrcat(buffer,",1"); else if(lstrcmpi(temporary,"bf")==0) lstrcat(buffer,",2"); else{ compiler.errorMessenger.Output(10,"Line",nowLine); return; } if(Parameter[i]=='\0'){ lstrcat(buffer,","); lstrcat(buffer,temp2); return; } i=GetOneParameter(Parameter,i,temporary); //第7パラメータ取得 if(Parameter[i-1]==','){ compiler.errorMessenger.Output(10,"Line",nowLine); return; } if(temporary[0]=='\0') lstrcpy(temporary,temp2); lstrcat(buffer,","); lstrcat(buffer,temporary); } void ComCircle(char *Parameter,char *buffer,int nowLine){ int i,i2,PareNum; char temporary[VN_SIZE],temp2[VN_SIZE]; KillStringSpaces(Parameter); if(Parameter[0]!='('){ compiler.errorMessenger.Output(10,"Circle",nowLine); return; } for(i=1,i2=0,PareNum=1;;i++,i2++){ if(Parameter[i]=='(') PareNum++; if(Parameter[i]==')'){ PareNum--; if(PareNum==0){ buffer[i2]=0; break; } } buffer[i2]=Parameter[i]; } i++; if(Parameter[i]!=','){ compiler.errorMessenger.Output(10,"Circle",nowLine); return; } i++; i=GetOneParameter(Parameter,i,temporary); //第3パラメータ取得(radius) lstrcat(buffer,","); lstrcat(buffer,temporary); if(Parameter[i]=='\0'){ lstrcat(buffer,",7,0,0,1"); return; } i=GetOneParameter(Parameter,i,temporary); //第4パラメータ取得(color) if(temporary[0]=='\0') lstrcpy(temporary,"7"); lstrcat(buffer,","); lstrcat(buffer,temporary); lstrcpy(temp2,temporary); if(Parameter[i]=='\0'){ lstrcat(buffer,",0,0,1"); return; } i=GetOneParameter(Parameter,i,temporary); //第5パラメータ取得(start) lstrcat(buffer,","); lstrcat(buffer,temporary); if(Parameter[i]=='\0'){ lstrcat(buffer,",0,1"); return; } i=GetOneParameter(Parameter,i,temporary); //第6パラメータ取得(end) lstrcat(buffer,","); lstrcat(buffer,temporary); if(Parameter[i]=='\0'){ lstrcat(buffer,",1"); return; } i=GetOneParameter(Parameter,i,temporary); //第7パラメータ取得(aspect) lstrcat(buffer,","); if(temporary[0]=='\0') lstrcat(buffer,"1"); else lstrcat(buffer,temporary); if(Parameter[i]=='\0') return; i=GetOneParameter(Parameter,i,temporary); //第8パラメータ取得(f) if(lstrcmpi(temporary,"f")==0){ lstrcat(buffer,",1"); } else{ compiler.errorMessenger.Output(10,"Circle",nowLine); return; } if(Parameter[i]){ i=GetOneParameter(Parameter,i,temporary); //第9パラメータ取得(BrushColor) if(temporary[0]=='\0') lstrcpy(temporary,"7"); lstrcat(buffer,","); lstrcat(buffer,temporary); if(Parameter[i-1]==','){ compiler.errorMessenger.Output(10,"Circle",nowLine); return; } } else{ lstrcat(buffer,","); lstrcat(buffer,temp2); } } void ComPSet(char *Parameter,char *buffer,int nowLine){ int i,i2,PareNum; KillStringSpaces(Parameter); if(Parameter[0]!='('){ compiler.errorMessenger.Output(10,"PSet",nowLine); return; } for(i=1,i2=0,PareNum=1;;i++,i2++){ if(Parameter[i]=='(') PareNum++; if(Parameter[i]==')'){ PareNum--; if(PareNum==0){ buffer[i2]=0; break; } } buffer[i2]=Parameter[i]; } if(Parameter[i+1]==',')lstrcat(buffer,Parameter+i+1); else if(Parameter[i+1]=='\0') lstrcat(buffer,",7"); else{ compiler.errorMessenger.Output(10,"PSet",nowLine); return; } } void ComPaint(char *Parameter,char *buffer,int nowLine){ int i,i2,PareNum; KillStringSpaces(Parameter); if(Parameter[0]!='('){ compiler.errorMessenger.Output(10,"Paint",nowLine); return; } for(i=1,i2=0,PareNum=1;;i++,i2++){ if(Parameter[i]=='(') PareNum++; if(Parameter[i]==')'){ PareNum--; if(PareNum==0){ buffer[i2]=0; break; } } buffer[i2]=Parameter[i]; } if(Parameter[i+1]!=','){ compiler.errorMessenger.Output(10,"Paint",nowLine); return; } lstrcat(buffer,Parameter+i+1); }