diff --git a/src/language.yacc b/src/language.yacc index d0cb651ad46abc3fd46fe2df88572619ce1a4738..12134a862fab585cdcbd5d7d7cc1fa51957fd00c 100644 --- a/src/language.yacc +++ b/src/language.yacc @@ -111,6 +111,7 @@ %token F_REDEF %token F_EFUN_CALL %token F_ELSE +%token F_EXTERN %token F_FLOAT_ID %token F_FOR %token F_FUNCTION_ID @@ -185,7 +186,7 @@ /* This is the grammar definition of Pike. */ #include "global.h" -RCSID("$Id: language.yacc,v 1.155 1999/12/27 22:45:46 grubba Exp $"); +RCSID("$Id: language.yacc,v 1.156 1999/12/30 14:45:37 grubba Exp $"); #ifdef HAVE_MEMORY_H #include <memory.h> #endif @@ -876,6 +877,7 @@ arguments2: new_arg_name { $$ = 1; } modifier: F_NO_MASK { $$ = ID_NOMASK; } | F_FINAL_ID { $$ = ID_NOMASK; } | F_STATIC { $$ = ID_STATIC; } + | F_EXTERN { $$ = ID_EXTERN; } | F_OPTIONAL { $$ = ID_OPTIONAL; } | F_PRIVATE { $$ = ID_PRIVATE | ID_STATIC; } | F_LOCAL_ID { $$ = ID_INLINE; } @@ -888,6 +890,7 @@ magic_identifiers1: F_NO_MASK { $$ = "nomask"; } | F_FINAL_ID { $$ = "final"; } | F_STATIC { $$ = "static"; } + | F_EXTERN { $$ = "extern"; } | F_PRIVATE { $$ = "private"; } | F_LOCAL_ID { $$ = "local"; } | F_PUBLIC { $$ = "public"; } @@ -2495,6 +2498,8 @@ bad_expr_ident: { yyerror("optional is a reserved word."); } | F_STATIC { yyerror("static is a reserved word."); } + | F_EXTERN + { yyerror("extern is a reserved word."); } | F_FINAL_ID { yyerror("final is a reserved word.");} | F_DO