Branch: Tag:

1995-10-20

1995-10-20 08:43:12 by Fredrik Hübinette (Hubbe) <hubbe@hubbe.net>

committing

Rev: src/language.y:1.5
Rev: src/las.c:1.4
Rev: src/lex.c:1.4
Rev: src/lex.h:1.3
Rev: src/lpc_types.c:1.5
Rev: src/program.c:1.5
Rev: src/stralloc.c:1.4
Rev: src/svalue.h:1.3

396:    | arguments2 ',' new_arg_name { $$ = $1 + 1; }    ;    -  +    modifier: F_NO_MASK { $$ = ID_NOMASK; }    | F_STATIC { $$ = ID_STATIC; }    | F_PRIVATE { $$ = ID_PRIVATE; }
441:    | F_MAPPING_ID opt_mapping_type { push_type(T_MAPPING); }    | F_ARRAY_ID opt_array_type { push_type(T_ARRAY); }    | F_LIST_ID opt_array_type { push_type(T_LIST); } -  | F_FUNCTION_ID +  | F_FUNCTION_ID opt_function_type { push_type(T_FUNCTION); } +  ; +  + opt_function_type: '('    { -  push_type(T_TRUE); +  type_stack_mark(); +  type_stack_mark(); +  } +  function_type_list +  optional_dot_dot_dot +  ':' +  { +  if ($4) +  { +  push_type(T_MANY); +  type_stack_reverse(); +  }else{ +  type_stack_reverse(); +  push_type(T_MANY); +  push_type(T_VOID); +  } +  type_stack_mark(); +  } +  type ')' +  { +  type_stack_reverse(); +  type_stack_reverse(); +  } +  | {    push_type(T_MIXED); -  +  push_type(T_MIXED);    push_type(T_MANY); -  push_type(T_FUNCTION); +  }; +  + function_type_list: /* Empty */ optional_comma +  | function_type_list2 optional_comma +  ; +  + function_type_list2: type +  | function_type_list2 ',' +  { +  type_stack_reverse(); +  type_stack_mark();    } -  +  type    ;      opt_array_type: '(' type ')'