Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/sbi/src/tdata_t.h

    r38aaacc2 r074444f  
    3131#ifndef TDATA_T_H_
    3232#define TDATA_T_H_
    33 
    34 #include "intmap_t.h"
    3533
    3634/** Class of primitive type. */
     
    8078} tdata_array_t;
    8179
    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 
    10680/** Functional type. */
    10781typedef struct {
    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;
     82        /**
     83         * Function definition. We'll leave expansion to the call operation.
     84         */
     85        struct stree_fun *fun;
    11386} 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;
    12087
    12188typedef enum {
     
    12693        /** Array type item */
    12794        tic_tarray,
    128         /** Delegate type item */
    129         tic_tdeleg,
    13095        /** Function type item */
    13196        tic_tfun,
    132         /** Type variable item */
    133         tic_tvref,
    13497        /** Special error-recovery type item */
    13598        tic_ignore
     
    144107                tdata_object_t *tobject;
    145108                tdata_array_t *tarray;
    146                 tdata_deleg_t *tdeleg;
    147109                tdata_fun_t *tfun;
    148                 tdata_vref_t *tvref;
    149110        } u;
    150111} tdata_item_t;
    151112
    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 
    158113#endif
Note: See TracChangeset for help on using the changeset viewer.