state = [] ARGF.each do |line| state.push :input if line =~ // state.push :ordered if line =~ // state.push :bulleted if line =~ // state.pop if line =~ // or line =~ /<\/input>/ if line =~ // case state.last when :ordered line.gsub!( //, "" ) when :bulleted line.gsub!( //, "" ) else ## do nothing end end puts line end