0.6.0
Loading...
Searching...
No Matches
mod_expression Module Reference

Data Types

type  t_expression
 
interface  unalloc
 

Enumerations

enum  {
  expr_integer = 1 , expr_double , expr_string , expr_boolean ,
  expr_identifier , expr_op_plus , expr_op_minus , expr_op_multiply ,
  expr_op_divide , expr_op_power , expr_op_affectation , expr_op_not ,
  expr_op_equal , expr_op_not_equal , expr_op_greater_than , expr_op_less_than ,
  expr_op_greater_than_or_equal , expr_op_less_than_or_equal , expr_op_question , expr_op_or ,
  expr_op_and , expr_function
}
 
enum  {
  func_abs = 1 , func_ceil , func_floor , func_cos ,
  func_sin , func_tan , func_acos , func_asin ,
  func_atan , func_atan2 , func_cosh , func_sinh ,
  func_tanh , func_acosh , func_asinh , func_atanh ,
  func_erf , func_erfc , func_exp , func_log ,
  func_sqrt , func_d2s , func_i2s , func_pow ,
  func_modulo , func_max , func_min
}
 

Functions/Subroutines

subroutine new_expression (expr, kind)
 
recursive subroutine finalize_expression (expr)
 
subroutine new_binary (expr, kind, left, right)
 
subroutine new_ternary (expr, kind, condition, is_true, is_false)
 
character(len=:) function, allocatable function_to_string (func)
 
character(len=:) function, allocatable expression_node_to_string (expr)
 
recursive subroutine debug_write_expression (prefix, prefix_end, expr)
 
recursive logical function expression_is_integer (expr)
 
recursive logical function expression_is_double (expr)
 
recursive logical function expression_is_string (expr)
 
recursive subroutine expression_evaluate_integer (expr, integer_value, is_error, error_message)
 
recursive subroutine expression_evaluate_double (expr, double_value, is_error, error_message)
 
recursive subroutine expression_evaluate_string (expr, string_value, is_error, error_message)
 
recursive subroutine expression_evaluate_boolean (expr, boolean_value, is_error, error_message)
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
expr_integer 
expr_double 
expr_string 
expr_boolean 
expr_identifier 
expr_op_plus 
expr_op_minus 
expr_op_multiply 
expr_op_divide 
expr_op_power 
expr_op_affectation 
expr_op_not 
expr_op_equal 
expr_op_not_equal 
expr_op_greater_than 
expr_op_less_than 
expr_op_greater_than_or_equal 
expr_op_less_than_or_equal 
expr_op_question 
expr_op_or 
expr_op_and 
expr_function 

◆ anonymous enum

anonymous enum
Enumerator
func_abs 
func_ceil 
func_floor 
func_cos 
func_sin 
func_tan 
func_acos 
func_asin 
func_atan 
func_atan2 
func_cosh 
func_sinh 
func_tanh 
func_acosh 
func_asinh 
func_atanh 
func_erf 
func_erfc 
func_exp 
func_log 
func_sqrt 
func_d2s 
func_i2s 
func_pow 
func_modulo 
func_max 
func_min 

Function/Subroutine Documentation

◆ debug_write_expression()

recursive subroutine mod_expression::debug_write_expression ( character(len=*), intent(in) prefix,
character(len=*), intent(in) prefix_end,
type(t_expression), pointer expr )

◆ expression_evaluate_boolean()

recursive subroutine mod_expression::expression_evaluate_boolean ( type(t_expression), pointer expr,
logical boolean_value,
logical, intent(out) is_error,
character(len=:), allocatable error_message )

◆ expression_evaluate_double()

recursive subroutine mod_expression::expression_evaluate_double ( type(t_expression), pointer expr,
double precision double_value,
logical, intent(out) is_error,
character(len=:), allocatable error_message )

◆ expression_evaluate_integer()

recursive subroutine mod_expression::expression_evaluate_integer ( type(t_expression), pointer expr,
integer integer_value,
logical, intent(out) is_error,
character(len=:), allocatable error_message )

◆ expression_evaluate_string()

recursive subroutine mod_expression::expression_evaluate_string ( type(t_expression), pointer expr,
character(len=:), allocatable string_value,
logical, intent(out) is_error,
character(len=:), allocatable error_message )

◆ expression_is_double()

recursive logical function mod_expression::expression_is_double ( type(t_expression), pointer expr)

◆ expression_is_integer()

recursive logical function mod_expression::expression_is_integer ( type(t_expression), pointer expr)

◆ expression_is_string()

recursive logical function mod_expression::expression_is_string ( type(t_expression), pointer expr)

◆ expression_node_to_string()

character(len=:) function, allocatable mod_expression::expression_node_to_string ( type(t_expression) expr)

◆ finalize_expression()

recursive subroutine mod_expression::finalize_expression ( type(t_expression), pointer expr)

◆ function_to_string()

character(len=:) function, allocatable mod_expression::function_to_string ( integer func)

◆ new_binary()

subroutine mod_expression::new_binary ( type(t_expression), pointer expr,
integer kind,
type(t_expression), pointer left,
type(t_expression), pointer right )

◆ new_expression()

subroutine mod_expression::new_expression ( type(t_expression), pointer expr,
integer kind )

◆ new_ternary()

subroutine mod_expression::new_ternary ( type(t_expression), pointer expr,
integer kind,
type(t_expression), pointer condition,
type(t_expression), pointer is_true,
type(t_expression), pointer is_false )