aboutsummaryrefslogtreecommitdiff
path: root/src/openvic-simulation/scripts/ConditionScript.hpp
blob: e6ed25546a00c9d36be6499f45fb86c532b2a60d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#pragma once

#include "openvic-simulation/scripts/Condition.hpp"
#include "openvic-simulation/scripts/Script.hpp"

namespace OpenVic {
   struct DefinitionManager;

   struct ConditionScript final : Script<DefinitionManager const&> {

   private:
      ConditionNode PROPERTY_REF(condition_root);
      scope_t PROPERTY(initial_scope);
      scope_t PROPERTY(this_scope);
      scope_t PROPERTY(from_scope);

   protected:
      bool _parse_script(ast::NodeCPtr root, DefinitionManager const& definition_manager) override;

   public:
      ConditionScript(scope_t new_initial_scope, scope_t new_this_scope, scope_t new_from_scope);
   };
}