# File rexml/text.rb, line 40
    def initialize(arg, respect_whitespace=false, parent=nil, pattern=PATTERN, raw=false)
      @raw = raw
      if parent
	if parent == true
	  @raw = true
	elsif parent.kind_of? Parent
	  super( parent )
	  @raw = parent.raw
	end
      end
      if arg.kind_of? Source
	md = arg.match(pattern, true)
	raise "no text to add" if md[0].length == 0
	@string = md[1]
	@string.squeeze!(" \n\t") unless respect_whitespace
	@string = Node::read_with_substitution(@string, ILLEGAL) unless @raw
      elsif arg.kind_of? String
	super()
	@string = arg.clone
	@string.squeeze!(" \n\t") unless respect_whitespace
	@string = Node::read_with_substitution(@string) unless @raw
      elsif arg.kind_of? Text
	super()
	@string = arg.string
	@raw = arg.raw
      elsif arg.kind_of? Parent
	super( arg )
      elsif [true,false].include? arg
	@raw = arg
      end
    end