JSBHeader.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. // Copyright (c) 2014-2015, THUNDERBEAST GAMES LLC All rights reserved
  2. // Please see LICENSE.md in repository root for license information
  3. // https://github.com/AtomicGameEngine/AtomicGameEngine
  4. #pragma once
  5. #include <Atomic/Container/Vector.h>
  6. #include <Atomic/Container/Str.h>
  7. #include <Atomic/Container/ArrayPtr.h>
  8. #include <Atomic/Core/Object.h>
  9. using namespace Atomic;
  10. namespace CPlusPlus
  11. {
  12. class TranslationUnit;
  13. class Namespace;
  14. }
  15. namespace ToolCore
  16. {
  17. class JSBModule;
  18. class JSBHeader : public Object
  19. {
  20. OBJECT(JSBHeader)
  21. public:
  22. JSBHeader(Context* context, JSBModule* module, const String& filepath);
  23. virtual ~JSBHeader();
  24. const String& GetFilePath() { return filepath_; }
  25. JSBModule* GetModule() { return module_; }
  26. void Parse();
  27. void VisitPreprocess();
  28. void VisitHeader();
  29. private:
  30. CPlusPlus::TranslationUnit* translationUnit_;
  31. CPlusPlus::Namespace* globalNamespace_;
  32. SharedArrayPtr<char> data_;
  33. // absolute path to source file
  34. String filepath_;
  35. SharedPtr<JSBModule> module_;
  36. };
  37. }