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