lift single lib statement restriction
[m6w6/ext-psi] / src / types / impl_def_val.h
index 07c02cd1b92db1ac0c6acaef7d70c8c692f0eaf1..e597745d51106caae42575c27bea0809423c69ee 100644 (file)
 #define PSI_TYPES_IMPL_DEF_VAL_H
 
 #include "token.h"
+#include "types/impl_val.h"
 
-typedef struct impl_def_val {
-       token_t type;
-       char *text;
-} impl_def_val;
+struct psi_data;
+struct psi_impl_type;
 
-impl_def_val *init_impl_def_val(token_t t, const char *text);
-void free_impl_def_val(impl_def_val *def);
-void dump_impl_def_val(int fd, impl_def_val *val);
+struct psi_impl_def_val {
+       struct psi_token *token;
+       token_t type;
+       union {
+               struct psi_num_exp *num;
+       } data;
+       impl_val ival;
+};
+
+struct psi_impl_def_val *psi_impl_def_val_init(token_t t, void *data);
+void psi_impl_def_val_free(struct psi_impl_def_val **def_ptr);
+void psi_impl_def_val_dump(int fd, struct psi_impl_def_val *val);
+bool psi_impl_def_val_validate(struct psi_data *data, struct psi_impl_def_val *def,
+               struct psi_impl_type *cmp, struct psi_validate_scope *scope);
 
 #endif