diff options
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 37 |
1 files changed, 37 insertions, 0 deletions
@@ -1,3 +1,40 @@ +2008-09-16 Sergey Poznyakoff <gray@gnu.org.ua> + + Implement functions with variable number of arguments and 'run' mode. + + * mfd/symtab.c (function_install): Take additional argument. + * mfd/lex.l: New tokens `vaptr', `...' and ARGX. + * mfd/snarf.m4 (MF_VASTRING): New define. + * mfd/gram.y: Handle functions with variable number of arguments, + $(expr), and vaptr() expressions. This raises shift/reduce + expectation to 29 conflicts. + (parmtype_function): Return dtype_string for + arguments from vararg list. + (FUNC_HIDDEN_ARGS): Return 1 if f->varargs is set. + (type_to_string): Handle pointer argument. + (function_call): Handle function->varargs. + (node_type): Handle node_type_argx, and node_type_vaptr. + (cast_arg_list): Handle variable number of arguments. + (cast_to): Handle dtype_pointer as dtype_number. + * mfd/drivers.c (argx, vaptr): New node types. + (code_type_call): Handle variable number of arguments. + (code_cast): Handle dtype_pointer as dtype_number. + * mfd/mailfromd.h (MAILFROMD_RUN): New define. + (struct argx_node): New type. + (struct node): Add argx_node. + (struct function): New member `varargs'. + (function_install): Add varargs. + (mailfromd_run): New prototype. + * mfd/prog.c (env_vaptr, env_get_reg): New functions. + (env_make_frame0): New function. + (instr_xmemstk): New instruction handler. + * mfd/opcodes (XMEMSTK): New opcode. + * mfd/prog.h (env_get_reg, env_vaptr): New protos. + * mfd/main.c (options): New option `--run'. + (main): Handle `run' mode. + * mfd/Makefile.am (M4_FILES): Add bi_getopt.m4. + * NEWS: Update. + 2008-09-15 Sergey Poznyakoff <gray@gnu.org.ua> * tests/alias.at: New file. |