def read_simple(src, escaped, exit_on_chars=nil, exit_on_strings=nil, warn=true)
text = ""
escaped = Array(escaped)
exit_on_chars = Array(exit_on_chars)
exit_on_strings = Array(exit_on_strings)
while true
c = src.cur_char
break if exit_on_chars.include?(c)
break if exit_on_strings.any? {|x| src.cur_chars_are x }
case c
when nil
if warn
maruku_error "String finished while reading (break on " +
"#{(exit_on_chars + exit_on_strings).inspect})" +
" already read: #{text.inspect}", src
end
break
when "\\"
d = src.next_char
if escaped.include? d
src.ignore_chars(2)
text << d
else
text << src.shift_char
end
else
text << src.shift_char
end
end
text.empty? ? nil : text
end