1 |
commit: 6e084d90ad3e6dc14f503b6616b252467d968294 |
2 |
Author: Mu Qiao <qiaomuf <AT> gentoo <DOT> org> |
3 |
AuthorDate: Mon Apr 11 01:27:30 2011 +0000 |
4 |
Commit: Petteri Räty <betelgeuse <AT> gentoo <DOT> org> |
5 |
CommitDate: Mon Apr 11 01:39:01 2011 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/libbash.git;a=commit;h=6e084d90 |
7 |
|
8 |
Support indirect reference wrt bug #362285 |
9 |
|
10 |
--- |
11 |
bashast/bashast.g | 1 + |
12 |
bashast/gunit/param_main.gunit | 1 + |
13 |
2 files changed, 2 insertions(+), 0 deletions(-) |
14 |
|
15 |
diff --git a/bashast/bashast.g b/bashast/bashast.g |
16 |
index 210912c..d8dfc77 100644 |
17 |
--- a/bashast/bashast.g |
18 |
+++ b/bashast/bashast.g |
19 |
@@ -251,6 +251,7 @@ var_exp : var_name (USE_DEFAULT|USE_ALTERNATE|DISPLAY_ERROR|ASSIGN_DEFAULT)^ wor |
20 |
| var_name COLON wspace* LPAREN? os=arithmetic RPAREN? (COLON len=arithmetic)? -> ^(OFFSET var_name $os ^($len)?) |
21 |
| BANG^ var_name (TIMES|AT) |
22 |
| BANG var_name LSQUARE (op=TIMES|op=AT) RSQUARE -> ^(LIST_EXPAND var_name $op) |
23 |
+ | BANG var_name -> ^(VAR_REF var_name) |
24 |
| POUND^ var_name |
25 |
| var_name (POUND^|POUNDPOUND^) fname |
26 |
| var_name (PCT^|PCTPCT^) fname |
27 |
|
28 |
diff --git a/bashast/gunit/param_main.gunit b/bashast/gunit/param_main.gunit |
29 |
index 6668dd9..a865e16 100644 |
30 |
--- a/bashast/gunit/param_main.gunit |
31 |
+++ b/bashast/gunit/param_main.gunit |
32 |
@@ -43,6 +43,7 @@ var_ref: |
33 |
"$@" -> (VAR_REF @) |
34 |
"$*" -> (VAR_REF *) |
35 |
"${@}" -> (VAR_REF @) |
36 |
+"${!foo}" -> (VAR_REF (VAR_REF foo)) |
37 |
"${3}" -> (VAR_REF 3) |
38 |
"$?" -> (VAR_REF ?) |
39 |
"$_" -> (VAR_REF _) |