def build_additional_match(self, ident, node_set):
source_ident = ident<EOL>for key, value in node_set.must_match.items():<EOL><INDENT>if isinstance(value, dict):<EOL><INDENT>label = '<STR_LIT::>' + value['<STR_LIT>'].__label__<EOL>stmt = _rel_helper(lhs=source_ident, rhs=label, ident='<STR_LIT>', **value)<EOL>self._ast['<STR_LIT>'].append(stmt)<EOL><DEDENT>else:<EOL><INDENT>raise ValueError("<STR_LIT>" + repr(value))<EOL><DEDENT><DEDENT>for key, val in node_set.dont_match.items():<EOL><INDENT>if isinstance(val, dict):<EOL><INDENT>label = '<STR_LIT::>' + val['<STR_LIT>'].__label__<EOL>stmt = _rel_helper(lhs=source_ident, rhs=label, ident='<STR_LIT>', **val)<EOL>self._ast['<STR_LIT>'].append('<STR_LIT>' + stmt)<EOL><DEDENT>else:<EOL><INDENT>raise ValueError("<STR_LIT>" + repr(val))<EOL><DEDENT><DEDENT>
handle additional matches supplied by 'has()' calls