def parse_flow_seq(seq, seq_rule, path, uniq_table)
scan(/\[/)
skip_spaces_and_comments()
if scan(/\]/)
nil
else
rule = seq_rule ? seq_rule.sequence[0] : nil
uniq_table = rule ? rule._uniqueness_check_table() : nil
path.push(nil)
i = 0
while true
path[-1] = i
_linenum = @linenum
_column = @column
val = parse_flow_value(rule, path, uniq_table, seq)
add_to_seq(rule, seq, val, _linenum, _column)
_set_error_info(_linenum, _column) do
@validator._validate(val, rule, path, @errors, @done, uniq_table, false)
end if rule && !val.equal?(PRECEDING_ALIAS_PLACEHOLDER)
skip_spaces_and_comments()
break unless scan(/,\s+/)
i += 1
if match?(/\]/)
raise _syntax_error("sequence item required (or last comma is extra).", path)
end
end
path.pop()
unless scan(/\]/)
raise _syntax_error("flow sequence is not closed by ']'.", path)
end
end
skip_spaces_and_comments()
return seq
end