|
OpenADFortTk (basic)
|
00001 // ########################################################## 00002 // # This file is part of OpenADFortTk. # 00003 // # The full COPYRIGHT notice can be found in the top # 00004 // # level directory of the OpenADFortTk source tree. # 00005 // # For more information visit # 00006 // # http://www.mcs.anl.gov/openad # 00007 // ########################################################## 00008 00009 #ifndef XAIFStrings_INCLUDED_h 00010 #define XAIFStrings_INCLUDED_h 00011 00012 #include <iostream> 00013 00014 #include <xercesc/util/XercesDefs.hpp> 00015 #include <xercesc/util/XMLString.hpp> 00016 00017 XERCES_CPP_NAMESPACE_USE 00018 00019 // A class containing strings for XAIF. 00020 class XAIFStringRepository 00021 { 00022 public: 00023 enum { 00024 // ----------------------------------------------------- 00025 00026 // Common attributes 00027 ATTR_annot = 0, // annotation 00028 ATTR_Vid, // vertex_id 00029 ATTR_Eid, // edge_id 00030 ATTR_scopeId, // scope_id 00031 ATTR_symId, // symbol_id 00032 00033 ATTR_active, // active 00034 ATTR_deriv, // deriv 00035 00036 ATTR_source, // source 00037 ATTR_target, // target 00038 00039 ATTR_lineNumber,// line number 00040 00041 // ----------------------------------------------------- 00042 // top level 00043 ATTR_prefix, // specific prefix 00044 00045 // ----------------------------------------------------- 00046 // xaif:CallGraph 00047 ELEM_CallGraph, 00048 00049 // ----------------------------------------------------- 00050 // xaif:ScopeHierarchy, xaif:Scope, xaif:SymbolTable 00051 ELEM_ScopeHierarchy, 00052 ELEM_Scope, 00053 ELEM_SymTab, 00054 00055 // xaif:Symbol 00056 ELEM_Symbol, 00057 ATTR_kind, 00058 ATTR_type, 00059 ATTR_feType, 00060 ATTR_shape, 00061 ATTR_temp, 00062 00063 // xaif:DimensionBounds 00064 ELEM_DimensionBounds, 00065 ATTR_lower, 00066 ATTR_upper, 00067 00068 // ----------------------------------------------------- 00069 00070 // xaif:ControlFlowGraph, xaif:ReplacementList, xaif:Replacement 00071 ELEM_CFG, 00072 ELEM_ReplaceList, 00073 00074 ELEM_ArgList, 00075 ELEM_ArgSymRef, 00076 ATTR_intent, 00077 ATTR_structured, 00078 00079 ELEM_Replacement, 00080 ATTR_placeholder, 00081 00082 ELEM_CFGEdge, 00083 ATTR_hasCondval, 00084 ATTR_condval, 00085 00086 // xaif:BasicBlock 00087 ELEM_BB, 00088 ELEM_BBEntry, 00089 ELEM_BBExit, 00090 ELEM_BBBranch, 00091 ELEM_BBForLoop, 00092 ELEM_BBPreLoop, 00093 ELEM_BBPostLoop, 00094 00095 ELEM_BBEndBranch, 00096 ELEM_BBEndLoop, 00097 00098 ELEM_LpInit, 00099 ELEM_Condition, 00100 ELEM_LpUpdate, 00101 00102 // Statements 00103 ELEM_Assign, 00104 ELEM_SubCall, 00105 ELEM_InlinableSubCall, 00106 ELEM_Marker, 00107 00108 ELEM_AssignLHS, 00109 ELEM_AssignRHS, 00110 00111 ELEM_Argument, 00112 00113 ATTR_subname, 00114 ATTR_formalArgCount, 00115 00116 // Expressions 00117 ELEM_VarRef, 00118 ELEM_Constant, 00119 ELEM_Intrinsic, 00120 ELEM_FuncCall, 00121 ELEM_BoolOp, 00122 00123 ELEM_ExprEdge, 00124 00125 ATTR_name, 00126 ATTR_value, 00127 ATTR_position, 00128 00129 // Variable Reference Expressions 00130 ELEM_SymRef, 00131 ELEM_ArrayElemRef, 00132 00133 ELEM_IndexTriplet, 00134 ELEM_Index, 00135 ELEM_Bound, 00136 ELEM_Stride, 00137 00138 ELEM_VarRefEdge, 00139 00140 // DerivativePropagator 00141 ELEM_DerivProp, // block 00142 00143 ELEM_SetDeriv, // stmt 00144 ELEM_SetNegDeriv, 00145 ELEM_IncDeriv, 00146 ELEM_DecDeriv, 00147 ELEM_ZeroDeriv, 00148 ELEM_Sax, 00149 ELEM_Saxpy, 00150 00151 ELEM_Tgt, // expr 00152 ELEM_Src, 00153 ELEM_AX, 00154 ELEM_A, 00155 ELEM_X, 00156 ELEM_Y, 00157 00158 // ----------------------------------------------------- 00159 00160 // Special tags 00161 TAG_SymTabId, // Tags a colon-separated list of symbol table (ST_TAB) ids 00162 TAG_SymId, // Tags a colon-separated list of symbol (ST) ids 00163 00164 TAG_PUId, // Tags a colon-separated list of PU ids 00165 TAG_WHIRLId, // Tags a colon-separated list of WHIRL (WN) ids 00166 00167 TAG_StmtGoto, // Tags a goto statement 00168 TAG_StmtLabel, // Tags a label statement 00169 TAG_StmtReturn, // Tags a return statement 00170 00171 TAG_IntrinsicKey, // Tags an intrinsic to disambiguate translation 00172 TAG_PregId, // Tags a SymbolReference to a preg 00173 00174 TAG_End, // End of tag information 00175 00176 // ----------------------------------------------------- 00177 00178 NUM_STRINGS // Not a valid string! 00179 }; 00180 00181 public: 00182 XAIFStringRepository(); 00183 ~XAIFStringRepository(); 00184 00185 // ------------------------------------------------------- 00186 // Must be called after Xerces is initialized. All XML strings are 00187 // unavailable until this has been called. 00188 // ------------------------------------------------------- 00189 void XMLInitialize(); 00190 00191 // ------------------------------------------------------- 00192 // General access to strings 00193 // ------------------------------------------------------- 00194 00195 const char* c(int i) const 00196 { 00197 if (0 <= i && i < NUM_STRINGS) { return c_strTbl[i]; } 00198 else { return NULL; } 00199 } 00200 00201 XMLCh* xml(int i) const 00202 { 00203 if (0 <= i && i < NUM_STRINGS) { return x_strTbl[i]; } 00204 else { return NULL; } 00205 } 00206 00207 // ------------------------------------------------------- 00208 // Quick access to strings 00209 // ------------------------------------------------------- 00210 00211 // Common attributes 00212 const char* attr_annot() const { return c_strTbl[ATTR_annot]; } 00213 XMLCh* attr_annot_x() const { return x_strTbl[ATTR_annot]; } 00214 const char* attr_Vid() const { return c_strTbl[ATTR_Vid]; } 00215 XMLCh* attr_Vid_x() const { return x_strTbl[ATTR_Vid]; } 00216 const char* attr_Eid() const { return c_strTbl[ATTR_Eid]; } 00217 XMLCh* attr_Eid_x() const { return x_strTbl[ATTR_Eid]; } 00218 const char* attr_scopeId() const { return c_strTbl[ATTR_scopeId]; } 00219 XMLCh* attr_scopeId_x() const { return x_strTbl[ATTR_scopeId]; } 00220 const char* attr_symId() const { return c_strTbl[ATTR_symId]; } 00221 XMLCh* attr_symId_x() const { return x_strTbl[ATTR_symId]; } 00222 00223 const char* attr_active() const { return c_strTbl[ATTR_active]; } 00224 XMLCh* attr_active_x() const { return x_strTbl[ATTR_active]; } 00225 const char* attr_deriv() const { return c_strTbl[ATTR_deriv]; } 00226 XMLCh* attr_deriv_x() const { return x_strTbl[ATTR_deriv]; } 00227 00228 const char* attr_source() const { return c_strTbl[ATTR_source]; } 00229 XMLCh* attr_source_x() const { return x_strTbl[ATTR_source]; } 00230 const char* attr_target() const { return c_strTbl[ATTR_target]; } 00231 XMLCh* attr_target_x() const { return x_strTbl[ATTR_target]; } 00232 00233 const char* attr_lineNumber() const { return c_strTbl[ATTR_lineNumber]; } 00234 XMLCh* attr_lineNumber_x() const { return x_strTbl[ATTR_lineNumber]; } 00235 00236 // ----------------------------------------------------- 00237 // top level 00238 const char* attr_prefix() const { return c_strTbl[ATTR_prefix]; } 00239 XMLCh* attr_prefix_x() const { return x_strTbl[ATTR_prefix]; } 00240 00241 // ----------------------------------------------------- 00242 // xaif:CallGraph 00243 const char* elem_CallGraph() const { return c_strTbl[ELEM_CallGraph]; } 00244 XMLCh* elem_CallGraph_x() const { return x_strTbl[ELEM_CallGraph]; } 00245 00246 // ----------------------------------------------------- 00247 // xaif:ScopeHierarchy, xaif:Scope, xaif:SymbolTable 00248 const char* elem_ScopeHierarchy() const { return c_strTbl[ELEM_ScopeHierarchy]; } 00249 XMLCh* elem_ScopeHierarchy_x() const { return x_strTbl[ELEM_ScopeHierarchy]; } 00250 const char* elem_Scope() const { return c_strTbl[ELEM_Scope]; } 00251 XMLCh* elem_Scope_x() const { return x_strTbl[ELEM_Scope]; } 00252 const char* elem_SymTab() const { return c_strTbl[ELEM_SymTab]; } 00253 XMLCh* elem_SymTab_x() const { return x_strTbl[ELEM_SymTab]; } 00254 00255 // xaif:Symbol 00256 const char* elem_Symbol() const { return c_strTbl[ELEM_Symbol]; } 00257 XMLCh* elem_Symbol_x() const { return x_strTbl[ELEM_Symbol]; } 00258 00259 const char* attr_kind() const { return c_strTbl[ATTR_kind]; } 00260 XMLCh* attr_kind_x() const { return x_strTbl[ATTR_kind]; } 00261 const char* attr_type() const { return c_strTbl[ATTR_type]; } 00262 XMLCh* attr_type_x() const { return x_strTbl[ATTR_type]; } 00263 const char* attr_feType() const { return c_strTbl[ATTR_feType]; } 00264 XMLCh* attr_feType_x() const { return x_strTbl[ATTR_feType]; } 00265 const char* attr_shape() const { return c_strTbl[ATTR_shape]; } 00266 XMLCh* attr_shape_x() const { return x_strTbl[ATTR_shape]; } 00267 const char* attr_temp() const { return c_strTbl[ATTR_temp]; } 00268 XMLCh* attr_temp_x() const { return x_strTbl[ATTR_temp]; } 00269 00270 // xaif:DimensionBounds 00271 const char* elem_DimensionBounds() const { return c_strTbl[ELEM_DimensionBounds]; } 00272 XMLCh* elem_DimensionBounds_x() const { return x_strTbl[ELEM_DimensionBounds]; } 00273 00274 const char* attr_lower() const { return c_strTbl[ATTR_lower]; } 00275 XMLCh* attr_lower_x() const { return x_strTbl[ATTR_lower]; } 00276 const char* attr_upper() const { return c_strTbl[ATTR_upper]; } 00277 XMLCh* attr_upper_x() const { return x_strTbl[ATTR_upper]; } 00278 00279 // ----------------------------------------------------- 00280 00281 // xaif:ControlFlowGraph 00282 const char* elem_CFG() const { return c_strTbl[ELEM_CFG]; } 00283 XMLCh* elem_CFG_x() const { return x_strTbl[ELEM_CFG]; } 00284 const char* elem_ReplaceList() const { return c_strTbl[ELEM_ReplaceList]; } 00285 XMLCh* elem_ReplaceList_x() const { return x_strTbl[ELEM_ReplaceList]; } 00286 00287 const char* elem_ArgList() const { return c_strTbl[ELEM_ArgList]; } 00288 XMLCh* elem_ArgList_x() const { return x_strTbl[ELEM_ArgList]; } 00289 const char* elem_ArgSymRef() const { return c_strTbl[ELEM_ArgSymRef]; } 00290 XMLCh* elem_ArgSymRef_x() const { return x_strTbl[ELEM_ArgSymRef]; } 00291 const char* attr_intent() const { return c_strTbl[ATTR_intent]; } 00292 XMLCh* attr_intent_x() const { return x_strTbl[ATTR_intent]; } 00293 const char* attr_structured() const { return c_strTbl[ATTR_structured]; } 00294 XMLCh* attr_structured_x() const { return x_strTbl[ATTR_structured]; } 00295 00296 const char* elem_Replacement() const { return c_strTbl[ELEM_Replacement]; } 00297 XMLCh* elem_Replacement_x() const { return x_strTbl[ELEM_Replacement]; } 00298 const char* attr_placeholder() const { return c_strTbl[ATTR_placeholder]; } 00299 XMLCh* attr_placeholder_x() const { return x_strTbl[ATTR_placeholder]; } 00300 00301 const char* elem_CFGEdge() const { return c_strTbl[ELEM_CFGEdge]; } 00302 XMLCh* elem_CFGEdge_x() const { return x_strTbl[ELEM_CFGEdge]; } 00303 const char* attr_hasCondval() const { return c_strTbl[ATTR_hasCondval]; } 00304 XMLCh* attr_hasCondval_x() const { return x_strTbl[ATTR_hasCondval]; } 00305 const char* attr_condval() const { return c_strTbl[ATTR_condval]; } 00306 XMLCh* attr_condval_x() const { return x_strTbl[ATTR_condval]; } 00307 00308 // xaif:BasicBlock 00309 const char* elem_BB() const { return c_strTbl[ELEM_BB]; } 00310 XMLCh* elem_BB_x() const { return x_strTbl[ELEM_BB]; } 00311 const char* elem_BBEntry() const { return c_strTbl[ELEM_BBEntry]; } 00312 XMLCh* elem_BBEntry_x() const { return x_strTbl[ELEM_BBEntry]; } 00313 const char* elem_BBExit() const { return c_strTbl[ELEM_BBExit]; } 00314 XMLCh* elem_BBExit_x() const { return x_strTbl[ELEM_BBExit]; } 00315 const char* elem_BBBranch() const { return c_strTbl[ELEM_BBBranch]; } 00316 XMLCh* elem_BBBranch_x() const { return x_strTbl[ELEM_BBBranch]; } 00317 const char* elem_BBForLoop() const { return c_strTbl[ELEM_BBForLoop]; } 00318 XMLCh* elem_BBForLoop_x() const { return x_strTbl[ELEM_BBForLoop]; } 00319 const char* elem_BBPreLoop() const { return c_strTbl[ELEM_BBPreLoop]; } 00320 XMLCh* elem_BBPreLoop_x() const { return x_strTbl[ELEM_BBPreLoop]; } 00321 const char* elem_BBPostLoop() const { return c_strTbl[ELEM_BBPostLoop]; } 00322 XMLCh* elem_BBPostLoop_x() const { return x_strTbl[ELEM_BBPostLoop]; } 00323 00324 const char* elem_BBEndBranch() const { return c_strTbl[ELEM_BBEndBranch]; } 00325 XMLCh* elem_BBEndBranch_x() const { return x_strTbl[ELEM_BBEndBranch]; } 00326 const char* elem_BBEndLoop() const { return c_strTbl[ELEM_BBEndLoop]; } 00327 XMLCh* elem_BBEndLoop_x() const { return x_strTbl[ELEM_BBEndLoop]; } 00328 00329 const char* elem_LpInit() const { return c_strTbl[ELEM_LpInit]; } 00330 XMLCh* elem_LpInit_x() const { return x_strTbl[ELEM_LpInit]; } 00331 const char* elem_Condition() const { return c_strTbl[ELEM_Condition]; } 00332 XMLCh* elem_Condition_x() const { return x_strTbl[ELEM_Condition]; } 00333 const char* elem_LpUpdate() const { return c_strTbl[ELEM_LpUpdate]; } 00334 XMLCh* elem_LpUpdate_x() const { return x_strTbl[ELEM_LpUpdate]; } 00335 00336 // Statements 00337 const char* elem_Assign() const { return c_strTbl[ELEM_Assign]; } 00338 XMLCh* elem_Assign_x() const { return x_strTbl[ELEM_Assign]; } 00339 const char* elem_SubCall() const { return c_strTbl[ELEM_SubCall]; } 00340 XMLCh* elem_SubCall_x() const { return x_strTbl[ELEM_SubCall]; } 00341 const char* elem_InlinableSubCall() const { return c_strTbl[ELEM_InlinableSubCall]; } 00342 XMLCh* elem_InlinableSubCall_x() const { return x_strTbl[ELEM_InlinableSubCall]; } 00343 const char* elem_Marker() const { return c_strTbl[ELEM_Marker]; } 00344 XMLCh* elem_Marker_x() const { return x_strTbl[ELEM_Marker]; } 00345 00346 const char* elem_AssignLHS() const { return c_strTbl[ELEM_AssignLHS]; } 00347 XMLCh* elem_AssignLHS_x() const { return x_strTbl[ELEM_AssignLHS]; } 00348 const char* elem_AssignRHS() const { return c_strTbl[ELEM_AssignRHS]; } 00349 XMLCh* elem_AssignRHS_x() const { return x_strTbl[ELEM_AssignRHS]; } 00350 00351 const char* elem_Argument() const { return c_strTbl[ELEM_Argument]; } 00352 XMLCh* elem_Argument_x() const { return x_strTbl[ELEM_Argument]; } 00353 00354 const char* attr_subname() const { return c_strTbl[ATTR_subname]; } 00355 XMLCh* attr_subname_x() const { return x_strTbl[ATTR_subname]; } 00356 00357 const char* attr_formalArgCount() const { return c_strTbl[ATTR_formalArgCount]; } 00358 XMLCh* attr_formalArgCount_x() const { return x_strTbl[ATTR_formalArgCount]; } 00359 00360 // Expressions 00361 const char* elem_VarRef() const { return c_strTbl[ELEM_VarRef]; } 00362 XMLCh* elem_VarRef_x() const { return x_strTbl[ELEM_VarRef]; } 00363 const char* elem_Constant() const { return c_strTbl[ELEM_Constant]; } 00364 XMLCh* elem_Constant_x() const { return x_strTbl[ELEM_Constant]; } 00365 const char* elem_Intrinsic() const { return c_strTbl[ELEM_Intrinsic]; } 00366 XMLCh* elem_Intrinsic_x() const { return x_strTbl[ELEM_Intrinsic]; } 00367 const char* elem_FuncCall() const { return c_strTbl[ELEM_FuncCall]; } 00368 XMLCh* elem_FuncCall_x() const { return x_strTbl[ELEM_FuncCall]; } 00369 const char* elem_BoolOp() const { return c_strTbl[ELEM_BoolOp]; } 00370 XMLCh* elem_BoolOp_x() const { return x_strTbl[ELEM_BoolOp]; } 00371 00372 const char* elem_ExprEdge() const { return c_strTbl[ELEM_ExprEdge]; } 00373 XMLCh* elem_ExprEdge_x() const { return x_strTbl[ELEM_ExprEdge]; } 00374 00375 const char* attr_name() const { return c_strTbl[ATTR_name]; } 00376 XMLCh* attr_name_x() const { return x_strTbl[ATTR_name]; } 00377 const char* attr_value() const { return c_strTbl[ATTR_value]; } 00378 XMLCh* attr_value_x() const { return x_strTbl[ATTR_value]; } 00379 const char* attr_position() const { return c_strTbl[ATTR_position]; } 00380 XMLCh* attr_position_x() const { return x_strTbl[ATTR_position]; } 00381 00382 // Variable Reference Expressions 00383 const char* elem_SymRef() const { return c_strTbl[ELEM_SymRef]; } 00384 XMLCh* elem_SymRef_x() const { return x_strTbl[ELEM_SymRef]; } 00385 const char* elem_ArrayElemRef() const { return c_strTbl[ELEM_ArrayElemRef]; } 00386 XMLCh* elem_ArrayElemRef_x() const { return x_strTbl[ELEM_ArrayElemRef]; } 00387 00388 const char* elem_IndexTriplet() const { return c_strTbl[ELEM_IndexTriplet]; } 00389 XMLCh* elem_IndexTriplet_x() const { return x_strTbl[ELEM_IndexTriplet]; } 00390 const char* elem_Index() const { return c_strTbl[ELEM_Index]; } 00391 XMLCh* elem_Index_x() const { return x_strTbl[ELEM_Index]; } 00392 const char* elem_Bound() const { return c_strTbl[ELEM_Bound]; } 00393 XMLCh* elem_Bound_x() const { return x_strTbl[ELEM_Bound]; } 00394 const char* elem_Stride() const { return c_strTbl[ELEM_Stride]; } 00395 XMLCh* elem_Stride_x() const { return x_strTbl[ELEM_Stride]; } 00396 00397 const char* elem_VarRefEdge() const { return c_strTbl[ELEM_VarRefEdge]; } 00398 XMLCh* elem_VarRefEdge_x() const { return x_strTbl[ELEM_VarRefEdge]; } 00399 00400 // DerivativePropagator 00401 XMLCh* elem_DerivProp_x() const { return x_strTbl[ELEM_DerivProp]; } 00402 00403 XMLCh* elem_SetDeriv_x() const { return x_strTbl[ELEM_SetDeriv]; } 00404 XMLCh* elem_SetNegDeriv_x() const { return x_strTbl[ELEM_SetNegDeriv]; } 00405 XMLCh* elem_IncDeriv_x() const { return x_strTbl[ELEM_IncDeriv]; } 00406 XMLCh* elem_DecDeriv_x() const { return x_strTbl[ELEM_DecDeriv]; } 00407 XMLCh* elem_ZeroDeriv_x() const { return x_strTbl[ELEM_ZeroDeriv]; } 00408 XMLCh* elem_Sax_x() const { return x_strTbl[ELEM_Sax]; } 00409 XMLCh* elem_Saxpy_x() const { return x_strTbl[ELEM_Saxpy]; } 00410 00411 XMLCh* elem_Tgt_x() const { return x_strTbl[ELEM_Tgt]; } 00412 XMLCh* elem_Src_x() const { return x_strTbl[ELEM_Src]; } 00413 XMLCh* elem_AX_x() const { return x_strTbl[ELEM_AX]; } 00414 XMLCh* elem_A_x() const { return x_strTbl[ELEM_A]; } 00415 XMLCh* elem_X_x() const { return x_strTbl[ELEM_X]; } 00416 XMLCh* elem_Y_x() const { return x_strTbl[ELEM_Y]; } 00417 00418 // ----------------------------------------------------- 00419 00420 // Special tags 00421 const char* tag_SymTabId() const { return c_strTbl[TAG_SymTabId]; } 00422 XMLCh* tag_SymTabId_x() const { return x_strTbl[TAG_SymTabId]; } 00423 00424 const char* tag_SymId() const { return c_strTbl[TAG_SymId]; } 00425 XMLCh* tag_SymId_x() const { return x_strTbl[TAG_SymId]; } 00426 00427 const char* tag_PUId() const { return c_strTbl[TAG_PUId]; } 00428 XMLCh* tag_PUId_x() const { return x_strTbl[TAG_PUId]; } 00429 00430 const char* tag_WHIRLId() const { return c_strTbl[TAG_WHIRLId]; } 00431 XMLCh* tag_WHIRLId_x() const { return x_strTbl[TAG_WHIRLId]; } 00432 00433 const char* tag_StmtGoto() const { return c_strTbl[TAG_StmtGoto]; } 00434 XMLCh* tag_StmtGoto_x() const { return x_strTbl[TAG_StmtGoto]; } 00435 00436 const char* tag_StmtLabel() const { return c_strTbl[TAG_StmtLabel]; } 00437 XMLCh* tag_StmtLabel_x() const { return x_strTbl[TAG_StmtLabel]; } 00438 00439 const char* tag_StmtReturn() const { return c_strTbl[TAG_StmtReturn]; } 00440 XMLCh* tag_StmtReturn_x() const { return x_strTbl[TAG_StmtReturn]; } 00441 00442 const char* tag_IntrinsicKey() const { return c_strTbl[TAG_IntrinsicKey]; } 00443 XMLCh* tag_IntrinsicKey_x() const { return x_strTbl[TAG_IntrinsicKey]; } 00444 00445 const char* tag_PregId() const { return c_strTbl[TAG_PregId]; } 00446 XMLCh* tag_PregId_x() const { return x_strTbl[TAG_PregId]; } 00447 00448 const char* tag_End() const { return c_strTbl[TAG_End]; } 00449 XMLCh* tag_End_x() const { return x_strTbl[TAG_End]; } 00450 00451 private: 00452 static const char* c_strTbl[]; 00453 XMLCh** x_strTbl; 00454 }; 00455 00456 // A global instance providing everyone access to the above info 00457 extern XAIFStringRepository XAIFStrings; 00458 00459 #endif // XAIFStrings_INCLUDED_h