00001 // ***************************************************************************** 00002 // oaNativeNS.h 00003 // 00004 // This file contains the definition for the oaNativeNS class. This class 00005 // implements the Native NameSpace used in name mapping. In conjunction with 00006 // the oaName object, the oaNativeNS class facilitates mapping names to and 00007 // from Native. 00008 // 00009 // The Native nameSpace is case sensitive and has no reserved words. 00010 // 00011 // ***************************************************************************** 00012 // Except as specified in the OpenAccess terms of use of Cadence or Silicon 00013 // Integration Initiative, this material may not be copied, modified, 00014 // re-published, uploaded, executed, or distributed in any way, in any medium, 00015 // in whole or in part, without prior written permission from Cadence. 00016 // 00017 // Copyright 2002-2005 Cadence Design Systems, Inc. 00018 // All Rights Reserved. 00019 // 00020 // $Author: icftcm $ 00021 // $Revision: #1 $ 00022 // $Date: 2010/08/09 $ 00023 // $State: Exp $ 00024 // ***************************************************************************** 00025 // ***************************************************************************** 00026 00027 00028 00029 #if !defined(oaNativeNS_P) 00030 #define oaNativeNS_P 00031 00032 00033 00034 // ***************************************************************************** 00035 // Nested includes 00036 // ***************************************************************************** 00037 #include "oaName.h" 00038 00039 00040 00041 // ***************************************************************************** 00042 // Declare and define types in the OpenAccess namespace. 00043 // ***************************************************************************** 00044 BEGIN_OA_NAMESPACE 00045 00046 00047 00048 // ***************************************************************************** 00049 // oaNativeNS 00050 // ***************************************************************************** 00051 class OA_BASE_DLL_API oaNativeNS : public oaNameSpace { 00052 public: 00053 oaNativeNS(); 00054 00055 virtual oaBoolean isEqual(const oaScalarName &n1, 00056 const oaScalarName &n2) const; 00057 virtual oaBoolean isEqual(const oaVectorName &n1, 00058 const oaVectorName &n2) const; 00059 virtual oaBoolean isEqual(const oaVectorBitName &n1, 00060 const oaVectorBitName &n2) const; 00061 virtual oaBoolean isEqual(const oaBundleName &n1, 00062 const oaBundleName &n2) const; 00063 virtual oaBoolean isEqual(const oaSimpleName &n1, 00064 const oaSimpleName &n2) const; 00065 virtual oaBoolean isEqual(const oaName &n1, 00066 const oaName &n2) const; 00067 00068 virtual oaNameType getType(const oaChar *in) const; 00069 00070 private: 00071 virtual oaBoolean isEqual(const oaNameMem &n1, 00072 const oaNameMem &n2) const; 00073 virtual oaBoolean isEqual(const oaVectorName &n1, 00074 const oaVectorBitName &n2) const; 00075 00076 virtual void getInternalMember(const oaChar *in, 00077 oaString &out, 00078 oaBoolean &caseSensitive, 00079 oaUInt4 len, 00080 oaUInt4 flags = 0) const; 00081 virtual void getInternalScalar(const oaChar *in, 00082 oaScalarName &out) const; 00083 virtual void getInternalVBit(const oaChar *in, 00084 oaVectorBitName &out, 00085 oaBoolean baseOnly = false) 00086 const; 00087 virtual void getInternalVector(const oaChar *in, 00088 oaVectorName &out, 00089 oaBoolean baseOnly = false) 00090 const; 00091 virtual void getInternalBundle(const oaChar *in, 00092 oaBundleName &out) const; 00093 00094 virtual void getMember(const oaChar *in, 00095 oaBoolean caseSensitive, 00096 oaString &out, 00097 oaUInt4 &loc, 00098 oaUInt4 flags = 0) const; 00099 virtual void getMemberArray(const oaNameMem *in, 00100 oaUInt4 numMembers, 00101 oaString &out, 00102 oaUInt4 &loc) const; 00103 virtual void getVectorMember(const oaNameMem &in, 00104 oaUInt4 start, 00105 oaUInt4 stop, 00106 oaUInt4 step, 00107 oaString &out, 00108 oaUInt4 &loc) const; 00109 virtual void getScalarName(const oaScalarName &in, 00110 oaString &out, 00111 oaUInt4 &loc) const; 00112 virtual void getVectorName(const oaVectorName &in, 00113 oaString &out, 00114 oaUInt4 &loc) const; 00115 virtual void getVectorBitName(const oaVectorBitName &in, 00116 oaString &out, 00117 oaUInt4 &loc) const; 00118 virtual void getVectorBitName(const oaNameMem *in, 00119 oaUInt4 numMembers, 00120 oaUInt4 start, 00121 oaString &out, 00122 oaUInt4 &loc) const; 00123 virtual void getBundleName(const oaBundleName &in, 00124 oaString &out, 00125 oaUInt4 &loc) const; 00126 00127 virtual void get(const oaByte *data, 00128 oaString &out, 00129 oaUInt4 &loc) const; 00130 00131 void getSimple(const oaByte *data, 00132 oaUInt4 &dIndex, 00133 oaString &out, 00134 oaUInt4 &loc) const; 00135 void getBundle(const oaByte *data, 00136 oaUInt4 &dIndex, 00137 oaString &out, 00138 oaUInt4 &loc) const; 00139 00140 oaBoolean isNormalChar(oaChar c) const; 00141 oaBoolean isBusChar(oaChar c) const; 00142 oaBoolean isHexDelimiter(oaChar c) const; 00143 00144 oaChar hierDelimiter; 00145 oaChar openBus; 00146 oaChar closeBus; 00147 oaChar bitDelimiter; 00148 oaChar hexDelimiter; 00149 oaChar nameDelimiter; 00150 oaChar repeat; 00151 }; 00152 00153 00154 00155 END_OA_NAMESPACE 00156 00157 #endif
Copyright © 2002 - 2010 Cadence Design Systems, Inc.
All Rights Reserved.