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