def parse_flow_map(map, map_rule, path, uniq_table)
_start_linenum = @linenum
_start_column = @column
scan(/\{/)
skip_spaces_and_comments()
if scan(/\}/)
nil
else
path.push(nil)
is_merged = false
while true
_linenum = @linenum
_column = @column
unless scan(MAPKEY_PATTERN)
raise _syntax_error("mapping key is expected.", path)
end
key = group(1)
skip_spaces_and_comments()
_linenum2 = @linenum
_column2 = @column
is_merged = _parse_map_value(map, map_rule, path, nil, key, is_merged,
uniq_table, _linenum, _column, _linenum2, _column2)
break unless scan(/,\s+/)
end
path.pop()
unless scan(/\}/)
raise _syntax_error("flow mapping is not closed by '}'.", path)
end
end
skip_spaces_and_comments()
_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