class Riml::Compiler::RegexpNodeVisitor
Public Instance Methods
compile(node)
click to toggle source
# File lib/riml/compiler.rb, line 167 def compile(node) value = case node.value when TrueClass 1 when FalseClass 0 when Numeric node.value when String StringNode === node ? string_surround(node) : node.value when Array if ListNode === node node.value.each {|n| n.parent_node = node} '[' << node.value.map do |n| n.accept(visitor_for_node(n)) n.compiled_output end.join(', ') << ']' elsif DictionaryNode === node '{' << node.value.map do |(k, v)| k.accept(visitor_for_node(k)) v.accept(visitor_for_node(v)) k.compiled_output << ': ' << v.compiled_output end.join(', ') << '}' end end.to_s node.compiled_output = value end
Private Instance Methods
string_surround(string_node)
click to toggle source
# File lib/riml/compiler.rb, line 199 def string_surround(string_node) case string_node.type.to_sym when :d '"' << string_node.value << '"' when :s "'" << string_node.value << "'" end end