# File lib/asciidoctor/reader.rb, line 674
  def resolve_expr_val(str)
    val = str
    type = nil

    if val.start_with?('"') && val.end_with?('"') ||
        val.start_with?('\'') && val.end_with?('\'')
      type = :s
      val = val[1..-2]
    end

    if val.include? '{'
      val = @document.sub_attributes val
    end

    if type != :s
      if val.empty?
        val = nil
      elsif val == 'true'
        val = true
      elsif val == 'false'
        val = false
      elsif val.include?('.')
        val = val.to_f
      else
        val = val.to_i
      end
    end

    val
  end