class Phlex::SGML
def __nested_tokens__(tokens)
def __nested_tokens__(tokens) buffer = +"" i, length = 0, tokens.length while i < length token = tokens[i] case token when String if i > 0 buffer << " " << token else buffer << token end when Symbol if i > 0 buffer << " " << token.name.tr("_", "-") else buffer << token.name.tr("_", "-") end when Integer, Float, Phlex::SGML::SafeObject if i > 0 buffer << " " << token.to_s else buffer << token.to_s end when Array if token.length > 0 if i > 0 buffer << " " << __nested_tokens__(token) else buffer << __nested_tokens__(token) end end when nil # Do nothing else raise Phlex::ArgumentError.new("Invalid token type: #{token.class}.") end i += 1 end buffer.gsub('"', """) end