diff options
author | Michi Henning <michi@zeroc.com> | 2006-12-18 06:05:27 +0000 |
---|---|---|
committer | Michi Henning <michi@zeroc.com> | 2006-12-18 06:05:27 +0000 |
commit | 6554831e1e5574f8fcf57dc158bb0cbff2d7dcbc (patch) | |
tree | 9c74fb7f070247536cda4a7407927153992f1477 /cpp/src/slice2html/Gen.h | |
parent | *** empty log message *** (diff) | |
download | ice-6554831e1e5574f8fcf57dc158bb0cbff2d7dcbc.tar.bz2 ice-6554831e1e5574f8fcf57dc158bb0cbff2d7dcbc.tar.xz ice-6554831e1e5574f8fcf57dc158bb0cbff2d7dcbc.zip |
*** empty log message ***
Diffstat (limited to 'cpp/src/slice2html/Gen.h')
-rw-r--r-- | cpp/src/slice2html/Gen.h | 54 |
1 files changed, 42 insertions, 12 deletions
diff --git a/cpp/src/slice2html/Gen.h b/cpp/src/slice2html/Gen.h index 25b348da44e..2f459431078 100644 --- a/cpp/src/slice2html/Gen.h +++ b/cpp/src/slice2html/Gen.h @@ -18,6 +18,8 @@ namespace Slice void generate(const UnitPtr&, const ::std::string&, const ::std::string&, const ::std::string&, unsigned); +typedef ::std::set< ::std::string> Files; + class GeneratorBase : private ::IceUtil::noncopyable { public: @@ -29,7 +31,7 @@ public: protected: - GeneratorBase(::IceUtil::XMLOutput&); + GeneratorBase(::IceUtil::XMLOutput&, const Files&); virtual ~GeneratorBase() = 0; void openDoc(const ::std::string&, const std::string&); @@ -43,11 +45,12 @@ protected: void printMetaData(const ContainedPtr&); void printSummary(const ContainedPtr&, const ContainerPtr&, bool); + ::std::string toString(const SyntaxTreeBasePtr&, const ContainerPtr&, bool = true, bool = false); + ::std::string toString(const ::std::string&, const ContainerPtr&, bool = true, bool = false); + ::std::string getComment(const ContainedPtr&, const ContainerPtr&, bool, bool = false); + static ::std::string getAnchor(const SyntaxTreeBasePtr&); static ::std::string getLinkPath(const SyntaxTreeBasePtr&, const ContainerPtr&, bool); - static ::std::string toString(const SyntaxTreeBasePtr&, const ContainerPtr&, bool = true, bool = false); - static ::std::string toString(const ::std::string&, const ContainerPtr&, bool = true, bool = false); - static ::std::string getComment(const ContainedPtr&, const ContainerPtr&, bool, bool = false); ::IceUtil::XMLOutput& _out; @@ -67,6 +70,8 @@ private: static ::std::string readFile(const ::std::string&); static void readFile(const ::std::string&, ::std::string&, ::std::string&); + const Files& _files; + static ::std::string _dir; static ::std::string _header1; static ::std::string _header2; @@ -77,7 +82,7 @@ class IndexGenerator : private GeneratorBase { public: - IndexGenerator(); + IndexGenerator(const Files&); ~IndexGenerator(); void generate(const ModulePtr&); @@ -88,11 +93,32 @@ private: ::IceUtil::XMLOutput _out; }; +class TypesVisitor : private ::IceUtil::noncopyable, public ParserVisitor +{ +public: + + TypesVisitor(Files&); + + virtual bool visitUnitStart(const UnitPtr&); + virtual bool visitModuleStart(const ModulePtr&); + virtual bool visitExceptionStart(const ExceptionPtr&); + virtual bool visitClassDefStart(const ClassDefPtr&); + virtual void visitClassDecl(const ClassDeclPtr&); + virtual bool visitStructStart(const StructPtr&); + virtual void visitSequence(const SequencePtr&); + virtual void visitDictionary(const DictionaryPtr&); + virtual void visitEnum(const EnumPtr&); + +private: + + Files& _files; +}; + class IndexVisitor : private ::IceUtil::noncopyable, public ParserVisitor { public: - IndexVisitor(); + IndexVisitor(const Files&); virtual bool visitUnitStart(const UnitPtr&); virtual bool visitModuleStart(const ModulePtr&); @@ -106,7 +132,7 @@ class ModuleGenerator : private GeneratorBase { public: - ModuleGenerator(::IceUtil::XMLOutput&); + ModuleGenerator(::IceUtil::XMLOutput&, const Files&); void generate(const ModulePtr&); private: @@ -119,7 +145,7 @@ class ExceptionGenerator : private GeneratorBase { public: - ExceptionGenerator(::IceUtil::XMLOutput&); + ExceptionGenerator(::IceUtil::XMLOutput&, const Files&); void generate(const ExceptionPtr&); }; @@ -127,7 +153,7 @@ class ClassGenerator : private GeneratorBase { public: - ClassGenerator(::IceUtil::XMLOutput&); + ClassGenerator(::IceUtil::XMLOutput&, const Files&); void generate(const ClassDefPtr&); }; @@ -135,7 +161,7 @@ class StructGenerator : private GeneratorBase { public: - StructGenerator(::IceUtil::XMLOutput&); + StructGenerator(::IceUtil::XMLOutput&, const Files&); void generate(const StructPtr&); }; @@ -143,7 +169,7 @@ class EnumGenerator : private GeneratorBase { public: - EnumGenerator(::IceUtil::XMLOutput&); + EnumGenerator(::IceUtil::XMLOutput&, const Files&); void generate(const EnumPtr&); }; @@ -151,7 +177,7 @@ class Visitor : private ::IceUtil::noncopyable, public ParserVisitor { public: - Visitor(); + Visitor(const Files&); virtual bool visitUnitStart(const UnitPtr&); virtual bool visitModuleStart(const ModulePtr&); @@ -159,6 +185,10 @@ public: virtual bool visitClassDefStart(const ClassDefPtr&); virtual bool visitStructStart(const StructPtr&); virtual void visitEnum(const EnumPtr&); + +private: + + const Files& _files; }; } |