class MetaCL::DSL::Root
Attributes
code[R]
Public Class Methods
new(program, filename)
click to toggle source
Calls superclass method
# File lib/metacl/dsl/root.rb, line 12 def initialize(program, filename) @program = program super() # call initializers from modules @inner_code = "" @post_init_code = "" @outer_code = "" instance_eval IO.read(filename), filename @code = Templates::Wrapper.render(@inner_code, @post_init_code, @outer_code, @program.platform) end
Public Instance Methods
apply_expression(matrix_name, options = {}, &block)
click to toggle source
# File lib/metacl/dsl/root.rb, line 37 def apply_expression(matrix_name, options = {}, &block) expr = Expression.construct(@program, &block) code, init_code = ExpressionApplicator.construct(@program, expr, matrix_name, options) @inner_code << code << "\n\n" @post_init_code << init_code << "\n\n" end
expression(name, *args, &block)
click to toggle source
# File lib/metacl/dsl/root.rb, line 32 def expression(name, *args, &block) tree = Expression.construct(@program, &block) @program.resources.add_expression(name, tree, args) end
platform(name)
click to toggle source
# File lib/metacl/dsl/root.rb, line 24 def platform(name) @program.set_platform name # TODO platform check end
print_matrix(name)
click to toggle source
# File lib/metacl/dsl/root.rb, line 44 def print_matrix(name) matrix = @program.resources.matrices_hash[name] @inner_code << Templates::PrintMatrix.render(matrix.name, matrix.size_n, matrix.size_m, @program.platform) end
prints(string)
click to toggle source
# File lib/metacl/dsl/root.rb, line 28 def prints(string) @inner_code << Templates::Prints.render(string, @program.platform) << "\n\n" end
repeat(count, &block)
click to toggle source
# File lib/metacl/dsl/root.rb, line 49 def repeat(count, &block) @inner_code << Templates::Iterate.render(count) << "\n" instance_eval(&block) @inner_code << "}\n\n" end