pike.git / src / language.y

version» Context lines:

pike.git/src/language.y:389:    };      arguments: /* empty */ optional_comma { $$=0; }    | arguments2 optional_comma { $$=$1; }    ;      arguments2: new_arg_name { $$ = 1; }    | arguments2 ',' new_arg_name { $$ = $1 + 1; }    ;    -  +    modifier: F_NO_MASK { $$ = ID_NOMASK; }    | F_STATIC { $$ = ID_STATIC; }    | F_PRIVATE { $$ = ID_PRIVATE; }    | F_PUBLIC { $$ = ID_PUBLIC; }    | F_VARARGS { $$ = ID_VARARGS; }    | F_PROTECTED { $$ = ID_PROTECTED; }    | F_INLINE { $$ = ID_INLINE; }    ;      modifiers: modifier_list { $$=current_modifiers=$1; }
pike.git/src/language.y:434:   type3: F_INT_ID { push_type(T_INT); }    | F_FLOAT_ID { push_type(T_FLOAT); }    | F_STRING_ID { push_type(T_STRING); }    | F_OBJECT_ID { push_type(T_OBJECT); }    | F_PROGRAM_ID { push_type(T_PROGRAM); }    | F_VOID_ID { push_type(T_VOID); }    | F_MIXED_ID { push_type(T_MIXED); }    | 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 ')'    | { push_type(T_MIXED); }    ;      opt_mapping_type: '('    {    type_stack_mark();    type_stack_mark();