aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetteri Räty <petsku@petteriraty.eu>2011-06-03 18:09:34 +0300
committerPetteri Räty <petsku@petteriraty.eu>2011-06-03 18:09:34 +0300
commit78352ef7a33076ff93e734bef200250a03d31c55 (patch)
treebf164f8ea5e8b443443efb00c5cd4bdffca67955 /bashast/bashast.g
parentMerge remote-tracking branch 'mu/redirection' into review (diff)
downloadlibbash-78352ef7a33076ff93e734bef200250a03d31c55.tar.gz
libbash-78352ef7a33076ff93e734bef200250a03d31c55.tar.bz2
libbash-78352ef7a33076ff93e734bef200250a03d31c55.zip
Parser+Walker: empty word for parameter expansion
: ${CABAL_EXTRA_CONFIGURE_FLAGS:=} found in haskell-cabal.eclass now works properly.
Diffstat (limited to 'bashast/bashast.g')
-rw-r--r--bashast/bashast.g7
1 files changed, 5 insertions, 2 deletions
diff --git a/bashast/bashast.g b/bashast/bashast.g
index edbadf5..d63bc09 100644
--- a/bashast/bashast.g
+++ b/bashast/bashast.g
@@ -268,8 +268,8 @@ var_ref
| DOLLAR BANG -> ^(VAR_REF BANG);
//Variable expansions
var_exp : var_name (
- parameter_value_operator word
- -> ^(parameter_value_operator var_name word)
+ parameter_value_operator parameter_word
+ -> ^(parameter_value_operator var_name parameter_word)
| COLON wspace* os=explicit_arithmetic (COLON len=explicit_arithmetic)?
-> ^(OFFSET var_name $os ^($len)?)
| parameter_delete_operator parameter_pattern_part+
@@ -299,6 +299,9 @@ parameter_value_operator
| EQUALS -> ASSIGN_DEFAULT_WHEN_UNSET
| QMARK -> DISPLAY_ERROR_WHEN_UNSET
| PLUS -> USE_ALTERNATE_WHEN_UNSET;
+parameter_word
+ : word
+ | -> ^(STRING);
parameter_replace_pattern
: ((~SLASH) => parameter_pattern_part)+ -> ^(STRING parameter_pattern_part+);
parameter_pattern_part