Changeset 96 in dev for BasicCompiler_Common
- Timestamp:
- Apr 15, 2007, 2:48:08 AM (18 years ago)
- Location:
- BasicCompiler_Common
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
BasicCompiler_Common/Class.cpp
r94 r96 29 29 SetError(15,VarName,cp); 30 30 } 31 32 /*33 TODO: 消す34 メンバ定義は抽象クラスでもOK35 if( IsObject() ){36 if( GetClass().IsAbstract() ){37 //抽象クラスだったとき38 SetError(125,GetClass().name,cp);39 }40 }*/41 31 42 32 //メンバ名 … … 660 650 bool CClass::IsAbstract() const 661 651 { 662 // 未実装の仮想関数を持つ場合はtrueを返す652 // 未実装(abstract)の仮想関数を持つ場合はtrueを返す 663 653 664 654 foreach( CMethod *method, methods ){ … … 669 659 } 670 660 } 671 672 /*673 TODO: 消す674 これはAB5からは良くなった(参照型になったため)675 676 //コンポジションの関係にあるメンバも検査する677 for(int i=0;i < iMemberNum;i++){678 if(ppobj_Member[i]->IsObject()){679 if(ppobj_Member[i]->GetClass().IsAbstract())680 return true;681 }682 }683 */684 661 685 662 return false; -
BasicCompiler_Common/Intermediate_Step1.cpp
r88 r96 78 78 GlobalFree(temporary); 79 79 } 80 /*81 TODO: 消す82 int KillReturnCode_InParameter(char *buffer,int *pRnum,char cBeginPare,char cEndPare){83 int i,i2,i3,IsStr;84 85 //カッコ'('直下の改行86 while(buffer[0]=='\n'){87 SlideString(buffer+1,-1);88 (*pRnum)++;89 }90 91 for(i=0,IsStr=0;;i++){92 if(IsDBCSLeadByte(buffer[i])&&buffer[i+1]){93 i++;94 continue;95 }96 97 if(buffer[i]=='\"') IsStr^=1;98 99 if(buffer[i]=='\0') break; //エラー100 if(buffer[i]=='\n'){101 i2=0;102 i3=0;103 while(buffer[i+i2]=='\n'){104 i2++;105 i3++;106 while(buffer[i+i2]==' '||buffer[i+i2]=='\t') i2++;107 }108 while(buffer[i+i2]==' '||buffer[i+i2]=='\t') i2++;109 110 if(buffer[i+i2]==cEndPare){111 SlideString(buffer+i+i2,-i2);112 (*pRnum)+=i3;113 break;114 }115 116 //エラー117 break;118 }119 120 if(buffer[i]==cBeginPare&&IsStr==0){121 i++;122 i2=KillReturnCode_InParameter(buffer+i,pRnum,cBeginPare,cEndPare);123 i+=i2;124 if(buffer[i]!=cEndPare) break;125 continue;126 }127 if(buffer[i]==cEndPare&&IsStr==0) break;128 129 if(buffer[i]==','&&buffer[i+1]=='\n'&&IsStr==0){130 i++;131 while(buffer[i]=='\n'){132 SlideString(buffer+i+1,-1);133 (*pRnum)++;134 }135 i--;136 }137 }138 return i;139 }140 void KillReturnCode(char *buffer){141 int i,i2;142 143 //アンダーバーによる改行144 for(i=0;;i++){145 i2=0;146 while(buffer[i]=='_'&&buffer[i+1]=='\n'){147 i2++;148 SlideString(buffer+i+2,-2);149 while(buffer[i]=='\n'){150 SlideString(buffer+i+1,-1);151 i2++;152 }153 for(;;i++){154 if(buffer[i]=='_'&&buffer[i+1]=='\n') break;155 if(buffer[i]=='\n'||buffer[i]=='\0'){156 SlideString(buffer+i,i2);157 memset(buffer+i,'\n',i2);158 break;159 }160 }161 }162 if(buffer[i]=='\0') break;163 }164 165 //カッコ内パラメータの改行166 int IsStr,rnum;167 for(i=0,IsStr=0,rnum=0;;i++){168 if(IsDBCSLeadByte(buffer[i])&&buffer[i+1]){169 i++;170 continue;171 }172 if(buffer[i]=='\0') break;173 if(buffer[i]=='\n'){174 if(rnum){175 SlideString(buffer+i+1,rnum);176 memset(buffer+i+1,'\n',rnum);177 rnum=0;178 }179 }180 if(buffer[i]=='\"') IsStr^=1;181 if(buffer[i]=='('&&IsStr==0){182 i++;183 i2=KillReturnCode_InParameter(buffer+i,&rnum,'(',')');184 i+=i2;185 if(buffer[i]!=')') break;186 }187 if(buffer[i]=='['&&IsStr==0){188 i++;189 i2=KillReturnCode_InParameter(buffer+i,&rnum,'[',']');190 i+=i2;191 if(buffer[i]!=']') break;192 }193 }194 }*/195 80 void CheckParenthesis(char *buffer){ 196 81 int i,IsStr,PareNum,sw; -
BasicCompiler_Common/MakeExe.cpp
r92 r96 100 100 //"最適化中..." 101 101 CompileMessage(STRING_COMPILE_OPTIMIZING); 102 103 /*104 TODO: 消す105 BasicSource::ReadFile内で処理されている106 107 //アンダーバーによる改行を正規表現に戻す108 KillReturnCode(basbuf);109 */110 102 111 103 //カッコを相互チェック(ダブルクォートチェックチェックを含む) -
BasicCompiler_Common/NumOpe_GetType.cpp
r94 r96 530 530 } 531 531 532 if( (string)term == "s.GetType().Name" ){ 533 int test=0; 534 } 535 532 536 533 537 Type varType; -
BasicCompiler_Common/TypeDef.cpp
r88 r96 22 22 TypeDef typeDef( newName, baseName ); 23 23 this->push_back( typeDef ); 24 25 26 /*27 TODO: 消す128 ////////////////////////29 // 循環参照をチェック30 ////////////////////////31 32 int i;33 string tempName = newName;34 35 while(1){36 i=GetIndex( tempName );37 if(i==-1) break;38 39 if( (*this)[i].baseName == newName ){40 //循環エラー41 extern int cp;42 SetError(124,NULL,cp);43 44 //不明な型として、Long型を指定しておく45 (*this)[i].baseName = "Long";46 47 break;48 }49 50 tempName = (*this)[i].baseName;51 }*/52 24 } 53 25 int TypeDefCollection::GetIndex( const string &typeName ) const{ -
BasicCompiler_Common/common.h
r95 r96 47 47 48 48 #ifdef _AMD64_ 49 #define VER_INFO "(x64) β rev.2 09"49 #define VER_INFO "(x64) β rev.213" 50 50 #else 51 #define VER_INFO "β rev.2 09"51 #define VER_INFO "β rev.213" 52 52 #endif 53 53
Note:
See TracChangeset
for help on using the changeset viewer.