00001
00002
00003
00004
00005
00006
00007
00008 #ifndef metaclass_generator_H
00009 #define metaclass_generator_H
00010
00011 #include "dds_generator.h"
00012
00013 class metaclass_generator : public dds_generator {
00014 public:
00015 metaclass_generator()
00016 : first_struct_(true)
00017 {}
00018
00019 bool gen_enum(AST_Enum* node, UTL_ScopedName* name,
00020 const std::vector<AST_EnumVal*>& contents, const char* repoid);
00021
00022 bool gen_struct(AST_Structure* node, UTL_ScopedName* name,
00023 const std::vector<AST_Field*>& fields,
00024 AST_Type::SIZE_TYPE size, const char* repoid);
00025
00026 bool gen_typedef(AST_Typedef* node, UTL_ScopedName* name, AST_Type* type, const char* repoid);
00027
00028 bool gen_union(AST_Union* node, UTL_ScopedName* name,
00029 const std::vector<AST_UnionBranch*>& branches,
00030 AST_Type* type, const char* repoid);
00031
00032 private:
00033 bool first_struct_;
00034 };
00035
00036 #endif