def parse_block_map(map, map_rule, path, uniq_table)
_start_linenum = @linenum
_start_column = @column
level = @column
path.push(nil)
is_merged = false
while true
_linenum = @linenum
_column = @column
break unless level == @column && scan(MAPKEY_PATTERN)
key = group(1)
skip_spaces_and_comments()
_linenum2 = @linenum
_column2 = @column
is_merged = _parse_map_value(map, map_rule, path, level, key, is_merged,
uniq_table, _linenum, _column, _linenum2, _column2)
end
path.pop()
_set_error_info(_start_linenum, _start_column) do
@validator._validate_mapping_required_keys(map, map_rule,
path, @errors)
end if map_rule
return map
end