projects
/
m6w6
/
ext-psi
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
flush
[m6w6/ext-psi]
/
src
/
parser.h
diff --git
a/src/parser.h
b/src/parser.h
index 55f4f9d75f6d57067adacc2e8a43950530cc2dcd..e774e9ba7df15fb299beeff111a97bab99ed8d3f 100644
(file)
--- a/
src/parser.h
+++ b/
src/parser.h
@@
-262,16
+262,20
@@
static inline void free_decl_abi(decl_abi *abi) {
free(abi);
}
free(abi);
}
+typedef struct decl_callinfo {
+ void *sym;
+ void *info;
+ size_t argc;
+ void **args;
+ void *rval;
+} decl_callinfo;
+
typedef struct decl {
decl_abi *abi;
decl_arg *func;
decl_args *args;
struct impl *impl;
typedef struct decl {
decl_abi *abi;
decl_arg *func;
decl_args *args;
struct impl *impl;
- struct {
- void *sym;
- void *info;
- void **args;
- } call;
+ decl_callinfo call;
} decl;
static inline decl* init_decl(decl_abi *abi, decl_arg *func, decl_args *args) {
} decl;
static inline decl* init_decl(decl_abi *abi, decl_arg *func, decl_args *args) {
@@
-499,10
+503,18
@@
static inline void free_impl_arg(impl_arg *arg) {
free(arg);
}
free(arg);
}
+typedef struct impl_vararg {
+ impl_arg *name;
+ struct impl_args *args;
+ token_t *types;
+ impl_val *values;
+ void **free_list;
+} impl_vararg;
+
typedef struct impl_args {
impl_arg **args;
size_t count;
typedef struct impl_args {
impl_arg **args;
size_t count;
- impl_
arg *
vararg;
+ impl_
vararg
vararg;
} impl_args;
static inline impl_args *init_impl_args(impl_arg *arg) {
} impl_args;
static inline impl_args *init_impl_args(impl_arg *arg) {