From a9440d51fdf9286dc657b10368503aecb74eb19d Mon Sep 17 00:00:00 2001 From: "Arnold D. Robbins" Date: Fri, 4 Sep 2020 13:24:13 +0300 Subject: Make PROCINFO["identifiers"] smarter about arrays. --- ChangeLog | 6 ++++++ awkgram.c | 2 +- awkgram.y | 2 +- test/ChangeLog | 4 ++++ test/id.ok | 2 +- 5 files changed, 13 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index f59f2985..e5e1f367 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2020-09-04 Arnold D. Robbins + + * awkgram.y [GRAMMAR]: Install arrays as Node_var_array. Improves + PROCINFO["identifiers"]. Thanks to anoncoward@nym.hush.com + for the report. + 2020-08-25 Arnold D. Robbins * interpret.h (r_interpret): At Op_rule, check if in BEGINFILE. If so, diff --git a/awkgram.c b/awkgram.c index 13c43ffd..747c75e7 100644 --- a/awkgram.c +++ b/awkgram.c @@ -4425,7 +4425,7 @@ regular_print: { char *arr = yyvsp[-1]->lextok; - yyvsp[-1]->memory = variable(yyvsp[-1]->source_line, arr, Node_var_new); + yyvsp[-1]->memory = variable(yyvsp[-1]->source_line, arr, Node_var_array); yyvsp[-1]->opcode = Op_push_array; yyval = list_prepend(yyvsp[0], yyvsp[-1]); } diff --git a/awkgram.y b/awkgram.y index cfc12e78..72d79312 100644 --- a/awkgram.y +++ b/awkgram.y @@ -2147,7 +2147,7 @@ simple_variable { char *arr = $1->lextok; - $1->memory = variable($1->source_line, arr, Node_var_new); + $1->memory = variable($1->source_line, arr, Node_var_array); $1->opcode = Op_push_array; $$ = list_prepend($2, $1); } diff --git a/test/ChangeLog b/test/ChangeLog index 7b1184a6..e9199f85 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,3 +1,7 @@ +2020-09-04 Arnold D. Robbins + + * id.ok: Updated after code changes. + 2020-08-24 Arnold D. Robbins * mbstr1.ok, mbstr2.ok: Updated after code changes. diff --git a/test/id.ok b/test/id.ok index 79130657..ab4df74a 100644 --- a/test/id.ok +++ b/test/id.ok @@ -28,7 +28,7 @@ RT -> scalar SUBSEP -> scalar SYMTAB -> array TEXTDOMAIN -> scalar -an_array -> untyped +an_array -> array and -> builtin asort -> builtin asorti -> builtin -- cgit v1.2.3