363 // Base class for generating a mapping from rule number to value. |
363 // Base class for generating a mapping from rule number to value. |
364 // Used with ArchDesc::build_map() for all maps except "enum MachOperands" |
364 // Used with ArchDesc::build_map() for all maps except "enum MachOperands" |
365 // A derived class defines the appropriate output for a specific mapping. |
365 // A derived class defines the appropriate output for a specific mapping. |
366 class OutputMap { |
366 class OutputMap { |
367 protected: |
367 protected: |
368 FILE *_hpp; |
368 FILE *_hpp; |
369 FILE *_cpp; |
369 FILE *_cpp; |
370 FormDict &_globals; |
370 FormDict &_globals; |
371 ArchDesc &_AD; |
371 ArchDesc &_AD; |
|
372 const char *_name; |
372 public: |
373 public: |
373 OutputMap (FILE *decl_file, FILE *def_file, FormDict &globals, ArchDesc &AD) |
374 OutputMap (FILE *decl_file, FILE *def_file, FormDict &globals, ArchDesc &AD, const char *name) |
374 : _hpp(decl_file), _cpp(def_file), _globals(globals), _AD(AD) {}; |
375 : _hpp(decl_file), _cpp(def_file), _globals(globals), _AD(AD), _name(name) {}; |
375 // Access files used by this routine |
376 // Access files used by this routine |
376 FILE *decl_file() { return _hpp; } |
377 FILE *decl_file() { return _hpp; } |
377 FILE *def_file() { return _cpp; } |
378 FILE *def_file() { return _cpp; } |
378 // Positions in iteration that derived class will be told about |
379 // Positions in iteration that derived class will be told about |
379 enum position { BEGIN_OPERANDS, |
380 enum position { BEGIN_OPERANDS, |