def self.resolve_ordered_list_marker(marker, ordinal = 0, validate = false, reader = nil)
number_style = ORDERED_LIST_STYLES.detect {|s| OrderedListMarkerRxMap[s] =~ marker }
expected = actual = nil
case number_style
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.chomp('.')
end
marker = 'a.'
when :upperalpha
if validate
expected = ('A'[0].ord + ordinal).chr
actual = marker.chomp('.')
end
marker = 'A.'
when :lowerroman
if validate
expected = ordinal + 1
actual = roman_numeral_to_int(marker.chomp(')'))
end
marker = 'i)'
when :upperroman
if validate
expected = ordinal + 1
actual = roman_numeral_to_int(marker.chomp(')'))
end
marker = 'I)'
end
if validate && expected != actual
warn %(asciidoctor: WARNING: #{reader.line_info}: list item index: expected #{expected}, got #{actual})
end
marker
end