def extract_matchdata(matchdata, post_processing)
bc = 1
vars = []
tokens.each{|part|
next if part.literal?
i = 0
pa = part.arity
while i < pa
vars.push( *part.extract(i, matchdata[bc]) )
bc += 1
i += 1
end
}
if post_processing.include? :convert_result
if post_processing.include? :convert_values
return Hash[ vars.map!{|k,v| [k,Utils.pair_array_to_hash(v)] } ]
else
return Hash[vars]
end
else
if post_processing.include? :convert_values
return vars.collect{|k,v| [k,Utils.pair_array_to_hash(v)] }
else
return vars
end
end
end