flush
[m6w6/ext-psi] / src / parser.h
index 683192b12967992b31d1054df83f577c6420c2d7..0f2b4a072e50fe92c1c5cc9f57d2dbb82f1ee3a8 100644 (file)
@@ -141,6 +141,7 @@ static inline decl_arg *init_decl_arg(decl_type *type, decl_var *var) {
        decl_arg *arg = calloc(1, sizeof(*arg));
        arg->type = type;
        arg->var = var;
+       var->arg = arg;
        return arg;
 }
 
@@ -331,12 +332,16 @@ static inline void free_decl_structs(decl_structs *ss) {
 typedef union impl_val {
        char cval;
        int8_t i8;
+       uint8_t u8;
        short sval;
        int16_t i16;
+       uint16_t u16;
        int ival;
        int32_t i32;
+       uint32_t u32;
        long lval;
        int64_t i64;
+       uint64_t u64;
        float fval;
        double dval;
        union {
@@ -613,6 +618,10 @@ static inline void free_set_func(set_func *func) {
 typedef struct set_value {
        set_func *func;
        decl_vars *vars;
+       struct {
+               struct set_value *set;
+               impl_val *val;
+       } outer;
        struct set_value **inner;
        size_t count;
 } set_value;