7 #ifndef GDCORE_USED_EXTENSIONS_FINDER_H 
    8 #define GDCORE_USED_EXTENSIONS_FINDER_H 
   11 #include "GDCore/Events/Parsers/ExpressionParser2NodeWorker.h" 
   12 #include "GDCore/Extensions/Metadata/SourceFileMetadata.h" 
   13 #include "GDCore/Extensions/PlatformExtension.h" 
   14 #include "GDCore/IDE/Events/ArbitraryEventsWorker.h" 
   15 #include "GDCore/IDE/Project/ArbitraryObjectsWorker.h" 
   16 #include "GDCore/String.h" 
   32     return usedExtensions;
 
   39     return usedIncludeFiles;
 
   46     return usedRequiredFiles;
 
   49   const std::vector<gd::SourceFileMetadata>& GetUsedSourceFiles()
 const {
 
   50     return usedSourceFiles;
 
   61   void AddUsedBuiltinExtension(
const gd::String& extensionName);
 
   62   void AddUsedIncludeFiles(
const gd::String& includeFile) { usedIncludeFiles.insert(includeFile); }
 
   63   void AddUsedRequiredFiles(
const gd::String& requiredFile) { usedRequiredFiles.insert(requiredFile); }
 
   65   void MarkAsHaving3DObjects() {
 
   70   std::set<gd::String> usedExtensions;
 
   71   std::set<gd::String> usedIncludeFiles;
 
   72   std::set<gd::String> usedRequiredFiles;
 
   73   std::vector<gd::SourceFileMetadata> usedSourceFiles;
 
   74   bool has3DObjects = 
false;
 
   91   void DoVisitObject(
gd::Object& 
object) 
override;
 
   98                           bool isCondition) 
override;
 
  104   void OnVisitNumberNode(
NumberNode& node) 
override;
 
  105   void OnVisitTextNode(
TextNode& node) 
override;
 
  108   void OnVisitVariableBracketAccessorNode(
 
  113   void OnVisitEmptyNode(
EmptyNode& node) 
override;
 
An events worker that will know about the context (the objects container). Useful for workers working...
Definition: ArbitraryEventsWorker.h:136
 
ArbitraryObjectsWorker is an abstract class used to browse objects (and behaviors) and do some work o...
Definition: ArbitraryObjectsWorker.h:30
 
Base class used to represents a behavior that can be applied to an object. It stores the content (i....
Definition: Behavior.h:23
 
The interface for any worker class ("visitor" pattern) that want to interact with the nodes of a pars...
Definition: ExpressionParser2NodeWorker.h:36
 
An instruction is a member of an event: It can be a condition or an action.
Definition: Instruction.h:30
 
Represent an object of a platform.
Definition: Object.h:37
 
Base class representing a project (game), including all resources, scenes, objects,...
Definition: Project.h:50
 
String represents an UTF8 encoded string.
Definition: String.h:33
 
Definition: UsedExtensionsFinder.h:80
 
Definition: UsedExtensionsFinder.h:26
 
const std::set< gd::String > & GetUsedExtensions() const
Definition: UsedExtensionsFinder.h:31
 
const std::set< gd::String > & GetUsedRequiredFiles() const
Definition: UsedExtensionsFinder.h:45
 
bool Has3DObjects() const
Return true when at least 1 object uses the 3D renderer.
Definition: UsedExtensionsFinder.h:56
 
const std::set< gd::String > & GetUsedIncludeFiles() const
Definition: UsedExtensionsFinder.h:38
 
Definition: CommonTools.h:24
 
An empty node, used when parsing failed/a syntax error was encountered and any other node could not m...
Definition: ExpressionParser2Node.h:423
 
A function call node (either free function, object function or object behavior function)....
Definition: ExpressionParser2Node.h:371
 
An identifier node, usually representing an object or a variable with an optional function name or ch...
Definition: ExpressionParser2Node.h:204
 
A number node. For example: "123". Its type is always "number".
Definition: ExpressionParser2Node.h:161
 
The name of a function to call on an object or the behavior For example: "MyObject....
Definition: ExpressionParser2Node.h:321
 
An operator node. For example: "lhs + rhs".
Definition: ExpressionParser2Node.h:129
 
Definition: ExpressionParser2Node.h:115
 
A text node. For example: "Hello World". Its type is always "string".
Definition: ExpressionParser2Node.h:177
 
A unary operator node. For example: "-2".
Definition: ExpressionParser2Node.h:145
 
A direct accessor to a child variable. Example: MyChild in MyVariable.MyChild.
Definition: ExpressionParser2Node.h:282
 
A bracket accessor to a child variable. Example: ["MyChild"] (in MyVariable["MyChild"]).
Definition: ExpressionParser2Node.h:300
 
A variable, or object variable, with bracket accessor or at least 2 "dot" accessors.
Definition: ExpressionParser2Node.h:261