Lines Matching +full:mode +full:- +full:recovery

1 -- $Id: README.BTYACC,v 1.2 2014/04/22 08:18:57 Tom.Shields Exp $
12 "YYREDUCEPOSNFUNCARG" & "YYCALLREDUCEPOSN") is replaced by a bison-compatible
16 replaced by a bison-compatible "%destructor" implementation.
19 & "yyerror_detailed()") is subsumed by the bison-compatible "yyerror()"
20 implementation, as modified by the %parse-param and %locations directives.
25 -------------------------------------------------------------------------------
26 BTYACC -- backtracking yacc
52 -------------------
59 - text position computation and propagation,
60 - industrial-strength error processing and recovery.
64 text position of tokens and non-terminals.
69 - debuggers that show actual source of the debugged program,
70 - source-to-source translators that want
77 parsers and source-to-source translators.
79 In standard Yaccs every token and every non-terminal
81 In this new version every token and every non-terminal
83 YYPOSN is a user-defined type that can be anything and
85 token or non-terminal.
96 every token and non-terminal.
123 - ret
129 - term_posns
130 Array of the right-hand side rule components
134 - term_vals
135 Array of the right-hand side (RHS) rule components
138 - term_no
143 - stk_pos
146 - yychar
150 - yyposn
154 - extra
155 User-defined extra argument passed to ReducePosn.
158 the right-hand side rule components and either
165 Extra user-defined argument passed to
172 and non-terminals that are discarded and deleted as
175 In the previous versions the discarded token and non-terminal
182 non-terminals.
188 User-defined function that is called by BtYacc
189 to delete semantic value of the token or non-terminal.
191 The user-defined function must have the prototype:
200 User-defined function that is called by BtYacc
201 to delete text position of the token or non-terminal.
203 The user-defined function must have the prototype:
241 Since C is (in a sense) subset of C++, your C-based
245 ----------------------
247 Matthias Meixner <meixner@mes.th-darmstadt.de> fixed a bug:
254 -------------------
262 - Introduce modularity into a grammar by breaking it
266 - Have several versions of the same grammar
269 - To include automatically generated grammar fragment.
275 %define <var-name>
276 Define preprocessor variable named <var-name>.
278 %ifdef <var-name>
279 If preprocessor variable named <var-name>
285 Only one nesting level of %ifdef-%endif is allowed.
287 %include <file-name>
288 Process contents of the file named <file-name>.
289 If <file-name> is a relative name, it is looked up
295 -------------------
299 ** Changed 16-bit short numbers to 32-bit int numbers in
303 You need to have 32-bit integer to index table bigger than
304 32768 elements, 16-bit integer is not enough.
306 The original BtYacc just generated non-working tables
311 ** Make error recovery work correctly when error happens
314 recovery while in nested conflict.
317 (conflict that happens while trial-processing another
318 conflict), it leads btyacc into NP-complete searching of
322 If no YYVALID is found on the tree, then error recovery
323 takes over. The problem with this is that error recovery
332 error recovery, we restore state that existed on the
340 while processing in trial mode for another conflict), we
344 Since we mostly anticipate only 2-level nested conflicts
346 internal conflict. Therefore, in 1-level conflict
348 in 2-level conflict it is a no-op and the other YYVALID
369 shift-reduce or reduce-reduce error in the parse table, it
371 stream state), and goes into trial parse mode. It then
378 point where it first entered trial parse mode, and
382 Actions in btyacc come in two flavors -- {}-actions, which
383 are only executed when not in trial mode, and []-actions
384 which are executed regardless of mode. There are also
386 enclosed in "()") and act like []-actions.
394 typedef-name or not and returns a special token. With
438 public domain C++ yacc grammar, or the yacc-based grammar
452 the backtracking state after seeing a ';' or '}' -- there
459 non-terminals, which is what they end up being in a
462 embedded semantic actions and $0, $-1, ... in normal yacc.
468 attributes) to every use of a non-terminal.
471 potential reduce-reduce conflicts arising from
491 { $$ = $<t1>-1; }
492 | lhs [ $<t1>$ = $-1; ] [ $<t2>$ = $<t2>0; ] stuff
502 Btyacc supports the -S flag to use a different parser
513 successful parse, and -1 for an unrecoverable parse error.
517 ----------------------------------
520 The -r option has been implemented. The -r option tells
521 Yacc to put the read-only tables in y.tab.c and the code and
525 The -l and -t options have been implemented. The -l
527 it produces. The -t option causes debugging code to be
530 The code for error recovery has been changed to
532 be differences in the way error recovery works because AT&T
541 The keywords are now case-insensitive. For example,
548 Line-end comments, as in BCPL, are permitted. Line-end
549 comments begin with // and end at the next end-of-line.
550 Line-end comments are permitted in C code; they are converted
563 next end-of-line, whichever comes first. The declaration
575 ---------------
603 -----------