Example #1
0
        //------------------------------------------------------------
        // 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());
        }
Example #2
0
        //------------------------------------------------------------
        // XMLファイルに書き込む。
        public void WriteToXML(string aOutputDirPath)
        {
            // ファイル名
            string fullPath = SymbolNodeUtil.FullPath(this);
            string fileName = fullPath.Replace(".", "__");

            // 書き込む
            System.IO.File.WriteAllText(aOutputDirPath + "/" + fileName + ".xml", mBCModule.ToXDataXml());
        }
Example #3
0
        //------------------------------------------------------------
        // ユニークなフルパス。
        public string GetUniqueFullPath()
        {
            // 普通のパス
            string path = SymbolNodeUtil.FullPath(this);

            // 引数
            path += "(";
            foreach (var entry in mArgTypeInfos)
            {
                // todo:
            }
            path += ")";

            // const
            if (mFunctionDecl.IsConst())
            {
                path += "const";
            }

            // 結果を返す
            return(path);
        }
Example #4
0
 //------------------------------------------------------------
 // XDataにリファレンスタグを書き込む。
 public void XDataWriteReference(XDataWriter aWriter)
 {
     aWriter.WriteReferenceLine("Function", XDATA_LABEL + ":" + SymbolNodeUtil.FullPath(mFunctionSymbolNode));
 }
Example #5
0
 //------------------------------------------------------------
 // ユニークなフルパス。
 public string GetUniqueFullPath()
 {
     return(SymbolNodeUtil.FullPath(this));
 }
Example #6
0
 //------------------------------------------------------------
 // XDataにリファレンスタグを書き込む。
 public void XDataWriteReference(XDataWriter aWriter)
 {
     aWriter.WriteReferenceLine(XDATA_LABEL + ":" + SymbolNodeUtil.FullPath(mTypeSymbolNode));
 }