2 * ----------------------------------------------------------------------
21 %token <string * int * int> Code
28 %token Rbracket%token Eof
37 { { text_decls = $1; text_rules = $2; } }
40 declaration declarations
58 Lname Lparen formal_arguments Colon branches
68 | Lname comma_formal_arguments
71 comma_formal_arguments:
72 Comma Lname comma_formal_arguments
82 Alt branch alt_branches
90 | Dollar Code simple_branch
91 { { $3 with branch_early_code = $2 } }
94 symbol Dollar Code patterns Code opt_error_handler
95 { { branch_selector = $1;
96 branch_early_code = ("",0,0);
97 branch_binding_code = $3;
99 branch_result_code = $5;
100 branch_error_code = $6;
103 | symbol patterns Code opt_error_handler
104 { { branch_selector = $1;
105 branch_early_code = ("",0,0);
106 branch_binding_code = ("", 0, 0);
108 branch_result_code = $3;
109 branch_error_code = $4;
122 pat_modifier = Repetition;
127 pat_modifier = Option;
132 pat_modifier = Exact;
138 { U_symbol($3, Some $1) }
139 | Lname Colon Lname Lparen actual_arguments
140 { L_symbol($3, $5, Some $1) }
141 | Lname Colon Lbracket Lname Rbracket Lparen actual_arguments
142 { L_indirect($4, $7, Some $1) }
144 { U_symbol($1, None) }
145 | Lname Lparen actual_arguments
146 { L_symbol($1, $3, None) }
147 | Lbracket Lname Rbracket Lparen actual_arguments
148 { L_indirect($2, $5, None) }
154 | Lname comma_actual_arguments
157 comma_actual_arguments:
160 | Comma Lname comma_actual_arguments
171 (* ======================================================================
175 * Revision 1.1 2000/11/17 09:57:32 lpadovan
178 * Revision 1.4 2000/05/09 00:03:22 gerd
179 * Added [ ml_name ] symbols, where ml_name is an arbitrary
182 * Revision 1.3 2000/05/08 22:03:01 gerd
183 * It is now possible to have a $ {{ }} sequence right BEFORE
184 * the first token. This code is executed just after the first token
185 * has been recognized.
187 * Revision 1.2 2000/05/06 21:51:46 gerd
190 * Revision 1.1 2000/05/06 17:36:17 gerd