1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
--- rpcc/parse.yy.orig Sat Jan 27 03:43:23 2001
+++ rpcc/parse.yy Sun Dec 1 23:45:34 2002
@@ -1,4 +1,4 @@
-/* $Id: parse.yy,v 1.10 1999/05/14 00:16:01 dm Exp $ */
+/* $Id: parse.yy,v 1.11 2002/10/23 21:02:33 dm Exp $ */
/*
*
@@ -23,6 +23,7 @@
%{
#include "rpcc.h"
+#define YYSTYPE YYSTYPE
static int proc_compare (const void *, const void *);
static int vers_compare (const void *, const void *);
@@ -97,6 +98,7 @@
s->sconst->id = $2;
s->sconst->val = $4;
}
+ ;
def_enum: T_ENUM newid '{'
{
@@ -129,6 +131,7 @@
s->sunion->tagid = $6;
}
union_taglist '}' ';'
+ ;
def_program: T_PROGRAM newid '{'
{
@@ -143,6 +146,7 @@
qsort (s->sprogram->vers.base (), s->sprogram->vers.size (),
sizeof (rpc_vers), vers_compare);
}
+ ;
version_list: version_decl | version_list version_decl
;
@@ -224,15 +228,19 @@
struct_decl: declaration
{ symlist.back ().sstruct->decls.push_back ($1); }
+ ;
enum_taglist: enum_tag {}
| enum_taglist ',' enum_tag {}
+ ;
enum_tag: enum_cnstag
{ symlist.back ().senum->tags.push_back ($1); }
+ ;
enum_cnstag: newid '=' value { $$.id = $1; $$.val = $3; }
- | newid { $$.id = $1; };
+ | newid { $$.id = $1; }
+ ;
declaration: type T_ID ';'
{ $$.id = $2; $$.type = $1; $$.qual = rpc_decl::SCALAR; }
|