class Riml::Compiler

Constants

BreakNodeVisitor
ContinueNodeVisitor
DictionaryNodeVisitor
ExLiteralNodeVisitor
FalseNodeVisitor
FinishNodeVisitor
ListNodeVisitor
NumberNodeVisitor
RegexpNodeVisitor
ScopeModifierLiteralNodeVisitor
StringNodeVisitor
SublistNodeVisitor
TrueNodeVisitor
UnlessNodeVisitor
UntilNodeVisitor

Attributes

options[W]
parser[RW]

Public Instance Methods

compile(root_node) click to toggle source

compiles nodes into output code

# File lib/riml/compiler.rb, line 791
def compile(root_node)
  root_node.extend CompilerAccessible
  root_node.current_compiler = self
  root_node.accept(NodesVisitor.new)
  root_node.compiled_output
end
compile_include(file_basepath, file_fullpath) click to toggle source
# File lib/riml/compiler.rb, line 779
def compile_include(file_basepath, file_fullpath)
  return if included_files_compiled.include?(file_basepath)
  Riml.include_cache.fetch(file_basepath) do
    source = File.read(file_fullpath)
    root_node = parser.parse(source, parser.ast_rewriter, file_basepath, true)
    included_files_compiled << file_basepath
    output = compile(root_node)
    (Riml::INCLUDE_COMMENT_FMT % file_basepath) + output
  end
end
compile_queue() click to toggle source
# File lib/riml/compiler.rb, line 767
def compile_queue
  @compile_queue ||= []
end
included_files_compiled() click to toggle source
# File lib/riml/compiler.rb, line 775
def included_files_compiled
  @included_files_compiled ||= []
end
options() click to toggle source

compiler options

# File lib/riml/compiler.rb, line 12
def options
  @options ||= {}
end
output_dir() click to toggle source
# File lib/riml/compiler.rb, line 16
def output_dir
  options[:output_dir]
end
readable() click to toggle source
# File lib/riml/compiler.rb, line 20
def readable
  options.has_key?(:readable) and options[:readable]
end
sourced_files_compiled() click to toggle source
# File lib/riml/compiler.rb, line 771
def sourced_files_compiled
  @sourced_files_compiled ||= []
end