Changeset 38aaacc2 in mainline for uspace/app/sbi/src/tdata_t.h
- Timestamp:
- 2010-04-23T21:41:10Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f4f866c
- Parents:
- 074444f
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/sbi/src/tdata_t.h
r074444f r38aaacc2 31 31 #ifndef TDATA_T_H_ 32 32 #define TDATA_T_H_ 33 34 #include "intmap_t.h" 33 35 34 36 /** Class of primitive type. */ … … 78 80 } tdata_array_t; 79 81 82 /** Function signature type. 83 * 84 * This is a part of functional type or delegate type. 85 */ 86 typedef struct { 87 /** Types of fixed arguments. */ 88 list_t arg_ti; /* of tdata_item_t */ 89 90 /** Type of variadic argument */ 91 struct tdata_item *varg_ti; 92 93 /** Return type */ 94 struct tdata_item *rtype; 95 } tdata_fun_sig_t; 96 97 /** Delegate type. */ 98 typedef struct { 99 /** Delegate definition or @c NULL if anonymous delegate */ 100 struct stree_deleg *deleg; 101 102 /** Delegate signature type */ 103 tdata_fun_sig_t *tsig; 104 } tdata_deleg_t; 105 80 106 /** Functional type. */ 81 107 typedef struct { 82 /** 83 * Function definition. We'll leave expansion to the call operation. 84 */ 85 struct stree_fun *fun; 108 /** Delegate definition or @c NULL if anonymous delegate */ 109 struct stree_deleg *deleg; 110 111 /** Function signature type */ 112 tdata_fun_sig_t *tsig; 86 113 } tdata_fun_t; 114 115 /** Type variable reference. */ 116 typedef struct { 117 /** Definition of type argument this variable is referencing. */ 118 struct stree_targ *targ; 119 } tdata_vref_t; 87 120 88 121 typedef enum { … … 93 126 /** Array type item */ 94 127 tic_tarray, 128 /** Delegate type item */ 129 tic_tdeleg, 95 130 /** Function type item */ 96 131 tic_tfun, 132 /** Type variable item */ 133 tic_tvref, 97 134 /** Special error-recovery type item */ 98 135 tic_ignore … … 107 144 tdata_object_t *tobject; 108 145 tdata_array_t *tarray; 146 tdata_deleg_t *tdeleg; 109 147 tdata_fun_t *tfun; 148 tdata_vref_t *tvref; 110 149 } u; 111 150 } tdata_item_t; 112 151 152 /** Type variable valuation (mapping of type argument names to values). */ 153 typedef struct { 154 /** Maps name SID to type item */ 155 intmap_t tvv; /* of tdata_item_t */ 156 } tdata_tvv_t; 157 113 158 #endif
Note:
See TracChangeset
for help on using the changeset viewer.