summaryrefslogtreecommitdiffstats
path: root/src/gram.y
diff options
context:
space:
mode:
authormongo <mongo@iomega>2017-01-28 12:45:58 -0300
committermongo <mongo@iomega>2017-01-28 12:45:58 -0300
commit6056193ce452e2bc4640442cc05df45a90bfdd20 (patch)
treecd324dc7ba8579a0adfe7e0e74902979284ecb88 /src/gram.y
parent757b8e08c7aedf84fad95f6bb2e9354a9592bf64 (diff)
Changes when an ent is removed:
When one or more ents are removed by dr dc sk sh commands, is_deleted flag is set. That makes REF appears in formulas of ents that depend on the deleted ents. When one or more ents are removed by 'x' command, is_deleted flag is not set. That preserves references in other ents that depend on the deleted ents, returning zero as evaluation result.
Diffstat (limited to 'src/gram.y')
-rw-r--r--src/gram.y3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/gram.y b/src/gram.y
index 6529cb3..20b236d 100644
--- a/src/gram.y
+++ b/src/gram.y
@@ -347,6 +347,7 @@ token K_WHITE
token K_NUMITER
*/
%token K_ERR
+%token K_REF
%token K_LOCALE
%token K_SET8BIT
%token K_ASCII
@@ -841,6 +842,8 @@ term: var { $$ = new_var(O_VAR, $1); }
| '@' K_CHR '(' e ')' { $$ = new(CHR, $4, ENULL);}
| '@' K_ERR { $$ = new(ERR_, ENULL, ENULL); }
| K_ERR { $$ = new(ERR_, ENULL, ENULL); }
+ | '@' K_REF { $$ = new(REF_, ENULL, ENULL); }
+ | K_REF { $$ = new(REF_, ENULL, ENULL); }
/*
| '@' K_NUMITER { $$ = new(NUMITER, ENULL, ENULL);}
| '@' K_BLACK { $$ = new(BLACK, ENULL, ENULL); }