SCM Repository
Annotation of /sml/branches/SMLNJ/src/ml-yacc/examples/pascal/pascal.grm
Parent Directory
|
Revision Log
Revision 249 - (view) (download)
1 : | monnier | 249 | %% |
2 : | |||
3 : | %name Pascal | ||
4 : | %term | ||
5 : | YAND | YARRAY | YBEGIN | YCASE | | ||
6 : | YCONST | YDIV | YDO | YDOTDOT | | ||
7 : | YTO | YELSE | YEND | YFILE | | ||
8 : | YFOR | YFORWARD | YPROCEDURE | YGOTO | | ||
9 : | YID | YIF | YIN | YINT | | ||
10 : | YLABEL | YMOD | YNOT | YNUMB | | ||
11 : | YOF | YOR | YPACKED | YNIL | | ||
12 : | YFUNCTION | YPROG | YRECORD | YREPEAT | | ||
13 : | YSET | YSTRING | YTHEN | YDOWNTO | | ||
14 : | YTYPE | YUNTIL | YVAR | YWHILE | | ||
15 : | YWITH | YBINT | YOCT | YHEX | | ||
16 : | YCASELAB | YILLCH | YEXTERN | | ||
17 : | YDOT | YLPAR | YRPAR | YSEMI | YCOMMA | YCOLON | YCARET | YLBRA | | ||
18 : | YRBRA | YTILDE | | ||
19 : | YLESS | YEQUAL | YGREATER | ||
20 : | | YPLUS | YMINUS | YBAR | ||
21 : | | UNARYSIGN | ||
22 : | | YSTAR | YSLASH | YAMP | ||
23 : | | EOF | ||
24 : | |||
25 : | %eop EOF | ||
26 : | %pos int | ||
27 : | %pure | ||
28 : | |||
29 : | %nonassoc YLESS YEQUAL YGREATER YIN | ||
30 : | %left YPLUS YMINUS YOR YBAR | ||
31 : | %left UNARYSIGN | ||
32 : | %left YSTAR YSLASH YDIV YMOD YAND YAMP | ||
33 : | %left YNOT | ||
34 : | |||
35 : | %nonterm goal | prog_hedr | block | decls | decl | labels | label_decl | | ||
36 : | const_decl | type_decl | var_decl | proc_decl | pheadres | phead | | ||
37 : | porf | params | param | ftype | param_list | const | number | const_list | | ||
38 : | type' | simple_type | struct_type | simple_type_list | field_list | | ||
39 : | fixed_part | field | variant_part | variant_list | variant | stat_list | | ||
40 : | stat_lsth | cstat_list | cstat | stat | assign | expr | element_list | | ||
41 : | element | variable | qual_var | wexpr | octhex | expr_list | wexpr_list | | ||
42 : | relop | addop | divop | negop | var_list | id_list | const_id | type_id | | ||
43 : | var_id | array_id | ptr_id | record_id | field_id | func_id | ||
44 : | | begin | ||
45 : | |||
46 : | %keyword | ||
47 : | YAND YARRAY YBEGIN YCASE | ||
48 : | YCONST YDIV YDO | ||
49 : | YTO YELSE YEND YFILE | ||
50 : | YFOR YFORWARD YPROCEDURE YGOTO | ||
51 : | YIF YIN | ||
52 : | YLABEL YMOD YNOT | ||
53 : | YOF YOR YPACKED YNIL | ||
54 : | YFUNCTION YPROG YRECORD YREPEAT | ||
55 : | YSET YSTRING YTHEN YDOWNTO | ||
56 : | YTYPE YUNTIL YVAR YWHILE | ||
57 : | YWITH YOCT YHEX | ||
58 : | YEXTERN YAMP | ||
59 : | |||
60 : | %prefer YID YSEMI YCOMMA YLBRA | ||
61 : | |||
62 : | %subst YCOMMA for YSEMI | YSEMI for YCOMMA | ||
63 : | |||
64 : | %% | ||
65 : | begin: goal () | ||
66 : | goal: prog_hedr decls block YDOT () | ||
67 : | | decls () | ||
68 : | prog_hedr: YPROG YID YLPAR id_list YRPAR YSEMI () | ||
69 : | | YPROG YID YSEMI () | ||
70 : | block: YBEGIN stat_list YEND () | ||
71 : | decls: decls decl () | ||
72 : | | () | ||
73 : | decl: labels () | ||
74 : | | const_decl () | ||
75 : | | type_decl () | ||
76 : | | var_decl () | ||
77 : | | proc_decl () | ||
78 : | labels: YLABEL label_decl YSEMI () | ||
79 : | label_decl: YINT () | ||
80 : | | label_decl YCOMMA YINT () | ||
81 : | const_decl: YCONST YID YEQUAL const YSEMI () | ||
82 : | | const_decl YID YEQUAL const YSEMI () | ||
83 : | | YCONST YID YEQUAL YID YSEMI () | ||
84 : | | const_decl YID YEQUAL YID YSEMI () | ||
85 : | type_decl: YTYPE YID YEQUAL type' YSEMI () | ||
86 : | | type_decl YID YEQUAL type' YSEMI () | ||
87 : | var_decl: YVAR id_list YCOLON type' YSEMI () | ||
88 : | | var_decl id_list YCOLON type' YSEMI () | ||
89 : | proc_decl: phead YFORWARD YSEMI () | ||
90 : | | phead YEXTERN YSEMI () | ||
91 : | | pheadres decls block YSEMI () | ||
92 : | pheadres: phead () | ||
93 : | phead: porf YID params ftype YSEMI () | ||
94 : | porf: YPROCEDURE () | ||
95 : | | YFUNCTION () | ||
96 : | params: YLPAR param_list YRPAR () | ||
97 : | | () | ||
98 : | param: id_list YCOLON type' () | ||
99 : | | YVAR id_list YCOLON type' () | ||
100 : | | YFUNCTION id_list params ftype () | ||
101 : | | YPROCEDURE id_list params ftype () | ||
102 : | ftype: YCOLON type' () | ||
103 : | | () | ||
104 : | param_list: param () | ||
105 : | | param_list YSEMI param () | ||
106 : | const: YSTRING () | ||
107 : | | number () | ||
108 : | | YPLUS number () | ||
109 : | | YMINUS number () | ||
110 : | | YPLUS YID () | ||
111 : | | YMINUS YID () | ||
112 : | number: YINT () | ||
113 : | | YBINT () | ||
114 : | | YNUMB () | ||
115 : | const_list: const () | ||
116 : | | const_list YCOMMA const () | ||
117 : | | YID () | ||
118 : | | const_list YCOMMA YID () | ||
119 : | type': simple_type () | ||
120 : | | YCARET YID () | ||
121 : | | struct_type () | ||
122 : | | YPACKED struct_type () | ||
123 : | simple_type: type_id () | ||
124 : | | YLPAR id_list YRPAR () | ||
125 : | | const YDOTDOT const () | ||
126 : | | YID YDOTDOT const () | ||
127 : | | const YDOTDOT YID () | ||
128 : | | YID YDOTDOT YID () | ||
129 : | struct_type: YARRAY YLBRA simple_type_list YRBRA YOF type' () | ||
130 : | | YFILE YOF type' () | ||
131 : | | YSET YOF simple_type () | ||
132 : | | YRECORD field_list YEND () | ||
133 : | simple_type_list: simple_type () | ||
134 : | | simple_type_list YCOMMA simple_type () | ||
135 : | field_list: fixed_part variant_part () | ||
136 : | fixed_part: field () | ||
137 : | | fixed_part YSEMI field () | ||
138 : | field: () | ||
139 : | | id_list YCOLON type' () | ||
140 : | variant_part: () | ||
141 : | | YCASE type_id YOF variant_list () | ||
142 : | | YCASE YID YCOLON type_id YOF variant_list () | ||
143 : | variant_list: variant () | ||
144 : | | variant_list YSEMI variant () | ||
145 : | variant: () | ||
146 : | | const_list YCOLON YLPAR field_list YRPAR () | ||
147 : | stat_list: stat () | ||
148 : | | stat_lsth stat () | ||
149 : | stat_lsth: stat_list YSEMI () | ||
150 : | cstat_list: cstat () | ||
151 : | | cstat_list YSEMI cstat () | ||
152 : | cstat: const_list YCOLON stat () | ||
153 : | | YCASELAB stat () | ||
154 : | | () | ||
155 : | stat: () | ||
156 : | | YINT YCOLON stat () | ||
157 : | | YID () | ||
158 : | | YID YLPAR wexpr_list YRPAR () | ||
159 : | | assign () | ||
160 : | | YBEGIN stat_list YEND () | ||
161 : | | YCASE expr YOF cstat_list YEND () | ||
162 : | | YWITH var_list YDO stat () | ||
163 : | | YWHILE expr YDO stat () | ||
164 : | | YREPEAT stat_list YUNTIL expr () | ||
165 : | | YFOR assign YTO expr YDO stat () | ||
166 : | | YFOR assign YDOWNTO expr YDO stat () | ||
167 : | | YGOTO YINT () | ||
168 : | | YIF expr YTHEN stat () | ||
169 : | | YIF expr YTHEN stat YELSE stat () | ||
170 : | assign: variable YCOLON YEQUAL expr () | ||
171 : | | YID YCOLON YEQUAL expr () | ||
172 : | expr: expr relop expr %prec YLESS () | ||
173 : | | YPLUS expr %prec UNARYSIGN () | ||
174 : | | YMINUS expr %prec UNARYSIGN () | ||
175 : | | expr addop expr %prec YPLUS () | ||
176 : | | expr divop expr %prec YSTAR () | ||
177 : | | YNIL () | ||
178 : | | YSTRING () | ||
179 : | | YINT () | ||
180 : | | YBINT () | ||
181 : | | YNUMB () | ||
182 : | | variable () | ||
183 : | | YID () | ||
184 : | | YID YLPAR wexpr_list YRPAR () | ||
185 : | | YLPAR expr YRPAR () | ||
186 : | | negop expr %prec YNOT () | ||
187 : | | YLBRA element_list YRBRA () | ||
188 : | | YLBRA YRBRA () | ||
189 : | element_list: element () | ||
190 : | | element_list YCOMMA element () | ||
191 : | element: expr () | ||
192 : | | expr YDOTDOT expr () | ||
193 : | variable: qual_var () | ||
194 : | qual_var: YID YLBRA expr_list YRBRA () | ||
195 : | | qual_var YLBRA expr_list YRBRA () | ||
196 : | | YID YDOT field_id () | ||
197 : | | qual_var YDOT field_id () | ||
198 : | | YID YCARET () | ||
199 : | | qual_var YCARET () | ||
200 : | wexpr: expr () | ||
201 : | | expr YCOLON expr () | ||
202 : | | expr YCOLON expr YCOLON expr () | ||
203 : | | expr octhex () | ||
204 : | | expr YCOLON expr octhex () | ||
205 : | octhex: YOCT () | ||
206 : | | YHEX () | ||
207 : | expr_list: expr () | ||
208 : | | expr_list YCOMMA expr () | ||
209 : | wexpr_list: wexpr () | ||
210 : | | wexpr_list YCOMMA wexpr () | ||
211 : | relop: YEQUAL () | ||
212 : | | YLESS () | ||
213 : | | YGREATER () | ||
214 : | | YLESS YGREATER () | ||
215 : | | YLESS YEQUAL () | ||
216 : | | YGREATER YEQUAL () | ||
217 : | | YIN () | ||
218 : | addop: YPLUS () | ||
219 : | | YMINUS () | ||
220 : | | YOR () | ||
221 : | | YBAR () | ||
222 : | divop: YSTAR () | ||
223 : | | YSLASH () | ||
224 : | | YDIV () | ||
225 : | | YMOD () | ||
226 : | | YAND () | ||
227 : | | YAMP () | ||
228 : | negop: YNOT () | ||
229 : | | YTILDE () | ||
230 : | var_list: variable () | ||
231 : | | var_list YCOMMA variable () | ||
232 : | | YID () | ||
233 : | | var_list YCOMMA YID () | ||
234 : | id_list: YID () | ||
235 : | | id_list YCOMMA YID () | ||
236 : | const_id: YID () | ||
237 : | type_id: YID () | ||
238 : | var_id: YID () | ||
239 : | array_id: YID () | ||
240 : | ptr_id: YID () | ||
241 : | record_id: YID () | ||
242 : | field_id: YID () | ||
243 : | func_id: YID () |
root@smlnj-gforge.cs.uchicago.edu | ViewVC Help |
Powered by ViewVC 1.0.0 |