Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /sml/trunk/src/ml-yacc/examples/pascal/pascal.grm
ViewVC logotype

Annotation of /sml/trunk/src/ml-yacc/examples/pascal/pascal.grm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 651 - (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