def connect(directives)
@clauses = []
clause = []
directives.each do |d|
if d.is_a? ClauseSeparator
@clauses << clause
clause = []
if d.colon_mod?
if @default == -1
@default = @clauses.size
else
raise SyntaxError.new(d.pos),
'default clause has already been set'
end
end
elsif d.is_a? EndConditional
@clauses << clause
break
else
clause << d
end
end
must = 'two' if colon_mod? and @clauses.size != 2
must = 'one' if at_mod? and @clauses.size != 1
unless must.nil?
raise SyntaxError.new(@pos), "must specify exactly #{must} clauses"
end
end