📄 inout.c
字号:
decl1 = grok_chill_variantdefs (NULL_TREE, listbase, NULL_TREE); TREE_CHAIN (decl1) = NULL_TREE; result = build_chill_struct_type (decl1); pushdecl (intunion = build_decl (TYPE_DECL, get_identifier ("__tmp_IO_long"), result)); DECL_SOURCE_LINE (intunion) = 0; satisfy_decl (intunion, 0); decl1 = build_decl (FIELD_DECL, get_identifier ("ptr"), ptr_type_node); listbase = decl1; decl2 = build_decl (FIELD_DECL, get_identifier ("lower"), TREE_TYPE (intunion)); TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_decl (FIELD_DECL, get_identifier ("upper"), TREE_TYPE (intunion)); TREE_CHAIN (decl1) = decl2; TREE_CHAIN (decl2) = NULL_TREE; result = build_chill_struct_type (listbase); pushdecl (forintrange = build_decl (TYPE_DECL, get_identifier ("__tmp_IO_intrange"), result)); DECL_SOURCE_LINE (forintrange) = 0; satisfy_decl (forintrange, 0); /* build structure for bool range */ decl1 = build_decl (FIELD_DECL, get_identifier ("ptr"), ptr_type_node); DECL_INITIAL (decl1) = NULL_TREE; listbase = decl1; decl2 = build_decl (FIELD_DECL, get_identifier ("lower"), ulong_type); DECL_INITIAL (decl2) = NULL_TREE; TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_decl (FIELD_DECL, get_identifier ("upper"), ulong_type); DECL_INITIAL (decl2) = NULL_TREE; TREE_CHAIN (decl1) = decl2; TREE_CHAIN (decl2) = NULL_TREE; result = build_chill_struct_type (listbase); pushdecl (forboolrange = build_decl (TYPE_DECL, get_identifier ("__tmp_RIO_boolrange"), result)); DECL_SOURCE_LINE (forboolrange) = 0; satisfy_decl (forboolrange, 0); /* build type for reading a set */ decl1 = build_decl (FIELD_DECL, get_identifier ("ptr"), ptr_type_node); DECL_INITIAL (decl1) = NULL_TREE; listbase = decl1; decl2 = build_decl (FIELD_DECL, get_identifier ("length"), long_type); DECL_INITIAL (decl2) = NULL_TREE; TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_decl (FIELD_DECL, get_identifier ("name_table"), build_pointer_type (TREE_TYPE (enum_table_type))); DECL_INITIAL (decl2) = NULL_TREE; TREE_CHAIN (decl1) = decl2; TREE_CHAIN (decl2) = NULL_TREE; result = build_chill_struct_type (listbase); pushdecl (forset_R = build_decl (TYPE_DECL, get_identifier ("__tmp_RIO_set"), result)); DECL_SOURCE_LINE (forset_R) = 0; satisfy_decl (forset_R, 0); /* build type for setrange */ decl1 = build_decl (FIELD_DECL, get_identifier ("ptr"), ptr_type_node); DECL_INITIAL (decl1) = NULL_TREE; listbase = decl1; decl2 = build_decl (FIELD_DECL, get_identifier ("length"), long_type); DECL_INITIAL (decl2) = NULL_TREE; TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_decl (FIELD_DECL, get_identifier ("name_table"), build_pointer_type (TREE_TYPE (enum_table_type))); DECL_INITIAL (decl2) = NULL_TREE; TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_decl (FIELD_DECL, get_identifier ("lower"), long_type); DECL_INITIAL (decl2) = NULL_TREE; TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_decl (FIELD_DECL, get_identifier ("upper"), long_type); DECL_INITIAL (decl2) = NULL_TREE; TREE_CHAIN (decl1) = decl2; TREE_CHAIN (decl2) = NULL_TREE; result = build_chill_struct_type (listbase); pushdecl (forsetrange = build_decl (TYPE_DECL, get_identifier ("__tmp_RIO_setrange"), result)); DECL_SOURCE_LINE (forsetrange) = 0; satisfy_decl (forsetrange, 0); /* build structure for character string */ decl1 = build_decl (FIELD_DECL, get_identifier ("string"), build_pointer_type (char_type_node)); DECL_INITIAL (decl1) = NULL_TREE; listbase = decl1; decl2 = build_decl (FIELD_DECL, get_identifier ("string_length"), ulong_type); DECL_INITIAL (decl2) = NULL_TREE; TREE_CHAIN (decl1) = decl2; decl1 = decl2; TREE_CHAIN (decl2) = NULL_TREE; result = build_chill_struct_type (listbase); pushdecl (forcharstring = build_decl (TYPE_DECL, get_identifier ("__tmp_IO_forcharstring"), result)); DECL_SOURCE_LINE (forcharstring) = 0; satisfy_decl (forcharstring, 0); /* build the union */ decl1 = build_tree_list (NULL_TREE, build_decl (FIELD_DECL, get_identifier ("__valbyte"), signed_char_type_node)); listbase = decl1; decl2 = build_tree_list (NULL_TREE, build_decl (FIELD_DECL, get_identifier ("__valubyte"), unsigned_char_type_node)); TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_tree_list (NULL_TREE, build_decl (FIELD_DECL, get_identifier ("__valint"), chill_integer_type_node)); TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_tree_list (NULL_TREE, build_decl (FIELD_DECL, get_identifier ("__valuint"), chill_unsigned_type_node)); TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_tree_list (NULL_TREE, build_decl (FIELD_DECL, get_identifier ("__vallong"), long_type)); TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_tree_list (NULL_TREE, build_decl (FIELD_DECL, get_identifier ("__valulong"), ulong_type)); TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_tree_list (NULL_TREE, build_decl (FIELD_DECL, get_identifier ("__locint"), ptr_type_node)); TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_tree_list (NULL_TREE, build_decl (FIELD_DECL, get_identifier ("__locintrange"), TREE_TYPE (forintrange))); TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_tree_list (NULL_TREE, build_decl (FIELD_DECL, get_identifier ("__valbool"), boolean_type_node)); TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_tree_list (NULL_TREE, build_decl (FIELD_DECL, get_identifier ("__locbool"), build_pointer_type (boolean_type_node))); TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_tree_list (NULL_TREE, build_decl (FIELD_DECL, get_identifier ("__locboolrange"), TREE_TYPE (forboolrange))); TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_tree_list (NULL_TREE, build_decl (FIELD_DECL, get_identifier ("__valset"), TREE_TYPE (forset_W))); TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_tree_list (NULL_TREE, build_decl (FIELD_DECL, get_identifier ("__locset"), TREE_TYPE (forset_R))); TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_tree_list (NULL_TREE, build_decl (FIELD_DECL, get_identifier ("__locsetrange"), TREE_TYPE (forsetrange))); TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_tree_list (NULL_TREE, build_decl (FIELD_DECL, get_identifier ("__valchar"), char_type_node)); TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_tree_list (NULL_TREE, build_decl (FIELD_DECL, get_identifier ("__locchar"), build_pointer_type (char_type_node))); TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_tree_list (NULL_TREE, build_decl (FIELD_DECL, get_identifier ("__loccharrange"), TREE_TYPE (forcharrange))); TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_tree_list (NULL_TREE, build_decl (FIELD_DECL, get_identifier ("__loccharstring"), TREE_TYPE (forcharstring))); TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_tree_list (NULL_TREE, build_decl (FIELD_DECL, get_identifier ("__valreal"), float_type_node)); TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_tree_list (NULL_TREE, build_decl (FIELD_DECL, get_identifier ("__locreal"), build_pointer_type (float_type_node))); TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_tree_list (NULL_TREE, build_decl (FIELD_DECL, get_identifier ("__vallongreal"), double_type_node)); TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_tree_list (NULL_TREE, build_decl (FIELD_DECL, get_identifier ("__loclongreal"), build_pointer_type (double_type_node))); TREE_CHAIN (decl1) = decl2; decl1 = decl2;#if 0 decl2 = build_tree_list (NULL_TREE, build_decl (FIELD_DECL, get_identifier ("__forpointer"), ptr_type_node)); TREE_CHAIN (decl1) = decl2; decl1 = decl2;#endif TREE_CHAIN (decl2) = NULL_TREE; decl1 = grok_chill_variantdefs (NULL_TREE, listbase, NULL_TREE); TREE_CHAIN (decl1) = NULL_TREE; result = build_chill_struct_type (decl1); pushdecl (union_type = build_decl (TYPE_DECL, get_identifier ("__tmp_WIO_union"), result)); DECL_SOURCE_LINE (union_type) = 0; satisfy_decl (union_type, 0); /* now build the final structure */ decl1 = build_decl (FIELD_DECL, get_identifier ("__t"), TREE_TYPE (union_type)); DECL_INITIAL (decl1) = NULL_TREE; listbase = decl1; decl2 = build_decl (FIELD_DECL, get_identifier ("__descr"), long_type); TREE_CHAIN (decl1) = decl2; TREE_CHAIN (decl2) = NULL_TREE; result = build_chill_struct_type (listbase); pushdecl (chill_io_list_type = build_decl (TYPE_DECL, get_identifier ("__tmp_IO_list"), result)); DECL_SOURCE_LINE (chill_io_list_type) = 0; satisfy_decl (chill_io_list_type, 0);}/* build the ASSOCIATION, ACCESS and TEXT mode types */static voidbuild_io_types (){ tree listbase, decl1, decl2, result, association; tree acc, txt, tloc; tree enum1, tmp; /* the association mode */ listbase = build_decl (FIELD_DECL, get_identifier ("flags"), long_unsigned_type_node); DECL_INITIAL (listbase) = NULL_TREE; decl1 = listbase; decl2 = build_decl (FIELD_DECL, get_identifier ("pathname"), ptr_type_node); DECL_INITIAL (decl2) = NULL_TREE; TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_decl (FIELD_DECL, get_identifier ("access"), ptr_type_node); DECL_INITIAL (decl2) = NULL_TREE; TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_decl (FIELD_DECL, get_identifier ("handle"), integer_type_node); DECL_INITIAL (decl2) = NULL_TREE; TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_decl (FIELD_DECL, get_identifier ("bufptr"), ptr_type_node); DECL_INITIAL (decl2) = NULL_TREE; TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_decl (FIELD_DECL, get_identifier ("syserrno"), long_integer_type_node); DECL_INITIAL (decl2) = NULL_TREE; TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_decl (FIELD_DECL, get_identifier ("usage"), char_type_node); DECL_INITIAL (decl2) = NULL_TREE; TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_decl (FIELD_DECL, get_identifier ("ctl_pre"), char_type_node); DECL_INITIAL (decl2) = NULL_TREE; TREE_CHAIN (decl1) = decl2; decl1 = decl2; decl2 = build_decl (FIELD_DECL, get_identifier ("ctl_post"), char_type_node); DECL_INITIAL (decl2) = NULL_TREE; TREE_CHAIN (decl1) = decl2; TREE_CHAIN (decl2) = NULL_TREE; result = build_chill_struct_type (listbase); pushdecl (association = build_decl (TYPE_DECL, ridpointers[(int)RID_ASSOCIATION], result)); DECL_SOURCE_LINE (association) = 0; satisfy_decl (association, 0); association_type_node = TREE_TYPE (association); TYPE_NAME (association_type_node) = association; CH_NOVELTY (association_type_node) = association; CH_TYPE_NONVALUE_P(association_type_node) = 1; CH_TYPE_NONVALUE_P(association) = 1; /* initialiser for association type */ tmp = convert (char_type_node, integer_zero_node); association_init_value = build_nt (CONSTRUCTOR, NULL_TREE, tree_cons (NULL_TREE, integer_zero_node, /* flags */ tree_cons (NULL_TREE, null_pointer_node, /* pathname */ tree_cons (NULL_TREE, null_pointer_node, /* access */ tree_cons (NULL_TREE, integer_minus_one_node, /* handle */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -