//------------------------------------------------------------ // XDataに変換する。 public string ToXDataXml() { // 作成 var xdata = new XDataWriter(); // BCModule xdata.WriteCommentLine("BCModule"); using (new XDataWriter.IndentScope(xdata)) { {// BCVersion xdata.WriteIndent(); xdata.WriteComment("version (" + BC_VERSION_PUBLISH_MAJOR + "." + BC_VERSION_PUBLISH_MINOR + "." + BC_VERSION_PRIVATE_MAJOR + "." + BC_VERSION_PRIVATE_MINOR + ")"); xdata.WriteUInt8(BC_VERSION_PUBLISH_MAJOR); xdata.WriteUInt8(BC_VERSION_PUBLISH_MINOR); xdata.WriteUInt8(BC_VERSION_PRIVATE_MAJOR); xdata.WriteUInt8(BC_VERSION_PRIVATE_MINOR); xdata.WriteLine(); } xdata.WriteStringLine("path", SymbolNodeUtil.FullPath(mModuleSymbolNode)); mConstantValueTable.XDataWriteReference(xdata); mSymbolLinkTable.XDataWriteReference(xdata); mObjectTypeList.XDataWriteReference(xdata); } // 各実体 mConstantValueTable.XDataWriteEntity(xdata); mSymbolLinkTable.XDataWriteEntity(xdata); mObjectTypeList.XDataWriteEntity(xdata); // 結果を返す return(xdata.ToXMLText()); }
//------------------------------------------------------------ // XMLファイルに書き込む。 public void WriteToXML(string aOutputDirPath) { // ファイル名 string fullPath = SymbolNodeUtil.FullPath(this); string fileName = fullPath.Replace(".", "__"); // 書き込む System.IO.File.WriteAllText(aOutputDirPath + "/" + fileName + ".xml", mBCModule.ToXDataXml()); }
//------------------------------------------------------------ // ユニークなフルパス。 public string GetUniqueFullPath() { // 普通のパス string path = SymbolNodeUtil.FullPath(this); // 引数 path += "("; foreach (var entry in mArgTypeInfos) { // todo: } path += ")"; // const if (mFunctionDecl.IsConst()) { path += "const"; } // 結果を返す return(path); }
//------------------------------------------------------------ // XDataにリファレンスタグを書き込む。 public void XDataWriteReference(XDataWriter aWriter) { aWriter.WriteReferenceLine("Function", XDATA_LABEL + ":" + SymbolNodeUtil.FullPath(mFunctionSymbolNode)); }
//------------------------------------------------------------ // ユニークなフルパス。 public string GetUniqueFullPath() { return(SymbolNodeUtil.FullPath(this)); }
//------------------------------------------------------------ // XDataにリファレンスタグを書き込む。 public void XDataWriteReference(XDataWriter aWriter) { aWriter.WriteReferenceLine(XDATA_LABEL + ":" + SymbolNodeUtil.FullPath(mTypeSymbolNode)); }