101 TTRACE0(
"TML::CDocuments::初期化\n" );
145 INT_PTR iDim1 = m_aaFileInfo.
GetSize();
146 for( INT_PTR i = iDim1 - 1; i >= 0; i-- )
150 for( INT_PTR j = 0; j < iDim2; j++ )
153 INT_PTR iDimF = T.
atFunc.GetSize();
154 for( INT_PTR f = 0; f < iDimF; f++ )
184 INT_PTR iDim1 = m_aaFileInfo.
GetSize();
185 for( INT_PTR i = 0; i < iDim1; i++ )
189 for( INT_PTR j = 0; j < iDim2; j++ )
208 TTRACE1(
"TML::CDocuments::レベル++ NowLvl=%d\n",
GetLevel() );
218 INT_PTR l = m_aaFileInfo.
GetSize();
225 TTRACE1(
"TML::CDocuments::レベル-- NowLvl=%d\n",
GetLevel() );
258 size_t l = m_aaFileInfo.
GetSize();
268 TTRACE1(
"[%s]は既に登録されています。\n", lpszName );
293 CFileInfoArrays m_aaFileInfo;
300 CTmlResult m_AnalyzeFile(TFileInfo& _tFileInfo)
303 CTmlGrammar gram(_tFileInfo.abContents.begin(), _tFileInfo.abContents.end(), 1);
309 parts = gram.GetNextParts();
321 if ( ! gram.SkipoutBlock() )
352 parts = gram.GetNextParts();
359 parts = gram.GetNextParts();
360 if ( parts.
GetAt() !=
'(' )
366 TFileInfo::TFunc tFunc;
367 tFunc.strFuncName = funcName;
370 parts = gram.PeekNextParts();
377 tFunc.strParamNames.Add(s);
378 parts = gram.PeekNextParts();
379 if ( parts.
GetAt() !=
',' )
385 if ( ! gram.SkipoutBlock() )
390 parts = gram.GetNextParts();
391 if ( parts.
GetAt() !=
'{' )
396 tFunc.iOffset = gram.GetPos();
397 tFunc.iLine = gram.GetLine();
398 if ( ! gram.SkipoutBlock() )
403 _tFileInfo.atFunc.Add(tFunc);
408 r.SetLine(_tFileInfo.strName, parts.
GetLine());
414 friend class CTmlDocumentsTest;
TYP GetAt(INDEX index=0) const
[取得] 内容.
EPartsKind GetKind(void) const
[取得] 種類
INT_PTR GetLine(void) const
[取得] 行番号取得
const TYP * GetString(void) const
[取得] 内容
int Compare(const TYP *lpszSubject) const
[確認] 文字列比較
const_iterator begin(void) const
[反復] 先頭const_iterator.
CTmlResult Add(TFuncInfoRes &_tFuncInfo, LPCSTR lpszName, LPCSTR lpszData)
[追加] ファイル情報追加.
CTmlDocuments(void)
コンストラクタ
bool DecLevel(void)
[操作] レベル−1
void IncLevel(void)
[操作] レベル+1
const TFileInfo * FindFileName(LPCSTR lpszFile) const
[検索] ファイル検索.
INT_PTR GetLevel(void) const
[取得] 現在レベル取得
bool DecLevels(INT_PTR level)
[設定] レベル指定.
TFuncInfoRes FindFunc(LPCSTR lpszFunc) const
[検索] 関数検索.
EResult GetResult(void) const
[取得] リザルトコード取得.
bool IsError(void) const
[確認] ERROR 確認.
@ Operation_FindingFunc
関数検索中
@ Result_InvalidMacroContentsLevel
マクロコンテンツレベルが異常です
@ Result_InvalidParenthesesPosition
括弧の位置がおかしい
@ Result_NotFoundParentheses
括弧が必要なところにない
@ Result_NotCloseParentheses
括弧が閉じていない
virtual size_t GetSize(void) const
[取得] サイズ取得
virtual const TYP & At(INDEX index) const
[取得] 要素の参照取得.
virtual bool SetSize(size_t size)
[操作] サイズ指定
virtual TYP & Ref(INDEX index)
[取得] 要素の参照取得.
virtual bool RemoveAll(void)
[削除] 空化
virtual INDEX Add(const TYP &t)
[追加] 要素一つ追加.
INT_PTR iLine
関数開始のLine({の次の位置を指している)
INT_PTR iOffset
関数開始のOffset({の次の位置を指している)
CAsciiVector strParamNames
引数名
TFunc(const TFunc &other)
コピーコンストラクタ
TFunc & operator=(const TFunc &other)
コピーオペレータ
CAscii abContents
ファイル内容+NULL終端
CVectorT< TFunc > atFunc
関数情報
TFileInfo(const TFileInfo &other)
コピーコンストラクタ
CAscii strName
includeしたファイル名
TFileInfo & operator=(const TFileInfo &other)
コピーオペレータ
LPCSTR lpszFuncAdds
関数のあるアドレス(関数の頭の { の直後)
INT_PTR iFuncLine
関数のあるファイ行
TFuncInfoRes(void)
コンストラクタ
const CAsciiVector * pastrParamNames
関数の引数名(Arrayの参照)
bool HasData(void) const
[確認] データを持っているか?