From: "Petteri Räty" <betelgeuse@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/libbash:master commit in: bashast/, bashast/gunit/
Date: Thu, 4 Aug 2011 13:53:40 +0000 (UTC) [thread overview]
Message-ID: <7c27bffcc90d0c6a5dccd1dbb4bf0db9c4ee6104.betelgeuse@gentoo> (raw)
commit: 7c27bffcc90d0c6a5dccd1dbb4bf0db9c4ee6104
Author: Mu Qiao <qiaomuf <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 21 13:57:02 2011 +0000
Commit: Petteri Räty <betelgeuse <AT> gentoo <DOT> org>
CommitDate: Tue Aug 2 07:46:29 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/libbash.git;a=commit;h=7c27bffc
Parser: remove tokens for += and -=
This makes ${a:-=} and ${a:+=} work properly.
---
bashast/bashast.g | 18 +++++++++---------
bashast/gunit/arith_main.gunit | 4 ++--
bashast/gunit/array.gunit | 4 ++--
bashast/gunit/param_main.gunit | 3 +++
4 files changed, 16 insertions(+), 13 deletions(-)
diff --git a/bashast/bashast.g b/bashast/bashast.g
index b4804fa..0a9557e 100644
--- a/bashast/bashast.g
+++ b/bashast/bashast.g
@@ -111,6 +111,8 @@ tokens{
PLUS_SIGN;
MINUS_SIGN;
+ PLUS_ASSIGN;
+ MINUS_ASSIGN;
NOT_EQUALS;
EQUALS_TO;
@@ -311,7 +313,7 @@ command_atom
: (FOR|SELECT|IF|WHILE|UNTIL|CASE|LPAREN|LBRACE|LLPAREN|LSQUARE|TEST_EXPR) => compound_command
| FUNCTION BLANK string_expr_no_reserved_word ((BLANK? parens wspace?)|wspace) compound_command
-> ^(FUNCTION string_expr_no_reserved_word compound_command)
- | (name (LSQUARE|EQUALS|PLUS_ASSIGN)|LOCAL|EXPORT) => variable_definitions
+ | (name (LSQUARE|EQUALS|PLUS EQUALS)|LOCAL|EXPORT) => variable_definitions
(
(BLANK bash_command) => BLANK bash_command -> bash_command variable_definitions
| -> ^(VARIABLE_DEFINITIONS variable_definitions)
@@ -351,7 +353,7 @@ command_atom
variable_definitions
: (
- variable_definition_atom ((BLANK name (LSQUARE|EQUALS|PLUS_ASSIGN)) => BLANK! variable_definition_atom)*
+ variable_definition_atom ((BLANK name (LSQUARE|EQUALS|PLUS EQUALS)) => BLANK! variable_definition_atom)*
| (LOCAL) => LOCAL BLANK! local_item ((BLANK name) => BLANK! local_item)*
| (EXPORT) => EXPORT! ((BLANK name) => BLANK! export_item)+
);
@@ -360,8 +362,8 @@ variable_definition_atom
: name LSQUARE BLANK? explicit_arithmetic BLANK? RSQUARE EQUALS string_expr?
-> ^(EQUALS ^(name explicit_arithmetic) string_expr?)
| name EQUALS value? -> ^(EQUALS name value?)
- | name PLUS_ASSIGN array_value -> ^(PLUS_ASSIGN name array_value)
- | name PLUS_ASSIGN string_expr_part?
+ | name PLUS EQUALS array_value -> ^(PLUS_ASSIGN name array_value)
+ | name PLUS EQUALS string_expr_part?
-> ^(EQUALS name ^(STRING ^(VAR_REF name) string_expr_part?));
value
: string_expr
@@ -658,7 +660,7 @@ string_part
ns_string_part
: num|name|escaped_character
|OTHER|EQUALS|PCT|PCTPCT|PLUS|MINUS|DOT|DOTDOT|COLON|TEST_EXPR
- |TILDE|MUL_ASSIGN|DIVIDE_ASSIGN|MOD_ASSIGN|PLUS_ASSIGN|MINUS_ASSIGN
+ |TILDE|MUL_ASSIGN|DIVIDE_ASSIGN|MOD_ASSIGN
|LSHIFT_ASSIGN|RSHIFT_ASSIGN|AND_ASSIGN|XOR_ASSIGN|LSQUARE|RSQUARE
|OR_ASSIGN|CARET|POUND|POUNDPOUND|COMMA|EXPORT|LOCAL|AT;
@@ -878,8 +880,8 @@ arithmetic_assignment_operator
| MUL_ASSIGN
| DIVIDE_ASSIGN
| MOD_ASSIGN
- | PLUS_ASSIGN
- | MINUS_ASSIGN
+ | PLUS EQUALS -> PLUS_ASSIGN
+ | MINUS EQUALS -> MINUS_ASSIGN
| LSHIFT_ASSIGN
| RSHIFT_ASSIGN
| AND_ASSIGN
@@ -993,8 +995,6 @@ RSHIFT : '>>';
MUL_ASSIGN : '*=';
DIVIDE_ASSIGN : '/=';
MOD_ASSIGN : '%=';
-PLUS_ASSIGN : '+=';
-MINUS_ASSIGN : '-=';
LSHIFT_ASSIGN : '<<=';
RSHIFT_ASSIGN : '>>=';
AND_ASSIGN : '&=';
diff --git a/bashast/gunit/arith_main.gunit b/bashast/gunit/arith_main.gunit
index 5249b5a..c32ff21 100644
--- a/bashast/gunit/arith_main.gunit
+++ b/bashast/gunit/arith_main.gunit
@@ -111,8 +111,8 @@ arithmetics_test:
"var *= 5" -> (*= var 5)
"var /= 5" -> (/= var 5)
"var %= 5" -> (%= var 5)
-"asdf += 5" -> (+= asdf 5)
-"var -= 5" -> (-= var 5)
+"asdf += 5" -> (PLUS_ASSIGN asdf 5)
+"var -= 5" -> (MINUS_ASSIGN var 5)
"var <<= 5" -> (<<= var 5)
"var >>= 5" -> (>>= var 5)
"var &= 5" -> (&= var 5)
diff --git a/bashast/gunit/array.gunit b/bashast/gunit/array.gunit
index b3bdf3b..c304e7c 100644
--- a/bashast/gunit/array.gunit
+++ b/bashast/gunit/array.gunit
@@ -28,8 +28,8 @@ variable_definition_atom:
${VAR}
)" -> (= asdf (ARRAY (STRING - - disable - dependency - tracking) (STRING (VAR_REF VAR))))
"asdf=()" -> (= asdf ARRAY)
-"asdf+=()" -> (+= asdf ARRAY)
-"asdf+=(a)" -> (+= asdf (ARRAY (STRING a)))
+"asdf+=()" -> (PLUS_ASSIGN asdf ARRAY)
+"asdf+=(a)" -> (PLUS_ASSIGN asdf (ARRAY (STRING a)))
variable_reference:
"$asdf" -> (VAR_REF asdf)
diff --git a/bashast/gunit/param_main.gunit b/bashast/gunit/param_main.gunit
index 306d3c6..0a56a57 100644
--- a/bashast/gunit/param_main.gunit
+++ b/bashast/gunit/param_main.gunit
@@ -22,6 +22,9 @@ variable_reference:
"$asdf" -> (VAR_REF asdf)
"${asdf}" -> (VAR_REF asdf)
"${asdf:-foo}" -> (VAR_REF (USE_DEFAULT_WHEN_UNSET_OR_NULL asdf (STRING foo)))
+"${asdf:-=}" -> (VAR_REF (USE_DEFAULT_WHEN_UNSET_OR_NULL asdf (STRING =)))
+"${asdf:+=}" -> (VAR_REF (USE_ALTERNATE_WHEN_UNSET_OR_NULL asdf (STRING =)))
+"${asdf:==}" -> (VAR_REF (ASSIGN_DEFAULT_WHEN_UNSET_OR_NULL asdf (STRING =)))
"${asdf:-public_html}" -> (VAR_REF (USE_DEFAULT_WHEN_UNSET_OR_NULL asdf (STRING public_html)))
"${asdf='foo'}" -> (VAR_REF (ASSIGN_DEFAULT_WHEN_UNSET asdf (STRING 'foo')))
"${asdf:=}" -> (VAR_REF (ASSIGN_DEFAULT_WHEN_UNSET_OR_NULL asdf (STRING EMPTY_EXPANSION_VALUE)))
next reply other threads:[~2011-08-04 13:56 UTC|newest]
Thread overview: 91+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-04 13:53 Petteri Räty [this message]
-- strict thread matches above, loose matches on Subject: below --
2012-08-19 14:35 [gentoo-commits] proj/libbash:master commit in: bashast/, bashast/gunit/ Petteri Räty
2012-06-03 9:08 Petteri Räty
2012-06-03 9:08 Petteri Räty
2012-06-03 9:08 Petteri Räty
2012-06-03 9:08 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-07-20 13:08 Petteri Räty
2011-07-08 14:12 Petteri Räty
2011-06-21 13:26 Petteri Räty
2011-06-21 13:20 Petteri Räty
2011-06-21 13:20 Petteri Räty
2011-06-19 19:15 Petteri Räty
2011-06-15 21:18 Petteri Räty
2011-06-14 8:28 Petteri Räty
2011-06-14 8:28 Petteri Räty
2011-06-11 8:24 Petteri Räty
2011-06-11 8:24 Petteri Räty
2011-06-09 13:41 Petteri Räty
2011-06-09 13:41 Petteri Räty
2011-06-09 8:15 Petteri Räty
2011-06-01 12:03 Petteri Räty
2011-06-01 12:03 Petteri Räty
2011-06-01 12:03 Petteri Räty
2011-06-01 12:03 Petteri Räty
2011-06-01 12:03 Petteri Räty
2011-05-23 14:34 Petteri Räty
2011-05-22 21:00 Petteri Räty
2011-05-11 7:19 Petteri Räty
2011-05-11 7:19 Petteri Räty
2011-05-11 7:19 Petteri Räty
2011-05-07 12:25 Petteri Räty
2011-04-27 15:11 Petteri Räty
2011-04-20 11:26 Petteri Räty
2011-04-20 11:26 Petteri Räty
2011-04-20 11:26 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-14 4:50 Petteri Räty
2011-04-14 4:50 Petteri Räty
2011-04-14 4:50 Petteri Räty
2011-04-12 7:19 Petteri Räty
2011-04-12 7:19 Petteri Räty
2011-04-12 7:19 Petteri Räty
2011-04-12 7:19 Petteri Räty
2011-04-11 6:50 Petteri Räty
2011-04-11 6:50 Petteri Räty
2011-04-11 6:50 Petteri Räty
2011-04-11 6:50 Petteri Räty
2011-04-11 5:21 Petteri Räty
2011-04-11 5:21 Petteri Räty
2011-04-11 5:21 Petteri Räty
2011-04-11 5:21 Petteri Räty
2011-04-09 6:27 Petteri Räty
2011-04-09 6:27 Petteri Räty
2011-04-09 6:27 Petteri Räty
2011-04-09 6:27 Petteri Räty
2011-04-08 14:26 Petteri Räty
2011-04-07 16:45 Petteri Räty
2011-04-07 7:48 Petteri Räty
2011-04-06 7:43 Petteri Räty
2011-03-30 12:48 Petteri Räty
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7c27bffcc90d0c6a5dccd1dbb4bf0db9c4ee6104.betelgeuse@gentoo \
--to=betelgeuse@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox