 # `re()`  
 # Works like `build()`, except it explicitly states which function should
 # handle it. (essentially, *re*routing it to another builder)
+
 re = (type, str, args...) ->
   Builders[type].apply str, args
 
 # `body()`
 # Works like `build()`, and is used for code blocks. It cleans up the returned
 # code block by removing any extraneous spaces and such.
+
 body = (item, opts={}) ->
   str = build(item, opts)
   str = blockTrim(str)


  # `regexp`  
  # Regular expressions.
  #
  'regexp': ->
    m     = @value.toString().match(/^\/(.*)\/([a-z]?)/)
    value = m[1]


  if str.length > 0 then str else ""

# `transform()`  
# Perform a transformation on the node, if a transformation function is
# available.

transform = (node, args...) ->
  type = node.typeName()
  fn   = Transformers[type]

  fn.apply(node, args)  if fn

# ## The builders
#
# Each of these functions are apply'd to a Node, and is expected to return
