diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2016-11-07 20:16:14 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2016-11-07 20:16:14 -0800 |
commit | 4af3611c835e9b6acb979987568f46ba86ef52e7 (patch) | |
tree | cf43610885a99da0944b7adeebccefd3815427dd /parser.h | |
parent | 1964f9aba361ae2a62be6829c0a95d91e930903c (diff) | |
download | txr-4af3611c835e9b6acb979987568f46ba86ef52e7.tar.gz txr-4af3611c835e9b6acb979987568f46ba86ef52e7.tar.bz2 txr-4af3611c835e9b6acb979987568f46ba86ef52e7.zip |
New #; syntax for erasing following object.
* parser.c (parser_circ_ref): Don't generate the
circular reference if circular suppression is in
effect.
* parser.h (struct parser): New member, circ_suppress.
We use this for suppressing the generation of
circular #n# references in erased objects.
* parser.l (grammar): Scan #; producing HASH_SEMI token.
* parser.y (HASH_SEMI): New token.
(hash_semis_n_expr, hash_semis_i_expr, ignored_i_exprs,
ignored_n_exprs): New nonterminals, needed for supporting
the use of #; in front of top-level forms.
(spec): Use hash_semis_n_expr and hash_semis_i_expr
instead of n_expr and i_expr.
(r_expr): Support object erasure within nested syntax.
(yybadtoken): Handle H_SEMI token.
(parse): Initialize new circ_suppress member of parser
struct to zero.
* txr.1: Documented.
* genvim.txr (txr_ign_par, txr_ign_bkt, txr_ign_par_interior,
txr_ign_bkt_interior): New regions for colorizing erased
objects (partial support).
(txr_list, txr_bracket, txr_mlist, txr_mbrackets): Include
erased objects by including regions txr_ign_par and
txr_ign_bkt.
* txr.vim, tl.vim: Regenerated.
Diffstat (limited to 'parser.h')
-rw-r--r-- | parser.h | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -56,6 +56,7 @@ struct parser { val syntax_tree; val circ_ref_hash; cnum circ_count; + int circ_suppress; scanner_t *scanner; struct yy_token recent_tok; struct yy_token tok_pushback[4]; |