Branch: Tag:

2016-01-15

2016-01-15 16:38:11 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Compiler: Got rid of simple_identifier_type.

There's no longer any reason to keep identifier types from
simple_type2, so simplify the grammar a bit.

282:   %type <n> soft_cast   %type <n> simple_type   %type <n> simple_type2 - %type <n> simple_identifier_type +    %type <n> real_string_constant   %type <n> real_string_or_identifier   %type <n> string_constant
1289:    }    ;    - /* Basic_type-prefixed expression. Value moved to parser value stack. */ - simple_type2: type + /* Basic_type-prefixed expression or an identifier type. +  * Value moved to parser value stack. +  */ + simple_type2: type2    {    struct pike_type *s = compiler_pop_type();    $$ = mktypenode(s);
1303:    }    ;    - /* Identifier type. Value moved to parser value stack. */ - simple_identifier_type: identifier_type -  { -  struct pike_type *s = compiler_pop_type(); -  $$ = mktypenode(s); - #ifdef PIKE_DEBUG -  if ($$->u.sval.u.type != s) { -  Pike_fatal("mktypenode(%p) created node with %p\n", s, $$->u.sval.u.type); -  } - #endif /* PIKE_DEBUG */ -  free_type(s); -  } -  ; -  +    /* Full type expression. Value on type stack.    * Typically used in contexts where there must be a type,    * and expressions are invalid.
3199:      comma_expr: comma_expr2    | simple_type2 local_name_list { $$=$2; free_node($1); } -  | simple_identifier_type local_name_list { $$=$2; free_node($1); } -  | simple_identifier_type local_function { $$=$2; free_node($1); } +     | simple_type2 local_function { $$=$2; free_node($1); }    ;