1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- #include<stdio.h>
- // #include "interpreter.h"
- parameter *make_parameter_name(char *);
- void append_parameter_name(char *, parameter *);
- parameter *make_parameter_value(statement *);
- void append_parameter_value(statement *, parameter *);
- parameter *add_parameter_value(statement *, parameter *);
- parameter *pack_value_parameter(GWARF_value);
- statement *pack_call_name(char *, statement *);
- parameter *make_parameter_name(char *name){
- parameter *tmp;
- tmp = malloc(sizeof(parameter)); // get an address for base var
- tmp->next = NULL;
- tmp->u.name = malloc(sizeof(name));
- strcpy(tmp->u.name, name);
- return tmp;
- }
- void append_parameter_name(char *name, parameter *parameter_base){
- parameter *tmp = parameter_base; // iter var
- while(1){
- if (tmp->next == NULL){ // the last
- break;
- }
- tmp = tmp->next; // get the next to iter
- }
- parameter *new_tmp = make_parameter_name(name);
- tmp->next = new_tmp;
- }
- // ---- parameter func[实参]
- parameter *make_parameter_value(statement *value){
- parameter *tmp;
- tmp = malloc(sizeof(parameter)); // get an address for base var
- tmp->next = NULL;
- tmp->u.value = value;
- return tmp;
- }
- void append_parameter_value(statement *value, parameter *parameter_base){
- parameter *tmp = parameter_base; // iter var
- while(1){
- if (tmp->next == NULL){ // the last
- break;
- }
- tmp = tmp->next; // get the next to iter
- }
- parameter *new_tmp = make_parameter_value(value);
- tmp->next = new_tmp;
- }
- parameter *add_parameter_value(statement *value, parameter *parameter_base){
- parameter *new_tmp = make_parameter_value(value);
- new_tmp->next = parameter_base;
- return new_tmp;
- }
- parameter *pack_value_parameter(GWARF_value value){ // 把value封装成参数
- parameter *tmp;
- tmp = malloc(sizeof(parameter)); // get an address for base var
- tmp->next = NULL;
- statement *statement_tmp = malloc(sizeof(statement));
- statement_tmp->type = base_value;
- statement_tmp->code.base_value.value = value;
- tmp->u.value = statement_tmp;
- return tmp;
- }
- statement *pack_call_name(char *name, statement *from){ // 快速生成call back函数的the_statment
- statement *tmp = make_statement();
- tmp->type = base_var;
- tmp->code.base_var.var_name = name;
- tmp->code.base_var.from = from;
- return tmp;
- }
|