00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef TORC_GENERIC_HPP
00023 #define TORC_GENERIC_HPP
00024
00025 #include "torc/generic/decompiler/Decompiler.hpp"
00026 #include "torc/generic/decompiler/ObjectVisitor.hpp"
00027 #include "torc/generic/om/Apply.hpp"
00028 #include "torc/generic/om/Bundle.hpp"
00029 #include "torc/generic/om/BundleFlattener.hpp"
00030 #include "torc/generic/om/Cell.hpp"
00031 #include "torc/generic/om/Cloneable.hpp"
00032 #include "torc/generic/om/Cloning.hpp"
00033 #include "torc/generic/om/Commentable.hpp"
00034 #include "torc/generic/om/Composite.hpp"
00035 #include "torc/generic/om/CompositionType.hpp"
00036 #include "torc/generic/om/Connectable.hpp"
00037 #include "torc/generic/om/ConnectionHandler.hpp"
00038 #include "torc/generic/om/Derivation.hpp"
00039 #include "torc/generic/om/Design.hpp"
00040 #include "torc/generic/om/DumpRestoreConfig.hpp"
00041 #include "torc/generic/om/DumpRestoreData.hpp"
00042 #include "torc/generic/om/EdifLevel.hpp"
00043 #include "torc/generic/om/EdifVersion.hpp"
00044 #include "torc/generic/om/Event.hpp"
00045 #include "torc/generic/om/Extern.hpp"
00046 #include "torc/generic/om/FactoryType.hpp"
00047 #include "torc/generic/om/Flattening.hpp"
00048 #include "torc/generic/om/ForbiddenEvent.hpp"
00049 #include "torc/generic/om/Instance.hpp"
00050 #include "torc/generic/om/InstanceArray.hpp"
00051 #include "torc/generic/om/InstanceArrayMember.hpp"
00052 #include "torc/generic/om/InterfaceAttributes.hpp"
00053 #include "torc/generic/om/InterfaceJoinedInfo.hpp"
00054 #include "torc/generic/om/InternalUtilityFunctions.hpp"
00055 #include "torc/generic/om/Library.hpp"
00056 #include "torc/generic/om/LogicElement.hpp"
00057 #include "torc/generic/om/LogicValue.hpp"
00058 #include "torc/generic/om/LogicValueAttributes.hpp"
00059 #include "torc/generic/om/LogicalResponse.hpp"
00060 #include "torc/generic/om/Nameable.hpp"
00061 #include "torc/generic/om/Net.hpp"
00062 #include "torc/generic/om/NetAttributes.hpp"
00063 #include "torc/generic/om/NetBundle.hpp"
00064 #include "torc/generic/om/NetDelay.hpp"
00065 #include "torc/generic/om/ObjectFactory.hpp"
00066 #include "torc/generic/om/Parameter.hpp"
00067 #include "torc/generic/om/ParameterArray.hpp"
00068 #include "torc/generic/om/ParameterArrayElement.hpp"
00069 #include "torc/generic/om/ParameterContext.hpp"
00070 #include "torc/generic/om/ParameterMap.hpp"
00071 #include "torc/generic/om/ParentedObject.hpp"
00072 #include "torc/generic/om/PathDelay.hpp"
00073 #include "torc/generic/om/Permutable.hpp"
00074 #include "torc/generic/om/PointerTypes.hpp"
00075 #include "torc/generic/om/Port.hpp"
00076 #include "torc/generic/om/PortAttributes.hpp"
00077 #include "torc/generic/om/PortBundle.hpp"
00078 #include "torc/generic/om/PortBundleReference.hpp"
00079 #include "torc/generic/om/PortDelay.hpp"
00080 #include "torc/generic/om/PortDirection.hpp"
00081 #include "torc/generic/om/PortElement.hpp"
00082 #include "torc/generic/om/PortList.hpp"
00083 #include "torc/generic/om/PortListAlias.hpp"
00084 #include "torc/generic/om/PortRefCreator.hpp"
00085 #include "torc/generic/om/PortReference.hpp"
00086 #include "torc/generic/om/Property.hpp"
00087 #include "torc/generic/om/PropertyContainer.hpp"
00088 #include "torc/generic/om/Renamable.hpp"
00089 #include "torc/generic/om/Root.hpp"
00090 #include "torc/generic/om/Scalar.hpp"
00091 #include "torc/generic/om/ScalarNet.hpp"
00092 #include "torc/generic/om/ScalarPort.hpp"
00093 #include "torc/generic/om/ScalarPortReference.hpp"
00094 #include "torc/generic/om/ScaleFactor.hpp"
00095 #include "torc/generic/om/SelfReferencing.hpp"
00096 #include "torc/generic/om/Simulate.hpp"
00097 #include "torc/generic/om/SimulationInfo.hpp"
00098 #include "torc/generic/om/SingleInstance.hpp"
00099 #include "torc/generic/om/SingleParameter.hpp"
00100 #include "torc/generic/om/Status.hpp"
00101 #include "torc/generic/om/StatusContainer.hpp"
00102 #include "torc/generic/om/SymTab.hpp"
00103 #include "torc/generic/om/TimeStamp.hpp"
00104 #include "torc/generic/om/Timing.hpp"
00105 #include "torc/generic/om/Unit.hpp"
00106 #include "torc/generic/om/UserDataContainer.hpp"
00107 #include "torc/generic/om/Value.hpp"
00108 #include "torc/generic/om/Vector.hpp"
00109 #include "torc/generic/om/VectorBit.hpp"
00110 #include "torc/generic/om/VectorNet.hpp"
00111 #include "torc/generic/om/VectorNetBit.hpp"
00112 #include "torc/generic/om/VectorPort.hpp"
00113 #include "torc/generic/om/VectorPortBit.hpp"
00114 #include "torc/generic/om/VectorPortBitReference.hpp"
00115 #include "torc/generic/om/VectorPortReference.hpp"
00116 #include "torc/generic/om/View.hpp"
00117 #include "torc/generic/om/Visitable.hpp"
00118 #include "torc/generic/om/VisitorApplier.hpp"
00119 #include "torc/generic/om/VisitorType.hpp"
00120 #include "torc/generic/om/WaveValue.hpp"
00121 #include "torc/generic/om/Written.hpp"
00122 #include "torc/generic/parser/Driver.hpp"
00123 #include "torc/generic/parser/EdifContext.hpp"
00124 #include "torc/generic/parser/EdifParser.hpp"
00125 #include "torc/generic/parser/Linker.hpp"
00126 #include "torc/generic/parser/ParserHelpers.hpp"
00127 #include "torc/generic/parser/ParserOptions.hpp"
00128 #include "torc/generic/parser/ParserPointerTypes.hpp"
00129 #include "torc/generic/parser/Scanner.hpp"
00130 #include "torc/generic/util/Error.hpp"
00131 #include "torc/generic/util/Log.hpp"
00132 #include "torc/generic/util/Message.hpp"
00133 #include "torc/generic/util/MessageId.hpp"
00134 #include "torc/generic/util/MessageSeverity.hpp"
00135 #include "torc/generic/util/MessageTable.hpp"
00136
00137 namespace torc {
00138 namespace generic {
00139
00140
00141 class EdifImporter : public EdifParser {
00142 protected:
00143 ObjectFactorySharedPtr mObjectFactoryPtr;
00144 RootSharedPtr mRootPtr;
00145 public:
00146 EdifImporter(ObjectFactorySharedPtr& inObjectFactoryPtr)
00147 : mObjectFactoryPtr(inObjectFactoryPtr), mRootPtr(inObjectFactoryPtr->newRootPtr("new")) {}
00148 virtual ~EdifImporter(void) throw () {}
00149 void operator() (std::ostream& inStream, std::string& inName) {
00150 mRootPtr->setName(inName);
00151 LinkerSharedPtr linkerPtr(new Linker(mRootPtr));
00152 ParserOptions options;
00153 parse(inName, mRootPtr, linkerPtr, mObjectFactoryPtr, options);
00154 }
00155 RootSharedPtr getRootPtr(void) { return mRootPtr; }
00156 };
00157
00158
00159 class EdifExporter {
00160 protected:
00161 std::ostream& mStream;
00162 public:
00163 EdifExporter(std::ostream& inStream) : mStream(inStream) {}
00164 void operator() (RootSharedPtr& inRootPtr) {
00165 Decompiler decompiler(inRootPtr, mStream);
00166 decompiler();
00167 }
00168 };
00169
00170 }
00171 }
00172
00173 #endif // TORC_GENERIC_HPP