1# 2# C naming conventions 3# 4# 5# Prefixes for generating C names. 6# Collected here to facilitate ensuring uniqueness. 7# 8 9pyrex_prefix = "__pyx_" 10 11 12codewriter_temp_prefix = pyrex_prefix + "t_" 13 14temp_prefix = u"__cyt_" 15 16builtin_prefix = pyrex_prefix + "builtin_" 17arg_prefix = pyrex_prefix + "arg_" 18funcdoc_prefix = pyrex_prefix + "doc_" 19enum_prefix = pyrex_prefix + "e_" 20func_prefix = pyrex_prefix + "f_" 21func_prefix_api = pyrex_prefix + "api_f_" 22pyfunc_prefix = pyrex_prefix + "pf_" 23pywrap_prefix = pyrex_prefix + "pw_" 24genbody_prefix = pyrex_prefix + "gb_" 25gstab_prefix = pyrex_prefix + "getsets_" 26prop_get_prefix = pyrex_prefix + "getprop_" 27const_prefix = pyrex_prefix + "k_" 28py_const_prefix = pyrex_prefix + "kp_" 29label_prefix = pyrex_prefix + "L" 30pymethdef_prefix = pyrex_prefix + "mdef_" 31method_wrapper_prefix = pyrex_prefix + "specialmethod_" 32methtab_prefix = pyrex_prefix + "methods_" 33memtab_prefix = pyrex_prefix + "members_" 34objstruct_prefix = pyrex_prefix + "obj_" 35typeptr_prefix = pyrex_prefix + "ptype_" 36prop_set_prefix = pyrex_prefix + "setprop_" 37type_prefix = pyrex_prefix + "t_" 38typeobj_prefix = pyrex_prefix + "type_" 39var_prefix = pyrex_prefix + "v_" 40varptr_prefix = pyrex_prefix + "vp_" 41varptr_prefix_api = pyrex_prefix + "api_vp_" 42wrapperbase_prefix= pyrex_prefix + "wrapperbase_" 43pybuffernd_prefix = pyrex_prefix + "pybuffernd_" 44pybufferstruct_prefix = pyrex_prefix + "pybuffer_" 45vtable_prefix = pyrex_prefix + "vtable_" 46vtabptr_prefix = pyrex_prefix + "vtabptr_" 47vtabstruct_prefix = pyrex_prefix + "vtabstruct_" 48opt_arg_prefix = pyrex_prefix + "opt_args_" 49convert_func_prefix = pyrex_prefix + "convert_" 50closure_scope_prefix = pyrex_prefix + "scope_" 51closure_class_prefix = pyrex_prefix + "scope_struct_" 52lambda_func_prefix = pyrex_prefix + "lambda_" 53module_is_main = pyrex_prefix + "module_is_main_" 54defaults_struct_prefix = pyrex_prefix + "defaults" 55dynamic_args_cname = pyrex_prefix + "dynamic_args" 56 57interned_prefixes = { 58 'str': pyrex_prefix + "n_", 59 'int': pyrex_prefix + "int_", 60 'float': pyrex_prefix + "float_", 61 'tuple': pyrex_prefix + "tuple_", 62 'codeobj': pyrex_prefix + "codeobj_", 63 'slice': pyrex_prefix + "slice_", 64 'ustring': pyrex_prefix + "ustring_", 65 'umethod': pyrex_prefix + "umethod_", 66} 67 68ctuple_type_prefix = pyrex_prefix + "ctuple_" 69args_cname = pyrex_prefix + "args" 70generator_cname = pyrex_prefix + "generator" 71sent_value_cname = pyrex_prefix + "sent_value" 72pykwdlist_cname = pyrex_prefix + "pyargnames" 73obj_base_cname = pyrex_prefix + "base" 74builtins_cname = pyrex_prefix + "b" 75preimport_cname = pyrex_prefix + "i" 76moddict_cname = pyrex_prefix + "d" 77dummy_cname = pyrex_prefix + "dummy" 78filename_cname = pyrex_prefix + "filename" 79modulename_cname = pyrex_prefix + "modulename" 80filetable_cname = pyrex_prefix + "f" 81intern_tab_cname = pyrex_prefix + "intern_tab" 82kwds_cname = pyrex_prefix + "kwds" 83lineno_cname = pyrex_prefix + "lineno" 84clineno_cname = pyrex_prefix + "clineno" 85cfilenm_cname = pyrex_prefix + "cfilenm" 86local_tstate_cname = pyrex_prefix + "tstate" 87module_cname = pyrex_prefix + "m" 88moddoc_cname = pyrex_prefix + "mdoc" 89methtable_cname = pyrex_prefix + "methods" 90retval_cname = pyrex_prefix + "r" 91reqd_kwds_cname = pyrex_prefix + "reqd_kwds" 92self_cname = pyrex_prefix + "self" 93stringtab_cname = pyrex_prefix + "string_tab" 94vtabslot_cname = pyrex_prefix + "vtab" 95c_api_tab_cname = pyrex_prefix + "c_api_tab" 96gilstate_cname = pyrex_prefix + "state" 97skip_dispatch_cname = pyrex_prefix + "skip_dispatch" 98empty_tuple = pyrex_prefix + "empty_tuple" 99empty_bytes = pyrex_prefix + "empty_bytes" 100empty_unicode = pyrex_prefix + "empty_unicode" 101print_function = pyrex_prefix + "print" 102print_function_kwargs = pyrex_prefix + "print_kwargs" 103cleanup_cname = pyrex_prefix + "module_cleanup" 104pymoduledef_cname = pyrex_prefix + "moduledef" 105pymoduledef_slots_cname = pyrex_prefix + "moduledef_slots" 106pymodinit_module_arg = pyrex_prefix + "pyinit_module" 107pymodule_create_func_cname = pyrex_prefix + "pymod_create" 108pymodule_exec_func_cname = pyrex_prefix + "pymod_exec" 109optional_args_cname = pyrex_prefix + "optional_args" 110import_star = pyrex_prefix + "import_star" 111import_star_set = pyrex_prefix + "import_star_set" 112outer_scope_cname= pyrex_prefix + "outer_scope" 113cur_scope_cname = pyrex_prefix + "cur_scope" 114enc_scope_cname = pyrex_prefix + "enc_scope" 115frame_cname = pyrex_prefix + "frame" 116frame_code_cname = pyrex_prefix + "frame_code" 117binding_cfunc = pyrex_prefix + "binding_PyCFunctionType" 118fused_func_prefix = pyrex_prefix + 'fuse_' 119quick_temp_cname = pyrex_prefix + "temp" # temp variable for quick'n'dirty temping 120tp_dict_version_temp = pyrex_prefix + "tp_dict_version" 121obj_dict_version_temp = pyrex_prefix + "obj_dict_version" 122type_dict_guard_temp = pyrex_prefix + "type_dict_guard" 123cython_runtime_cname = pyrex_prefix + "cython_runtime" 124 125global_code_object_cache_find = pyrex_prefix + 'find_code_object' 126global_code_object_cache_insert = pyrex_prefix + 'insert_code_object' 127 128genexpr_id_ref = 'genexpr' 129freelist_name = 'freelist' 130freecount_name = 'freecount' 131 132line_c_macro = "__LINE__" 133 134file_c_macro = "__FILE__" 135 136extern_c_macro = pyrex_prefix.upper() + "EXTERN_C" 137 138exc_type_name = pyrex_prefix + "exc_type" 139exc_value_name = pyrex_prefix + "exc_value" 140exc_tb_name = pyrex_prefix + "exc_tb" 141exc_lineno_name = pyrex_prefix + "exc_lineno" 142 143parallel_exc_type = pyrex_prefix + "parallel_exc_type" 144parallel_exc_value = pyrex_prefix + "parallel_exc_value" 145parallel_exc_tb = pyrex_prefix + "parallel_exc_tb" 146parallel_filename = pyrex_prefix + "parallel_filename" 147parallel_lineno = pyrex_prefix + "parallel_lineno" 148parallel_clineno = pyrex_prefix + "parallel_clineno" 149parallel_why = pyrex_prefix + "parallel_why" 150 151exc_vars = (exc_type_name, exc_value_name, exc_tb_name) 152 153api_name = pyrex_prefix + "capi__" 154 155h_guard_prefix = "__PYX_HAVE__" 156api_guard_prefix = "__PYX_HAVE_API__" 157api_func_guard = "__PYX_HAVE_API_FUNC_" 158 159PYX_NAN = "__PYX_NAN()" 160 161def py_version_hex(major, minor=0, micro=0, release_level=0, release_serial=0): 162 return (major << 24) | (minor << 16) | (micro << 8) | (release_level << 4) | (release_serial) 163