mirror of
https://github.com/Stichting-MINIX-Research-Foundation/netbsd.git
synced 2025-09-12 08:36:05 -04:00
51 lines
869 B
Plaintext
51 lines
869 B
Plaintext
/* $NetBSD: inherit0.y,v 1.1.1.1 2015/01/03 22:58:23 christos Exp $ */
|
|
|
|
%{
|
|
extern void mksymbol(int t, int c, int id);
|
|
|
|
#ifdef YYBISON
|
|
#define YYLEX_DECL() yylex(void)
|
|
#define YYERROR_DECL() yyerror(const char *s)
|
|
extern int YYLEX_DECL();
|
|
extern void YYERROR_DECL();
|
|
#endif
|
|
%}
|
|
|
|
%token GLOBAL LOCAL
|
|
%token REAL INTEGER
|
|
%token NAME
|
|
|
|
%start declaration
|
|
|
|
%%
|
|
declaration: class type namelist
|
|
{ $$ = $3; }
|
|
| type locnamelist
|
|
{ $$ = $2; }
|
|
;
|
|
|
|
class : GLOBAL { $$ = 1; }
|
|
| LOCAL { $$ = 2; }
|
|
;
|
|
|
|
type : REAL { $$ = 1; }
|
|
| INTEGER { $$ = 2; }
|
|
;
|
|
|
|
namelist: namelist NAME
|
|
{ mksymbol($0, $-1, $2); }
|
|
| NAME
|
|
{ mksymbol($0, $-1, $1); }
|
|
;
|
|
|
|
locnamelist:
|
|
{ $$ = 2; } /* set up semantic stack for <class>: LOCAL */
|
|
{ $$ = $-1; } /* copy <type> to where <namelist> expects it */
|
|
namelist
|
|
{ $$ = $3; }
|
|
;
|
|
%%
|
|
|
|
extern int YYLEX_DECL();
|
|
extern void YYERROR_DECL();
|