Changeset 600 in dev for trunk/ab5.0/abdev/BasicCompiler_Common/src/Const.cpp
- Timestamp:
- May 10, 2008, 8:50:41 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/BasicCompiler_Common/src/Const.cpp
r597 r600 7 7 } 8 8 9 void Consts::Add( const NamespaceScopes &namespaceScopes, const std::string &name , const char *Expression)9 void Consts::Add( const NamespaceScopes &namespaceScopes, const std::string &name, _int64 i64data, const Type &type ) 10 10 { 11 _int64 i64data; 12 Type resultType; 13 if( !StaticCalculation(false, Expression, 0, &i64data, resultType) ){ 14 //変数の場合 15 //何もしない(実行領域コンパイル時にdim宣言として扱う) 16 return; 17 } 18 19 //リテラル値の場合 20 //登録を行う 21 22 CConst *newconst = new CConst(namespaceScopes, name, resultType, i64data); 11 CConst *newconst = new CConst(namespaceScopes, name, type, i64data); 23 12 24 13 //ハッシュリストに追加 … … 69 58 return pConst->GetDoubleData(); 70 59 } 71 bool Consts::IsStringPtr( const Symbol &symbol ){60 bool Consts::IsStringPtr( const Symbol &symbol, bool isUnicode ){ 72 61 CConst *pConst = GetObjectPtr( symbol ); 73 62 … … 76 65 const Type &type = pConst->GetType(); 77 66 78 return ( type.GetBasicType() == typeOfPtrChar && type.GetIndex() == LITERAL_STRING ); 67 int charType = isUnicode 68 ? MAKE_PTR_TYPE(DEF_WORD,1) 69 : MAKE_PTR_TYPE(DEF_SBYTE,1); 70 71 return ( type.GetBasicType() == charType && type.GetIndex() == LITERAL_STRING ); 79 72 } 80 73
Note:
See TracChangeset
for help on using the changeset viewer.