1 |
commit: 92991956bc72f52f0a6cfcadef8019c446f45892 |
2 |
Author: Mu Qiao <qiaomuf <AT> gentoo <DOT> org> |
3 |
AuthorDate: Mon Apr 4 08:50:32 2011 +0000 |
4 |
Commit: Petteri Räty <betelgeuse <AT> gentoo <DOT> org> |
5 |
CommitDate: Mon Apr 4 15:09:11 2011 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/libbash.git;a=commit;h=92991956 |
7 |
|
8 |
Split parameter expansion rule |
9 |
|
10 |
It's easier for the walker to handle if we split the parameter |
11 |
expansion rule into independent rules. |
12 |
|
13 |
--- |
14 |
bashast/bashast.g | 7 +++++-- |
15 |
1 files changed, 5 insertions(+), 2 deletions(-) |
16 |
|
17 |
diff --git a/bashast/bashast.g b/bashast/bashast.g |
18 |
index d83b616..2659ef5 100644 |
19 |
--- a/bashast/bashast.g |
20 |
+++ b/bashast/bashast.g |
21 |
@@ -253,7 +253,7 @@ var_ref |
22 |
| DOLLAR BANG -> ^(VAR_REF BANG) |
23 |
| DOLLAR '_' -> ^(VAR_REF '_'); |
24 |
//Variable expansions |
25 |
-var_exp : var_name WORDOP^ word |
26 |
+var_exp : var_name (USE_DEFAULT|USE_ALTERNATE|DISPLAY_ERROR|ASSIGN_DEFAULT)^ word |
27 |
| var_name COLON os=num (COLON len=num)? -> ^(OFFSET var_name $os ^($len)?) |
28 |
| BANG^ var_name (TIMES|AT) |
29 |
| BANG var_name LSQUARE (op=TIMES|op=AT) RSQUARE -> ^(LIST_EXPAND var_name $op) |
30 |
@@ -600,7 +600,10 @@ POUNDPOUND |
31 |
PCT : '%'; |
32 |
PCTPCT : '%%'; |
33 |
SLASH : '/'; |
34 |
-WORDOP : (':-'|':='|':?'|':+'); |
35 |
+USE_DEFAULT : ':-'; |
36 |
+ASSIGN_DEFAULT: ':='; |
37 |
+DISPLAY_ERROR: ':?'; |
38 |
+USE_ALTERNATE: ':+'; |
39 |
COLON : ':'; |
40 |
QMARK : '?'; |
41 |
//Operators for conditional statements |