Class: BOAST::OpenMP::OpenMPControlStructure

Inherits:
ControlStructure show all
Includes:
Pragma
Defined in:
lib/BOAST/Language/OpenMP.rb

Instance Attribute Summary

Attributes inherited from ControlStructure

#args

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Pragma

#openmp_end_clauses_to_s, #openmp_open_clauses_to_s, #openmp_pragma_to_s, register_clause

Methods inherited from ControlStructure

#[], token_string_generator

Methods included from Inspectable

#inspect

Methods included from PrivateStateAccessor

#address_size, #address_size=, #annotate, #annotate=, #annotate?, #annotate_indepth_list, #annotate_indepth_list=, #annotate_level, #annotate_level=, #annotate_list, #annotate_list=, #architecture, #architecture=, #array_start, #array_start=, #chain_code, #chain_code=, #chain_code?, #debug, #debug=, #debug?, #debug_source, #debug_source=, #debug_source?, #decl_module, #decl_module=, #decl_module?, #default_align, #default_align=, #default_int_signed, #default_int_signed=, #default_int_signed?, #default_int_size, #default_int_size=, #default_real_size, #default_real_size=, #disable_openmp, #disable_openmp=, #disable_openmp?, #ffi, #ffi=, #ffi?, #fortran_line_length, #fortran_line_length=, #get_address_size, #get_annotate, #get_annotate_indepth_list, #get_annotate_level, #get_annotate_list, #get_architecture, #get_array_start, #get_chain_code, #get_debug, #get_debug_source, #get_decl_module, #get_default_align, #get_default_int_signed, #get_default_int_size, #get_default_real_size, #get_disable_openmp, #get_ffi, #get_fortran_line_length, #get_indent_increment, #get_indent_level, #get_keep_temp, #get_lang, #get_model, #get_optimizer_log, #get_optimizer_log_file, #get_output, #get_replace_constants, #get_use_vla, #get_verbose, #indent_increment, #indent_increment=, #indent_level, #indent_level=, #keep_temp, #keep_temp=, #keep_temp?, #lang, #lang=, #model, #model=, #optimizer_log, #optimizer_log=, #optimizer_log?, #optimizer_log_file, #optimizer_log_file=, #output, #output=, #replace_constants, #replace_constants=, #replace_constants?, #set_address_size, #set_annotate, #set_annotate_indepth_list, #set_annotate_level, #set_annotate_list, #set_architecture, #set_array_start, #set_chain_code, #set_debug, #set_debug_source, #set_decl_module, #set_default_align, #set_default_int_signed, #set_default_int_size, #set_default_real_size, #set_disable_openmp, #set_ffi, #set_fortran_line_length, #set_indent_increment, #set_indent_level, #set_keep_temp, #set_lang, #set_model, #set_optimizer_log, #set_optimizer_log_file, #set_output, #set_replace_constants, #set_use_vla, #set_verbose, #use_vla, #use_vla=, #use_vla?, #verbose, #verbose=, #verbose?

Constructor Details

#initialize(options = {}, &block) ⇒ OpenMPControlStructure



145
146
147
148
# File 'lib/BOAST/Language/OpenMP.rb', line 145

def initialize(options = {}, &block)
  @openmp_clauses = options
  @block = block
end

Class Method Details

.inherited(child) ⇒ Object



136
137
138
# File 'lib/BOAST/Language/OpenMP.rb', line 136

def self.inherited(child)
  OpenMP.send(:functorize,child)
end

Instance Method Details

#closeObject



171
172
173
174
# File 'lib/BOAST/Language/OpenMP.rb', line 171

def close
  output.puts end_string(openmp_end_clauses_to_s) unless disable_openmp
  return self
end

#get_stringsObject



140
141
142
143
# File 'lib/BOAST/Language/OpenMP.rb', line 140

def get_strings
  return { C => get_c_strings,
           FORTRAN => get_fortran_strings }
end

#openObject



157
158
159
160
# File 'lib/BOAST/Language/OpenMP.rb', line 157

def open
  output.puts to_s unless disable_openmp
  return self
end

#pr(*args) ⇒ Object



162
163
164
165
166
167
168
169
# File 'lib/BOAST/Language/OpenMP.rb', line 162

def pr(*args)
  open
  if @block then
    @block.call(*args)
    close
  end
  return self
end

#to_sObject



153
154
155
# File 'lib/BOAST/Language/OpenMP.rb', line 153

def to_s
  return begin_string(openmp_open_clauses_to_s)
end