diff -r 5b04b4670697 -r 49c8ebc1ee25 generate_IEC_std.py --- a/generate_IEC_std.py Fri Jul 13 19:21:17 2007 +0200 +++ b/generate_IEC_std.py Tue Jul 17 12:25:19 2007 +0200 @@ -32,7 +32,8 @@ "ANY_REAL" : "if(search_expression_type->is_real_type(%(paramname)s_type_symbol))", "ANY_INT" : "if(search_expression_type->is_integer_type(%(paramname)s_type_symbol))" }.get(typename, - "if (typeid(*last_type_symbol) == typeid(%(typename)s_type_name_c))")%{ + #"if (typeid(*last_type_symbol) == typeid(%(typename)s_type_name_c))")%{ + "if(search_expression_type->is_same_type(&search_constant_type_c::%(typename)s_type_name, last_type_symbol))")%{ "paramname" : paramname, "typename": typename.lower()} def recurse_and_indent(fdecls, indent, do_type_search_only = False, do_il = False): @@ -116,13 +117,14 @@ code_gen_dic_decl["end_bool_filter"] = '");\nif (search_expression_type->is_bool_type(last_type_symbol)) {\n s4o.print("&1");\n s4o.print(")");\n}\ns4o.print("' if type(code_gen) == type(tuple()): - res += 's4o.print("%s");\n'%(code_gen[0]%code_gen_dic_decl) + res += 's4o.indent_right();\n' + res += 's4o.print("%s\\n" + s4o.indent_spaces);\n'%(code_gen[0]%code_gen_dic_decl) static_param_accept_list = [] for paramname,paramtype,unused in fdecl["inputs"]: static_param_accept_list.append("%s_param_value->accept(*this);\n"%(paramname)) - res += ('s4o.print("%s");\n'%(code_gen[1])).join(static_param_accept_list) - code = 's4o.print("%s");\nparam_value->accept(*this);\n'%(code_gen[1]) - end_code = 's4o.print("%s");\nreturn NULL;\n'%(code_gen[2]%code_gen_dic_decl) + res += ('s4o.print("%s\\n" + s4o.indent_spaces);\n'%(code_gen[1])).join(static_param_accept_list) + code = 's4o.print("%s\\n" + s4o.indent_spaces);\nparam_value->accept(*this);\n'%(code_gen[1]) + end_code = 's4o.print("%s");\ns4o.indent_left();\nreturn NULL;\n'%(code_gen[2]%code_gen_dic_decl) else: code = '' end_code = ('s4o.print("' + code_gen%code_gen_dic_decl + '");\nreturn NULL;\n').replace('s4o.print("");\n','')