def self.resolve_ordered_list_marker(marker, ordinal = 0, validate = false, reader = nil)
expected = actual = nil
case ORDERED_LIST_STYLES.find {|s| OrderedListMarkerRxMap[s].match? marker }
when :arabic
if validate
expected = ordinal + 1
actual = marker.to_i
end
marker = '1.'
when :loweralpha
if validate
expected = ('a'[0].ord + ordinal).chr
actual = marker.chop
end
marker = 'a.'
when :upperalpha
if validate
expected = ('A'[0].ord + ordinal).chr
actual = marker.chop
end
marker = 'A.'
when :lowerroman
if validate
expected = ordinal + 1
actual = roman_numeral_to_int(marker.chop)
end
marker = 'i)'
when :upperroman
if validate
expected = ordinal + 1
actual = roman_numeral_to_int(marker.chop)
end
marker = 'I)'
end
if validate && expected != actual
warn %(asciidoctor: WARNING: #{reader.line_info}: list item index: expected #{expected}, got #{actual})
end
marker
end