class Riml::Compiler::RimlFileCommandNodeVisitor

Public Instance Methods

compile(node) click to toggle source
# File lib/riml/compiler.rb, line 599
def compile(node)
  if node.name == 'riml_source'
    node.name = 'source'
    node.each_existing_file! do |basename, full_path|
      current_compiler(node).compile_queue << [basename, full_path]
    end
  elsif node.name == 'riml_include'
    # riml_include has to be top-level
    unless node.parent == root_node(node)
      error_msg = %Q(riml_include error, has to be called at top-level)
      error = IncludeNotTopLevel.new(error_msg, node)
      raise error
    end
    node.each_existing_file! do |basename, full_path|
      output = current_compiler(node).compile_include(basename, full_path)
      node.compiled_output << output if output
    end
    return node.compiled_output
  end
  node.compiled_output << node.name
  compile_arguments(node)
  node.compiled_output.gsub!(/['"]/, '')
  node.compiled_output.sub!('.riml', '.vim')
  node.compiled_output
end