diff options
| author | acw1251 <acwright@mit.edu> | 2019-06-19 15:39:56 -0400 | 
|---|---|---|
| committer | acw1251 <acwright@mit.edu> | 2019-06-19 15:39:56 -0400 | 
| commit | 60eaaf6e0f7bf1020ee62f8b77e8ead5dcbb8f99 (patch) | |
| tree | 3fc546f7ee9a287bf2b0571156d1d66f48f5394e /misc | |
| parent | 96ade549932ca48d0e1d3b99389129cdc37524a0 (diff) | |
| download | yosys-60eaaf6e0f7bf1020ee62f8b77e8ead5dcbb8f99.tar.gz yosys-60eaaf6e0f7bf1020ee62f8b77e8ead5dcbb8f99.tar.bz2 yosys-60eaaf6e0f7bf1020ee62f8b77e8ead5dcbb8f99.zip | |
Fixed pyosys commands returning RTLIL::SigSig
Diffstat (limited to 'misc')
| -rw-r--r-- | misc/py_wrap_generator.py | 26 | 
1 files changed, 10 insertions, 16 deletions
| diff --git a/misc/py_wrap_generator.py b/misc/py_wrap_generator.py index 9e5727499..48a54b643 100644 --- a/misc/py_wrap_generator.py +++ b/misc/py_wrap_generator.py @@ -508,23 +508,17 @@ class TupleTranslator(PythonDictTranslator):  	#Generate c++ code to translate to a boost::python::tuple  	@classmethod  	def translate_cpp(c, varname, types, prefix, ref): -		text  = prefix + TupleTranslator.typename + " " + varname + "___tmp = boost::python::make_tuple(" + varname + ".first, " + varname + ".second);" -		return text -		tmp_name = "tmp_" + str(Translator.tmp_cntr) -		Translator.tmp_cntr = Translator.tmp_cntr + 1 -		if ref: -			text += prefix + "for(auto " + tmp_name + " : *" + varname + ")" +		# if the tuple is a pair of SigSpecs (aka SigSig), then we need +		# to call get_py_obj() on each item in the tuple +		if types[0].name in classnames: +			first_var = types[0].name + "::get_py_obj(" + varname + ".first)"  		else: -			text += prefix + "for(auto " + tmp_name + " : " + varname + ")" -		text += prefix + "{" -		if types[0].name.split(" ")[-1] in primitive_types or types[0].name in enum_names: -			text += prefix + "\t" + varname + "___tmp.append(" + tmp_name + ");" -		elif types[0].name in known_containers: -			text += known_containers[types[0].name].translate_cpp(tmp_name, types[0].cont.args, prefix + "\t", types[1].attr_type == attr_types.star) -			text += prefix + "\t" + varname + "___tmp.append(" + types[0].name + "::get_py_obj(" + tmp_name + "___tmp);" -		elif types[0].name in classnames: -			text += prefix + "\t" + varname + "___tmp.append(" + types[0].name + "::get_py_obj(" + tmp_name + "));" -		text += prefix + "}" +			first_var = varname + ".first" +		if types[1].name in classnames: +			second_var = types[1].name + "::get_py_obj(" + varname + ".second)" +		else: +			second_var = varname + ".second" +		text  = prefix + TupleTranslator.typename + " " + varname + "___tmp = boost::python::make_tuple(" + first_var + ", " + second_var + ");"  		return text  #Associate the Translators with their c++ type | 
