text: #ifndef INTERLINCK_DELPHI_SYNTAX_STATEMENTS_DELPHISTATEMENTLISTSYNTAX_H
  #define INTERLINCK_DELPHI_SYNTAX_STATEMENTS_DELPHISTATEMENTLISTSYNTAX_H
  
  #include <vector>
  #include "interlinck/Core/Syntax/SyntaxVariant.hpp"
  #include "interlinck/Core/Types.hpp"
  #include "Core/Basic/Macros.hpp"
  #include "Delphi/Syntax/Statements/DelphiStatementSyntax.hpp"
  
  namespace interlinck::Core::Support
  {
  
  class SyntaxFactory;
  
  } // end namespace interlinck::Core::Support
  
  namespace interlinck::Delphi::Syntax
  {
  
  class DelphiStatementListSyntax : public DelphiStatementSyntax
  {
  public:
      explicit DelphiStatementListSyntax(std::vector<Core::Syntax::SyntaxVariant>&& statements) noexcept;
      ~DelphiStatementListSyntax() noexcept override = default;
  
      inline const std::vector<Core::Syntax::SyntaxVariant>& statements() const noexcept { return _statements; }
  
      inline il_size childCount() const noexcept final { return _statements.size(); }
      Core::Syntax::SyntaxVariant child(il_size index) const noexcept final;
  
      inline il_string typeName() const noexcept override { CREATE_TYPENAME(DelphiStatementListSyntax) }
  
      static const DelphiStatementListSyntax* create(Core::Support::SyntaxFactory& syntaxFactory,
                                                     std::vector<Core::Syntax::SyntaxVariant>&& statements) noexcept;
  
  private:
      const std::vector<Core::Syntax::SyntaxVariant> _statements;
  };
  
  } // end namespace interlinck::Delphi::Syntax
  
  #endif // INTERLINCK_DELPHI_SYNTAX_STATEMENTS_DELPHISTATEMENTLISTSYNTAX_H
  