LCOV - code coverage report
Current view: top level - modal_formula/include/mcrl2/modal_formula - normalize_sorts.h (source / functions) Hit Total Coverage
Test: mcrl2_coverage.info.cleaned Lines: 4 5 80.0 %
Date: 2024-04-26 03:18:02 Functions: 1 1 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : // Author(s): Wieger Wesselink
       2             : // Copyright: see the accompanying file COPYING or copy at
       3             : // https://github.com/mCRL2org/mCRL2/blob/master/COPYING
       4             : //
       5             : // Distributed under the Boost Software License, Version 1.0.
       6             : // (See accompanying file LICENSE_1_0.txt or copy at
       7             : // http://www.boost.org/LICENSE_1_0.txt)
       8             : //
       9             : /// \file mcrl2/modal_formula/normalize_sorts.h
      10             : /// \brief add your file description here.
      11             : 
      12             : #ifndef MCRL2_MODAL_FORMULA_NORMALIZE_SORTS_H
      13             : #define MCRL2_MODAL_FORMULA_NORMALIZE_SORTS_H
      14             : 
      15             : #include "mcrl2/data/normalize_sorts.h"
      16             : #include "mcrl2/modal_formula/builder.h"
      17             : 
      18             : namespace mcrl2
      19             : {
      20             : 
      21             : namespace action_formulas
      22             : {
      23             : 
      24             : template <typename T>
      25             : void normalize_sorts(T& x,
      26             :                      const data::sort_specification& sortspec,
      27             :                      typename std::enable_if< !std::is_base_of< atermpp::aterm, T >::value>::type* = 0
      28             :                     )
      29             : {
      30             :   core::make_update_apply_builder<action_formulas::sort_expression_builder>(data::detail::normalize_sorts_function(sortspec)).update(x);
      31             : }
      32             : 
      33             : template <typename T>
      34             : T normalize_sorts(const T& x,
      35             :                   const data::sort_specification& sortspec,
      36             :                   typename std::enable_if< std::is_base_of< atermpp::aterm, T >::value>::type* = nullptr
      37             :                  )
      38             : {
      39             :   T result;
      40             :   core::make_update_apply_builder<action_formulas::sort_expression_builder>(data::detail::normalize_sorts_function(sortspec)).apply(result, x);
      41             :   return result;
      42             : }
      43             : 
      44             : } // namespace action_formulas
      45             : 
      46             : namespace regular_formulas
      47             : {
      48             : 
      49             : template <typename T>
      50             : void normalize_sorts(T& x,
      51             :                      const data::sort_specification& sortspec,
      52             :                      typename std::enable_if< !std::is_base_of< atermpp::aterm, T >::value>::type* = 0
      53             :                     )
      54             : {
      55             :   core::make_update_apply_builder<regular_formulas::sort_expression_builder>(data::detail::normalize_sorts_function(sortspec)).update(x);
      56             : }
      57             : 
      58             : template <typename T>
      59             : T normalize_sorts(const T& x,
      60             :                   const data::sort_specification& sortspec,
      61             :                   typename std::enable_if< std::is_base_of< atermpp::aterm, T >::value>::type* = nullptr
      62             :                  )
      63             : {
      64             :   T result;
      65             :   core::make_update_apply_builder<regular_formulas::sort_expression_builder>(data::detail::normalize_sorts_function(sortspec)).apply(result, x);
      66             :   return result;
      67             : }
      68             : 
      69             : } // namespace regular_formulas
      70             : 
      71             : namespace state_formulas
      72             : {
      73             : 
      74             : template <typename T>
      75             : void normalize_sorts(T& x,
      76             :                      const data::sort_specification& sortspec,
      77             :                      typename std::enable_if< !std::is_base_of< atermpp::aterm, T >::value>::type* = 0
      78             :                     )
      79             : {
      80             :   core::make_update_apply_builder<state_formulas::sort_expression_builder>(data::detail::normalize_sorts_function(sortspec)).update(x);
      81             : }
      82             : 
      83             : template <typename T>
      84         179 : T normalize_sorts(const T& x,
      85             :                   const data::sort_specification& sortspec,
      86             :                   typename std::enable_if< std::is_base_of< atermpp::aterm, T >::value>::type* = nullptr
      87             :                  )
      88             : {
      89         179 :   T result;
      90         179 :   core::make_update_apply_builder<state_formulas::sort_expression_builder>(data::detail::normalize_sorts_function(sortspec)).apply(result, x);
      91         179 :   return result;
      92           0 : }
      93             : 
      94             : } // namespace state_formulas
      95             : 
      96             : } // namespace mcrl2
      97             : 
      98             : #endif // MCRL2_MODAL_FORMULA_NORMALIZE_SORTS_H

Generated by: LCOV version 1.14